描述topcoder工作室的PIAOYIi超级爱吃糖果,现在他拥有一大堆不同种类的糖果,他准备一口气把它们吃完,可是他有一个习惯,他不喜欢同一种类的糖果连着吃,他喜欢先吃一种,然后再吃另一种。可是PIAOYI不知道是否存在一种顺序能把这些糖果吃完,聪明的你可以帮助他吗?
输入
第一行有一个整数N,接下来有N组数据,第一行有一个整数M(0<M<1000000),第二行是M个数,表示M种糖果的数目Mi(0<Mi<1000000).
输出
对于每组数据,输出一行,包含一个“Yes”或者“No”。
样例输入
2
3
1 1 5
5
1 2 3 4 5
样例输出
No
Yes
#include <stdio.h>
int main(int argc, char **argv)
{
int N,M,Mi,S,max;
scanf("%d", &N);
if(N < 0){
return -1;
}
while(N--){
scanf("%d", &M);
if(M < 0){
return -1;
}
max = 0;
S = 0;
while(M--){
scanf("%d", &Mi);
if(Mi > max){
max = Mi;
}
S += Mi;
}
if(S-2*max > -2){
printf("Yes\n");
}else{
printf("No\n");
}
}
return 0;
}