您的位置:首页 > 其它

poj 2575 Jolly Jumpers

2014-08-24 13:28 204 查看
很奇怪的一道题,受了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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: