您的位置:首页 > 其它

ZOJ 2656 Travel Around Country(模拟,枚举)

2014-04-03 20:38 218 查看
直接枚举每个城市作为起点,然后模拟是否能回到这个起点就可以了.

#include <cstdio>
using namespace std;
const int MAX = 10001;

int O[MAX], D[MAX];
int N;
int main(int argc, char const *argv[]){
while(scanf("%d", &N) == 1){
for(int i = 0; i < N; ++i){
scanf("%d%d", &O[i], &D[i]);
}
int flag = -1;
for(int i = 0; i < N; ++i){
int fuel = O[i] - D[i], j;
for(j = i == N - 1 ? 0 : i + 1; j != i && fuel >= 0; j = j == N - 1 ? 0 : j + 1){
fuel += O[j];
fuel -= D[j];
}
if(fuel >= 0 && j == i){
flag = i;
break;
}
}
if(flag != -1){
printf("%d\n", flag);
}else{
printf("impossible\n");
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: