閱讀870 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go c# 反射
  下一篇:go android ndk開發之環境搭建