您的位置:首页 > 其它

uva-10038- Jolly Jumper

2014-08-11 15:05 363 查看

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 35 1 4 2 -1 6

Sample Output

Jolly
Not jolly
思路:简单的模拟一下即可;数组a存放原始数据,数组b存放数组a相邻的元素的差值的绝对值,将b的值排一下序,看一下是不是 所有的b[i]=i+1;入伙所有的都符合输出Jolly else 输出Not Jolly#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
int a[3005],b[3005];
using namespace std;
int main(){
int n,i,flag;
while(cin>>n){
for(i=0;i<n;i++){
cin>>a[i];
}
for(i=0;i<n-1;i++){
b[i]=abs(a[i]-a[i+1]);
}
sort(b,b+n-1);
flag=0;
for(i=1;i<n;i++){
if(b[i-1]!=i){
flag=1;
break;
}
}
if(!flag)
cout<<"Jolly"<<endl;
else
cout<<"Not jolly"<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uva 模拟