我可不是为了被全人类喜欢才活着的,只要对于某一个人来说我是|

王陸

园龄:6年11个月粉丝:2052关注:178

集训队暑假旅行(模拟)

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 }
复制代码

 

本文作者:王陸

本文链接:https://www.cnblogs.com/wkfvawl/p/9064577.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   王陸  阅读(438)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起