Accepted solution

UVA 11850 - Alaska Solution in C++

Open original problem
Source code

#include<iostream>

#include<cstdio>

#include<vector>

#include<algorithm>

#include<stdio.h>

using namespace std;

int main()

{

    int n;

    vector<int>dist;

    while(cin>>n)

    {

        if(n==0)

        {

            break;

        }

        dist.clear();

        for(int i=0; i<n; i++)

        {

            int a;

            cin>>a;

            dist.push_back(a);

        }

        dist.push_back(1422);

        sort(dist.begin(), dist.end());

        int flag = 1;

        for(int i=0; i<n; i++)

        {

            if(dist[i+1]>dist[i]+200)

            {

                flag = 0;

                break;

            }

        }

        if(flag==1)

        {

            int total = 1422 - (dist[n-1]+200-1422);

            if(dist[n-1]<total)

            {

                flag = 0;

            }

        }

        if(flag==0)

        {

           cout<<"IMPOSSIBLE"<<endl;

        }

        else

        {

           cout<<"POSSIBLE"<<endl;

        }

    }

    return 0;

}
Join the discussion

Add your comment