Hack代码:
# include <bits/stdc++.h>
# define old_six \
ios::sync_with_stdio (0);\
\
cin.tie (0);\
\
cout.tie (0);
# define ffor(i,name) \
for (auto i = name.begin (); i != name.end (); i ++)
# define iter(type) \
type :: iterator
using namespace std;
typedef long long ll;
typedef pair <int, int> pii;
typedef pair <ll, ll> pll;
int t, n, a[105], m, minm;
bool dp[10005], ans[10005];
int main () {
old_six
cin >> t;
while (cin >> a[n], a[n] >= 0)
minm += a[n ++];
ans[0] = 1;
for (int i = 0; i < n; i ++)
for (int j = minm; j; j --)
ans[j] |= ans[j - a[i]];
while (-- t) {
n = m = 0;
memset (dp, 0, sizeof dp);
while (cin >> a[n], a[n] >= 0)
m += a[n ++];
dp[0] = 1;
minm = min (minm, m);
for (int i = 0; i < n; i ++)
for (int j = minm; j >= a[i]; j --)
dp[j] |= dp[j - a[i]];
for (int i = minm; i; i --)
ans[i] &= dp[i];
}
for (int i = minm; i; i --)
if (ans[i]) {
cout << i;
return 0;
}
cout << 0;
return 0;
}
Hack数据:
1
100 -1
程序输出:
RE了
标准输出:
100