#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int a[105];
bool dp[105][10005];
int main()
{
int n;
cin >> n;
int sum = 0;
for (int i = 1;i <= n;i++)
{
cin >> a[i];
sum += a[i];
}
dp[0][0] = true;
for (int i = 1;i <= n;i++)
{
for (int j = i;j >= 1;j--)
{
for (int k = sum;k >= a[i];k--)
{
dp[j][k] |= dp[j - 1][k - a[i]];
}
}
}
sum /= 2;
n /= 2;
for (int i = sum;i >= 0;i--)
{
if (dp[n][i])
{
cout << i << endl;
break;
}
}
return 0;
}
介个“ |= ”啥意思?蒟蒻不懂,求大佬帮忙
原题解是@yhk2001的ac部分