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 }