天天看點

集訓隊暑假旅行(模拟)

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 }