九度 oj 题目1159:坠落的蚂蚁
2017-01-21 13:52
316 查看
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);
}
}
#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);
}
}
相关文章推荐
- 题目1159:坠落的蚂蚁
- 题目1159:坠落的蚂蚁
- 题目1159:坠落的蚂蚁
- 九度oj 题目1104:整除问题
- 九度OJ题目1554:区间问题
- 【九度OJ】题目1035:找出直系亲属
- 【九度OJ】题目1087:约数的个数
- 九度OJ 题目1384:二维数组中的查找
- 九度OJ题目1081:递推数列-快速幂
- 【剑指Offer面试编程题】题目1372:最大子向量和--九度OJ
- hdu 1284 关于钱币兑换的一系列问题 九度oj 题目1408:吃豆机器人
- <C/C++算法>九度OJ题目1415--1464解题练习(八)
- 九度oj 题目1066:字符串排序
- 【九度OJ】题目1202:排序 解题报告
- 九度OJ题目1014:排名
- 九度OJ 题目1060:完数VS盈数
- 九度OJ 题目1068:球的半径和体积
- 九度OJ 题目1066:字符串排序
- 九度oj 题目1056:最大公约数
- 九度OJ 题目1022:游船出租