Saturday 24 June 2017

UVA 10038 - Jolly Jumpers

Problem E: Jolly Jumpers
A sequence of n > 0 integers is called a jolly jumper if the absolute values of the difference between successive elements take on all the values 1 through n-1. For instance, 
1 4 2 3
is a jolly jumper, because the absolutes differences are 3, 2, and 1 respectively. The definition implies that any sequence of a single integer is a jolly jumper. You are to write a program to determine whether or not each of a number of sequences is a jolly jumper. 

Input
Each line of input contains an integer n <= 3000 followed by n integers representing the sequence. 

Output
For each line of input, generate a line of output saying "Jolly" or "Not jolly". 

Sample Input
4 1 4 2 3
5 1 4 2 -1 6

Sample Output
Jolly

Not jolly


My accepted code is given below:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long n,m,i,x,s,f,mx,ar[3009];
    while(cin>>n)
    {
        x=0;
        f=0;
        mx=-1;
        for(i=0; i<n; i++)
        {
            cin>>m;
            s=abs(m-x);
            if(i>0)
            {
                ar[i-1]=s;
                //cout<<s<<endl;
            }
            x=m;
        }
        sort(ar,ar+n-1);
        for(i=1; i<n-1; i++)
            {
                if(ar[i]-ar[i-1]!=1||ar[0]!=1)
                {
                    f=1;
                    break;
                }
            }
        if(f==0)
            cout<<"Jolly"<<endl;
        else
            cout<<"Not jolly"<<endl;
    }
    return 0;
}

No comments:

Post a Comment