YTU 2894: G--我要去内蒙古大草原
2894: G--我要去内蒙古大草原
时间限制: 1 Sec 内存限制: 128 MB提交: 162 解决: 8
题目描述
春天到了,小明想要从烟台开车去内蒙古大草原放松一下,这两地的距离是1422公里。小明的座驾每跑200公里必须加油。在烟台有加油站可以加满油,路上也有一些加油站。请你帮忙计算一下,小明能不能把车开到内蒙古再开回来。
输入
多组测试数据。
每组测试数据第一行为n,表示加油站的个数;接着是n行整数,表示加油站到烟台的距离,取值范围是0到1422,没有两个加油站在同一位置。
最后一组测试数据后以0结束。
输出
如果小明能完成这次旅行,输出POSSIBLE,不能完成输出IMPOSSIBLE 。
样例输入
2
0
900
8
1400
1200
1000
800
600
400
200
0
0
样例输出
IMPOSSIBLE
POSSIBLE
你 离 开 了 , 我 的 世 界 里 只 剩 下 雨 。 。 。
#include <iostream> #include <algorithm> #include <cstdio> #include <cstdlib> #include <cstring> using namespace std; int main() { int n; int jyz[100],s,i,t=1422; while(cin>>n&&n) { bool flag=true; for(i=0; i<n; ++i)scanf("%d",&jyz[i]); sort(jyz,jyz+n); if(jyz[0]!=0||1442-jyz[n-1]>100||n<8) { printf("IMPOSSIBLE\n"); continue; } for(i=n; i<2*n-1; ++i)jyz[i]=jyz[i-n]+1422; for(s=jyz[0],i=1; i<2*n; s=jyz[i++]) { if(jyz[i]-jyz[i-1]>200) { flag=false; break; } } if(flag)printf("POSSIBLE\n"); else printf("IMPOSSIBLE\n"); } return 0; }
------------------- 这是千千的个人网站哦! https://www.dreamwings.cn -------------------