- 总和奇数肯定false.
- 如果数字的某种组合能够等于 总和/2 ,则true
- 利用Bitset保存情况
#include <bits/stdc++.h>
using namespace std;
bitset<50005> flag;
int val;
char s;
int nums[101];
int len;
int sum = 0;
int main()
{
while (~scanf("%d%c", &val, &s))
{
sum += val;
nums[len++] = val;
if (s != ',')
break;
};
if (sum & 1)
{
printf("false");
return 0;
}
flag[0] = 1;
for (int i = 0; i < len; ++i)
flag |= (flag << nums[i]);
if (flag[sum / 2])
printf("true");
else
printf("false");
return 0;
}