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 -------------------

浙公网安备 33010602011771号