ZOJ 1879题解 一道水题没啥好说的,代码贴在这,一开始WA了几次因为题意理解错误,只要报1到n-1每个数都出现一遍就行了
1 #include <stdio.h>
2 #include <math.h>
3 #include <string.h>
4 #include <stdlib.h>
5
6 int cmp(const void *a,const void *b)
7 {
8 return *(int *)a - *(int *)b;
9 }
10
11 int main()
12 {
13 int i, n, a[3002], b[3002], count, k;
14
15 while(scanf("%d", &n) != EOF)
16 {
17 if(n == 1)
18 {
19 scanf("%d", &k);
20 printf("Jolly\n");
21 continue;
22 }
23 for (i=0; i<n; i++)
24 {
25 scanf("%d", &a[i]);
26 }
27 for(i=0; i<n; i++)
28 {
29 if (i < n-1)
30 b[i] = abs(a[i]-a[i+1]);
31 }
32 qsort(b,n-1,sizeof(b[0]),cmp);
33 count = 0;
34 for(i=0; i<n-1; i++)
35 {
36 if(b[i] == i+1)
37 count++;
38 }
39 if(count == n-1)
40 printf("Jolly\n");
41 else
42 printf("Not jolly\n");
43 }
44 return 0;
45 }
46
47