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

来源:互联网 发布:srt软件下载 编辑:程序博客网 时间:2024/06/10 08:45

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

时间限制: 1 Sec  内存限制: 128 MB
提交: 162  解决: 8

题目描述

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

输入

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

输出

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

样例输入

20900814001200100080060040020000

样例输出

IMPOSSIBLEPOSSIBLE

你  离  开  了  ,  我  的  世  界  里  只  剩  下  雨  。  。  。

#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(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;}

1 0
原创粉丝点击