```
#include<iostream>
#include<cstdio>
#include<algorithm>
# include <cstring>
using namespace std;
int w[110];
bool f[10010], ans[10010];
int main()
{
int t;
cin >> t;
memset(ans, true, sizeof(ans));
for (int a = 1; a <= t; a++)
{
int n = 0, m = 0;
while (w[n] != -1)
{
cin >> w[++n];
m += w[n];
}
m -= w[n];
n--;
memset(f, false, sizeof(f));
f[0] = true;
for (int i = 1; i <= n; i++)
{
for (int j = m; j >= w[i]; j--)
{
f[j] |= f[j - w[i]];
}
}
for (int i = 1; i <= 10000; i++)
{
ans[i] &= f[i];
}
}
for (int i = 10000; i >= 0; i--)
{
if (ans[i])
{
cout << i << endl;
break;
}
}
return 0;
}
```
by jimmyshi29 @ 2020-12-20 12:02:25