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

来源:互联网 发布:2016全球社交网络排行 编辑:程序博客网 时间:2024/06/07 06:36

题意

给n个数,都是100或者200,问能否把这些数平均分给两个人。

思路

先算出如果平均分的话每个人要多少(sum/2),如果不能整除100那么肯定不行。如果是100的倍数,则先尽量用200的,用完200的或者已经不足200了再用100的。

代码

#include <cstdio>#include <algorithm>using namespace std;const int maxn = 110;int s[maxn];int n;int main(){    int cnt2 = 0;    int cnt1 = 0;    scanf("%d",&n);    for(int i = 0 ; i < n ; i ++) {        scanf("%d",&s[i]);        if(s[i] == 200) cnt2 ++;        else cnt1 ++;    }    int ans = (cnt2*200+(n-cnt2)*100)/2;    if(ans%100) {        printf("NO\n");    }else {        while(ans >= 200 && cnt2 > 0) {            cnt2 --;            ans -= 200;        }        if(ans/100 <= cnt1) printf("YES\n");        else printf("NO\n");    }    return 0;}
1 0