Codeforces Round #248 (Div. 2) A. Kitahara Haruki's Gift

OpenSoucre發表於2014-05-24

解決思路是統計100的個數為cnt1,200的個數為cnt2

cnt1    cnt2

奇數      奇數            

奇數      偶數

偶數      奇數

偶數     偶數

當cnt1為奇數時一定剩餘一個100,不能均分,所以輸出結果為NO    

 當cnt1為偶數且cnt2為偶數則肯定能均分

當cnt1為偶數且cnt2為奇數時

    如果有至少兩個100,則取出2個100,轉換成200,則cnt2就是偶數,而cnt1也是偶數,可以均分

  否則沒有兩個100,則cnt2是奇數不能均分

#include <iostream>
using namespace std;

int main(){
    int n;
    cin >> n;
    int cnt1 = 0, cnt2 = 0,weight;
    for(int i = 0; i < n ; ++ i){
        cin >> weight;
        if(weight == 100) cnt1++;
        else cnt2++;
    }
    if(cnt1%2) cout<<"NO"<<endl;
    else{
        if(cnt2%2 == 0) cout<<"YES"<<endl;
        else{
            cnt1/=2;
            if(!cnt1) cout<<"NO"<<endl;
            else cout<<"YES"<<endl;
        }
    }
}

 

 

相關文章