烟大 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

4 1 4 2 3

5 1 4 2 -1 6

 

Sample Output

Jolly

Not jolly

 

HINT

poj2575


 

  水题。

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

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

My code:

 1 #include <iostream>

 2 

 3 using namespace std;  4 

 5 int abs(int n)  6 {  7     return n>0?n:-n;  8 }  9 int main() 10 { 11     int n; 12     int ab; 13     int i; 14     int a[3000]; 15     while(cin>>n){ 16         bool b[3001]={0};   //记录绝对值差有无重复

17         for(i=0;i<n;i++){   //输入

18             cin>>a[i]; 19  } 20         for(i=1;i<n;i++){    //循环判断

21             int t=abs(a[i]-a[i-1]); 22             if(!(1<=t && t<=n-1) || b[t] ) 23                 break; 24             else{ 25                 b[t]=true; 26  } 27  } 28         if(i==n)    //如果正常跳出,说明是个Jolly

29             cout<<"Jolly"<<endl; 30         else{ 31             cout<<"Not jolly"<<endl; 32  } 33  } 34     return 0; 35 }

 

 Freecode : www.cnblogs.com/yym2013

你可能感兴趣的:(数据结构)