UVA 10038

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=24&problem=979&mosmsg=Submission+received+with+ID+11308688

题意为输入3000个以内的一组数,判断相邻两个的差值的绝对值是否满足1到n-1,并且都只出现一次,注意当只输入数字只有一个时也是jolly

View Code
 1 #include<stdio.h>
 2 #include<math.h>
 3 int main()
 4 {
 5  int n,i,j,a[3010],flag,cz[3010],temp;
 6  while(scanf("%d",&n)!=EOF)
 7       {
 8        for(i=0;i<n;i++)
 9           scanf("%d",&a[i]);
10        if(n==1)
11           {
12            printf("Jolly\n");
13            continue;
14           }
15        for(i=0;i<=n;i++)
16            cz[i]=0;
17        flag=0;
18         for (i=0;i<n-1;i++)
19            {
20             temp=(int)fabs(a[i]-a[i+1]);
21             if(temp>0&&temp<n)
22                 cz[temp]++;
23             else
24                 {
25                  flag = 1;
26                  break;   
27                 }
28            }
29 
30         if (flag)
31             printf("Not jolly\n");
32         else
33         {
34          for (i=1;i<n;i++)
35             {
36              if(cz[i]!=1)
37                {
38                 flag=1;
39                 break;
40                 }
41             }
42 
43             if(flag)
44                 printf("Not jolly\n");
45             else
46                 printf("Jolly\n");
47         }
48      }
49  return 0;
50 }

 

posted @ 2013-02-19 16:22  执着追求的IT小小鸟  阅读(102)  评论(0编辑  收藏  举报