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