救救孩子
#include <bits/stdc++.h>
using namespace std;
int s[5],sum[5];
int t[5][25];
int dp[5][2505];
int main()
{
for(int i=1;i<=4;i++)
{
cin >> s[i];
}
for(int i=1;i<=4;i++)
for(int j=1;j<=s[i];j++)
{
cin >> t[i][j];
sum[i]+=t[i][j];
}
for(int i=1;i<=4;i++)
{
dp[i][0]=1;
for(int j=1;j<=s[i];j++)
for(int k=1;k<=sum[i]/2;k++)
{
if(k-t[i][j]>=0)
dp[i][k]=max(dp[i][k-t[i][j]],dp[i][k]);
}
}
int SUM=0;
for(int i=1;i<=4;i++)
{
for(int k=sum[i]/2;k>=0;k--)
{
if(dp[i][k])
{
SUM+=sum[i]-k;
break;
}
}
}
cout << SUM;
return 0;
}