代码;
#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f;
int res;
int s[INF];
int a[INF];
int n,m;
void dfs(int step, int ans)
{
if (step == n + 1)
{
m = min(m, max(ans, res - ans));
return;
}
dfs(step + 1, ans);
dfs(step + 1, ans + a[step + 1]);
}
int main()
{
for (int i = 1; i <= 4; i++)
{
cin >> s[i];
}
int sum = 0;
memset(a,0,sizeof(a));
for (int i = 1; i <= 4; i++)
{
res = 0;
for (int j = 1; j <= s[i]; j++)
{
cin >> a[j];
res += a[j];
}
n = s[i];
m = INF;
dfs(1, 0);
sum += m;
}
cout << sum << endl;
return 0;
}