870
技术社区[云栖]
poj 2575 Jolly Jumpers
很奇怪的一道题,受了discuss的误导,居然当n==1的时候输出Jolly是错的,后来去掉反而正确了。。。
一个flag就搞定的东西,搞不懂为什么有些人用到排序,真是没事找事。。。
题目解析:求给出序列的各个值之差是否能覆盖1~n-1,要是能,输出:"Jolly",否则输出:"Not jolly",其实不难,只要把各个值得绝对值求出来,看能否覆盖1~n-1。
#include <stdio.h>
#include <string.h>
int flag[3002];
inline int myAbs(int a) { return a>0?a:(-a); }
int main()
{
int n;
int i;
int x,y;
while(~scanf("%d",&n))
{
memset(flag,0,sizeof(flag));
scanf("%d",&x);
for(i=1;i<n;i++)
{
scanf("%d",&y);
flag[myAbs(y-x)]=1;
x=y;
}
for(i=1;i<n;i++)
if(flag[i]==0)
break;
if(i==n)
printf("Jolly\n");
else
printf("Not jolly\n");
}
return 0;
}
最后更新:2017-04-03 05:40:02