RT,请大佬帮忙看一看。
#include <bits/stdc++.h>
using namespace std;
vector<int> v[101];
int ma=0,vis[101][10100];
int main(){
for(int i=0;i<101;++i) for(int j=0;j<10100;++j) vis[i][j]=0;
int a;cin>>a;
for(int i=0;i<a;i++){
vis[i][0]=1;
int m=0;
while(1){
int t;scanf("%d",&t);
if(t==-1)break;
m+=t;
v[i].push_back(t);
for(int j=0;j<=m-t;++j){
if(vis[i][j]) vis[i][j+t]=1;
}
}
ma=max(m,ma);
}
for(int i=ma;i>0;--i){
bool t=0;
for(int j=0;j<a;++j){//cout<<vis[j][i]<<" ";
if(!vis[j][i]){
t=1;break;
}
}
//cout<<endl;
if(t) continue;
cout<<i;
return 0;
}
cout<<0;
return 0;
}