Description
有 n 个人,每个人和其他人都有xi毛钱的关系 ,关系是双向的,如果a和b有1毛钱关系那么,b和a也有1毛钱关系。现在知道每个人和其他人的关系的总和,求该关系是否合法(并不存在半毛钱的关系)。
Input
第一行输入一个T,代表有T组测试数据
输入一个n,代表有n个人。
每行输入xi。xi<=10000
Output
求关系是否合法,输出yes or no .
Sample Input
3
2
1 0
8
7 7 4 3 3 3 2 1
10
5 4 3 3 2 2 2 1 1 1
Sample Output
no
yes
yes
解析
1.因为关系是双向的,那么所有关系的总和定能被2整除
2.每个人关系总和的两倍不可能超过所有人的关系总和,例如 8 2 2 就不合法
代码
#include<stdio.h>
#define MAX 10005
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n,i,rel[MAX],sum=0,maxl=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&rel[i]);
sum+=rel[i];
if(rel[i]>maxl) maxl=rel[i];
}
if(sum%2==0&&sum>=2*maxl)
printf("yes\n");
else
printf("no\n");
}
return 0;
}