题意:
给定四个整数a,b,c,d,问是否可能将它们划分为两个集合,使得两个集合的元素和相等。
数据范围:1<=a,b,c,d<=1e8
解法:
最无脑的应该是二进制枚举,
二进制位为0和1的分别在两个集合,计算是否元素和相等即可。
code:
#include<bits/stdc++.h>
using namespace std;
const int maxm=1e5+5;
int a[maxm];
signed main(){
for(int i=0;i<4;i++){
cin>>a[i];
}
int ok=0;
for(int i=0;i<(1<<4);i++){
int x=0,y=0;
for(int j=0;j<4;j++){
if(i>>j&1)x+=a[j];
else y+=a[j];
}
if(x==y){
ok=1;break;
}
}
if(ok)puts("Yes");
else puts("No");
return 0;
}