烟大 Contest1025 - 《挑战编程》第二章:数据结构 Problem A: Jolly Jumpers(水题)

时间:2023-03-08 21:28:02
烟大 Contest1025 - 《挑战编程》第二章:数据结构   Problem A: Jolly Jumpers(水题)

Problem A: Jolly Jumpers

Time Limit: 1 Sec  Memory Limit: 64 MB
Submit: 10  Solved: 4
[Submit][Status][Web Board]

Description

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

    - 

Sample Output

Jolly
Not jolly

HINT

poj2575


  水题。

  这道题要求输入一串整型数,第一个数为n,后面接着有n个int数,要求后面这n个数两两之间差的绝对值在[1,n-1]范围内,且差的绝对值不能重复。

  虽是水题,但还是纠结了一会,原因还是没有读懂题意,忽略了第二个条件。由此可见,英语阅读能力的重要性!

My code:

 #include <iostream>

 using namespace std;

 int abs(int n)
{
return n>?n:-n;
}
int main()
{
int n;
int ab;
int i;
int a[];
while(cin>>n){
bool b[]={}; //记录绝对值差有无重复
for(i=;i<n;i++){ //输入
cin>>a[i];
}
for(i=;i<n;i++){ //循环判断
int t=abs(a[i]-a[i-]);
if(!(<=t && t<=n-) || b[t] )
break;
else{
b[t]=true;
}
}
if(i==n) //如果正常跳出,说明是个Jolly
cout<<"Jolly"<<endl;
else{
cout<<"Not jolly"<<endl;
}
}
return ;
}

Freecode : www.cnblogs.com/yym2013