UVa 10038 / POJ 2575 / ZOJ 1879 Jolly Jumpers (water ver.)

来源:互联网 发布:网络电视老是卡怎么办 编辑:程序博客网 时间:2024/05/20 14:17

10038 - Jolly Jumpers

Time limit: 3.000 seconds

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=979

http://poj.org/problem?id=2575

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1879

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

JollyNot jolly

注意有两个可以提前退出循环的条件。


完整代码:

/*UVa: 0.012s*//*POJ: 16ms,184KB*//*ZOJ: 0ms,204KB*/#include<cstdio>#include<cstring>#include<cstdlib>int arr[3010], vis[3010];int main(void){int n, i;while (~scanf("%d", &n)){memset(vis, 0, sizeof(vis));for (i = 0; i < n; i++)scanf("%d", &arr[i]);bool flag = true;for (i = 1; i < n; i++){if (abs(arr[i] - arr[i - 1]) >= n){flag = false;break;}if (vis[abs(arr[i] - arr[i - 1])]++) ///小技巧~{flag = false;break;}}puts(flag ? "Jolly" : "Not jolly");}return 0;}