解决思路是统计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 = , cnt2 = ,weight;
for(int i = ; i < n ; ++ i){
cin >> weight;
if(weight == ) cnt1++;
else cnt2++;
}
if(cnt1%) cout<<"NO"<<endl;
else{
if(cnt2% == ) cout<<"YES"<<endl;
else{
cnt1/=;
if(!cnt1) cout<<"NO"<<endl;
else cout<<"YES"<<endl;
}
}
}