思路&题解

PC/UVA 110201/10038
水题。

//author: CHC
//First Edit Time: 2014-01-16 14:05
//Last Edit Time: 2014-01-16 14:15
//Filename:1.cpp
#include <iostream>
#include <cstdio>
#include <string.h>
#include <queue>
#include <algorithm>
using namespace std;
int n,a[4000];
char ha[4000];
int main()
{
while(~scanf("%d",&n)){
for(int i=0;i<n;i++)scanf("%d",&a[i]);
if(n<=0){
puts("Not jolly");
continue;
}
memset(ha,0,sizeof(ha));
for(int i=1;i<n;i++){
int t=abs(a[i]-a[i-1]);
if(t>=n){
break;
}
ha[t]=1;
}
int flag=1;
for(int i=1;i<n;i++)
if(!ha[i])flag=0;
puts(flag?"Jolly":"Not jolly");
}
return 0;
}

Jolly Jumpers

A sequence of n > 0 integers is called a jolly jumper if the absolute values of the differences
between successive elements take on all possible values 1 through n - 1. For instance, 1 4 2 3 is a jolly jumper, because the absolute differences are 3, 2, and 1, respectively. The definition implies that any sequence of a single integer is a jolly jumper. Write a program to determine whether each of a number of sequences is a jolly jumper.

Input

Each line of input contains an integer n < 3, 000 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