九度 oj 题目1159:坠落的蚂蚁

来源:互联网 发布:大数据分布式存储 编辑:程序博客网 时间:2024/05/03 23:51

http://ac.jobdu.com/problem.php?pid=1159


#include <stdio.h>#include <algorithm>typedef struct ant{     int pos,dir;     bool friend operator < (struct ant a, struct ant b){         return a.pos < b.pos;     }  }Ant; int main(){     //freopen("in/1159.in","r",stdin);     Ant ants[100];    int p,dir,n,Apos = 50;    while(scanf("%d",&n) !=EOF ){         for (int i = 0; i < n; ++i) {             scanf("%d %d",&p,&dir);              ants[i].pos = p,ants[i].dir = dir;        }         std::sort(ants,ants+n);          for (int i = 0; i < n; ++i) {             if(ants[i].dir == 0) Apos = i;          }         int i = Apos-1, j = Apos+1;        //find the first right-directed on left side        while(ants[i].dir == -1) i--;          //find the first left-directed on right side        while(ants[j].dir == 1) j++;         while(i>=0 && j<=n-1){             i--;j++;            while(ants[i].dir == -1) i--;              while(ants[j].dir == 1) j++;         }         if(i<0&&j>n-1) printf("Cannot fall!\n");          else if(i<0) printf("%d\n",ants[j].pos);          else printf("%d\n",100-ants[i].pos);     }   }  


0 0
原创粉丝点击