1146: 吃糖果 C语言

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;
}

猜你喜欢

转载自blog.csdn.net/m0_45306379/article/details/121655719