Description
暑假就要到了,ACM集训队的同学们想从烟台开车到呼伦贝尔大草原去放松一下,这两地的距离是1422公里。大家让charon去租车行租辆车,结果她从租车行租了一辆老爷车,这辆车每跑200公里必须加油。在烟台他们有加油站可以加满油,路上也有一些加油站。请你帮忙计算一下,集训队的同学能不能把车从烟台开到呼伦贝尔再开回来。
Input
多组测试数据。
每组测试数据第一行为n,表示加油站的个数;接着是n行整数,表示加油站到烟台的距离,取值范围是0到1422,没有两个加油站在同一位置。
最后一组测试数据后以0结束。
Output
如果集训队能完成这次旅行,输出POSSIBLE,不能完成输出IMPOSSIBLE 。
Sample Input
2
0
900
8
1400
1200
1000
800
600
400
200
0
0
Sample Output
IMPOSSIBLE
POSSIBLE
1 #include<stdio.h>
2 #include<algorithm>
3 using namespace std;
4 int my_comp(int a,int b)
5 {
6 if(a<b)
7 return 1;
8 else
9 return 0;
10 }
11 int main()
12 {
13 int n,a[1500],i,j,flag1,k;
14 while(scanf("%d",&n)!=EOF)
15 {
16 if(n==0)
17 break;
18 for(i=0; i<n; i++)
19 {
20 scanf("%d",&a[i]);
21 }
22 sort(a,a+n,my_comp);///从小到大
23 k=0;
24 flag1=1;
25 for(i=0;i<n;i++)
26 {
27 if(a[i]-k>200)
28 {
29 flag1=0;
30 break;
31 }
32 else
33 {
34 k=a[i];
35 }
37 }
38 if((1442-a[n-1])*2>200)
39 {
40 flag1=0;
41 }
42 if(flag1)
43 printf("POSSIBLE\n");
44 else
45 printf("IMPOSSIBLE\n");
46
47 }
48 return 0;
49 }