1. 程式人生 > >HDU 吃糖果

HDU 吃糖果

吃糖果

Time Limit : 6000/3000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 121   Accepted Submission(s) : 31

Font: Times New Roman | Verdana | Georgia

Font Size:

Problem Description

HOHO,終於從Speakless手上贏走了所有的糖果,是Gardon吃糖果時有個特殊的癖好,就是不喜歡將一樣的糖果放在一起吃,喜歡先吃一種,下一次吃另一種,這樣;可是Gardon不知道是否存在一種吃糖果的順序使得他能把所有糖果都吃完?請你寫個程式幫忙計算一下。

Input

第一行有一個整數T,接下來T組資料,每組資料佔2行,第一行是一個整數N(0<N<=1000000),第二行是N個數,表示N種糖果的數目Mi(0<Mi<=1000000)。

Output

對於每組資料,輸出一行,包含一個"Yes"或者"No"。

Sample Input

2
3
4 1 1
5
5 4 3 2 1

Sample Output

No
Yes

Hint

Hint
Please use function scanf

Author

Source

Gardon-DYGG Contest 2 大意是要吃糖且每2次不能吃一樣的糖問能不能吃完。其實只要數量最大的糖沒有比其他糖加起來在加一還多就可以保證能夠吃完。ps//因為輸出大小寫問題連著wa好多次orz。
AC程式碼:
#include <iostream>
#include <stdio.h>
#include <cmath>
using namespace std;
int main(){
    long long n;
    cin>>n;
    long long m;
    while(n--){
        cin>>m;
        int t,max=-1;
        long long sum=0;
        while(m--){
            cin>>t;
            if(t>max)max=t;
            sum+=t;
        }
        sum-=max;
        if(max<=1+sum)cout<<"Yes\n";
        else cout<<"No\n";
    }
    return 0;
}

執行結果: