世界末日
时间限制:1000 ms | 内存限制:65535 KB
难度:1
描述
世界末日马上就要来临了,当然,每个人都想买到船票,但是由于船票有限,因此需要回答对一个问题才能买票。问题是这样的:给你一个数n (1 <= n <= 10000),之后给n个正整数 (<= 10000),问在这n个数中是否存在一些数的和是n的倍数。
输入
多组测试数据(最多100组)。首先输入一个数n,然后输入n个数。
输出
如果能找到一些数的和是n的倍数,输出"YES",否则输出"NO"。
样例输入
5
5 3 6 7 9
样例输出
YES
#include <stdio.h>
#include <string.h>
int mod[10010];
void work(int m[],int n)
{
int i;
for (i=0;i<n;i++)
if (m[i]>1)
{
puts("YES");
return;
}
puts("NO");
return;
}
int main()
{
int n,i,j,x,sum;
while (scanf("%d",&n)!=EOF)
{
memset(mod,0,sizeof(mod));
mod[0]=1;
sum=0;
for (i=1;i<=n;i++)
{
scanf("%d",&x);
sum=(sum+x)%n;
mod[sum]++;
}
work(mod,n);
}
//system("pause");
return 0;
}
坑啊!!!这道题根本就不需要处理,根据抽屉原理,必然存在