1 条题解
-
1HLBhahaqiu LV 8 MOD @ 2020-08-30 15:16:38
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;const int MAXV=11000;
const int MAXN=105;
bool f[MAXV],g[MAXV];
int n;void init()
{
scanf("%d",&n);
}void DP()
{
for(int i=0;i<=10000;i++)
f[i]=1;
for(int i=1;i<=n;i++)
{
memset(g,0,sizeof(g)); g[0]=1; int x=0;
while(scanf("%d",&x)==1&&x!=-1)
{
for(int j=10000;j>=0;j--)
if(g[j])
g[j+x]=1;
}
for(int j=0;j<=10000;j++)
f[j]&=g[j];
}
for(int j=10000;j>=0;j--)
if(f[j])
{
printf("%d\n",j);
return;
}
}int main()
{
init();
DP();
}
- 1