YTU 2894: G--我要去内蒙古大草原

来源:互联网 发布:access数据库sql语句 编辑:程序博客网 时间:2024/04/27 13:58

2894: G--我要去内蒙古大草原

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 161  Solved: 7
[Submit][Status][Web Board]

Description

春天到了,小明想要从烟台开车去内蒙古大草原放松一下,这两地的距离是1422公里。小明的座驾每跑200公里必须加油。在烟台有加油站可以加满油,路上也有一些加油站。请你帮忙计算一下,小明能不能把车开到内蒙古再开回来。

Input

多组测试数据。
每组测试数据第一行为n,表示加油站的个数;接着是n行整数,表示加油站到烟台的距离,取值范围是0到1422,没有两个加油站在同一位置。
最后一组测试数据后以0结束。

Output

如果小明能完成这次旅行,输出POSSIBLE,不能完成输出IMPOSSIBLE 。

Sample Input

20900814001200100080060040020000

Sample Output

IMPOSSIBLEPOSSIBLE

HINT

Source

LDF

ps 在烟台的位置也要有加油站  不然WA到死。。。。。

#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(i=0;i<2*n-1;++i)cout<<"jyz["<<i<<"] "<<jyz[i]<<'\12';        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;}


0 0