ZJUT OJ 1004

Jolly Jumpers 
Time Limit:1000MS  Memory Limit:1024K

Description:

A sequence of n (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 (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

code:
 1 /*
 2 本题需要注意理解题意,题中的意思是数列a中相邻两数的差必须囊括1到n-1。 
 3 */
 4 #include <iostream>
 5 #include <algorithm>
 6 #include <math.h>
 7 using namespace std;
 8 
 9 int main()
10 {
11     for(int n; cin >> n;) {
12         int a[3000];
13         for (int i = 0; i < n; i++) {
14             cin >> a[i];
15             if (i > 0)
16                 a[i - 1] = abs(a[i] - a[i - 1]);
17         }
18         sort(a, a + n - 1);
19         bool flag = true;
20         for (int i = 0; i < n - 1; i++) {
21             if (a[i] != i + 1)
22                 flag = false;
23         }
24         cout << (flag ? "Jolly" : "Not jolly") << endl;
25     }    
26 }
原文地址:https://www.cnblogs.com/findingsea/p/2677484.html