Description
求给出序列的相邻两值之差是否能覆盖1~n-1,要是能,输出”Jolly”,否则输出”Not jolly”
Input
多组输入,每组用例占一行,第一个数为n表示序列长度,之后为n个整数表示序列
Output
对于每组用例,如果序列相邻两值之差能够覆盖1~n-1则输出”Jolly”,否则输出”Not jolly”
Sample Input
4 1 4 2 3
5 1 4 2 -1 6
Sample Output
Jolly
Not jolly
Solution
水题
Code
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
int n,a[3005],b[3005],flag,i;
while(scanf("%d",&n)!=EOF)
{
flag=1;
memset(b,0,sizeof(b));//初始化
scanf("%d",&a[0]);
for(i=1;i<n;i++)
{
scanf("%d",&a[i]);
b[(int)fabs(a[i]-a[i-1])]++;//标记数组
}
for(i=1;i<n;i++)
if(b[i]==0)//没有全覆盖
flag=0;
if(flag)
printf("Jolly\n");
else
printf("Not jolly\n");
}
return 0;
}