1146: 吃糖果
时间限制: 1 Sec 内存限制: 128 MB
提交: 7735 解决: 3454
[状态] [讨论版] [提交] [命题人:admin]
题目描述
HOHO,终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢连续两次吃一样的糖果,喜欢先吃一颗A种类的糖果,下一次换一种口味,吃一颗B种类的糖果,这样;可是Gardon不知道是否存在一种吃糖果的顺序使得他能把所有糖果都吃完?请你写个程序帮忙计算一下。
输入
第一行有一个整数T,接下来T组数据,每组数据占2行,第一行是一个整数N(0 < N <= 1000000),表示糖果的种类。第二行是N个数,表示每种糖果的数目Mi(0 < Mi <= 109)。
输出
对于每组数据,输出一行,包含一个"Yes"或者"No"。
样例输入 Copy
2
3
4 1 1
5
5 4 3 2 1
样例输出 Copy
No
Yes
#include <stdio.h>
// 吃糖果
int main() {
int T, N, Mi;
int i, t;
int max, sum;
// 输入T表示T组数据
scanf("%d", &T);
while(T--){
max = 0;
sum = 0;
// 输入N,表示糖果的种类
scanf("%d", &N);
for(i = 0; i < N; i++){
// 输入对应糖果种类的数量
scanf("%d", &Mi);
// 求糖果的总数
sum += Mi;
// 求数量最多的糖果
if(max < Mi)
max = Mi;
}
// 判断能否按照特定的顺序吃完糖果
if((max - (sum - max)) <= 1)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}