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