题目链接:http://codeforces.com/contest/433/problem/A
题目大意:A有n个苹果,希望平分给B和C,但是没有刀子,不能切水果,只能给整个苹果。苹果有两种规格,100g和200g,给出A拥有的苹果,问能不能平分给B和C。
水题,不过有一个坑,
首先容易想到的是,将每个苹果的重量变成1或者2,把所有苹果的重量加起来之后,如果是奇数,则无法平分,否则能平分。
当A只有一个苹果时,是无法平分的,这个也不算坑,很容易想到,如果没想到也会wrong answer。
一个大坑:当n为奇数,而且全是200规格的苹果时,也是无法平分的!这堪称巨坑,很多人都想不到,我后来被人hack了之后才发现这一问题,有的人凭这个hack了别人十多次。。。。分数硬生生加了一千多分。。不得不说是上分利器啊!
#include <iostream>#include <cstdio>using namespace std;int w[111];int main(){ bool s=true; int n; int ans=0; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&w[i]); w[i]/=100; ans+=w[i]; if(w[i]==1) s=false; } if((n%2==1)&&s) { printf("NO\n"); return 0; } if(n==1) { printf("NO\n"); return 0; } if(ans%2==0) printf("YES\n"); else printf("NO\n"); return 0;}