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 }