mrpmrp31 @ 2018-09-05 17:44:21
大佬们,求救啊!60分!!!
using namespace std; int v[2][70],p[2][70],f[43000]; int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=m;i++){ int a,b,q; scanf("%d%d%d",&a,&b,&q); if(q){ if(v[1][q]){ v[2][q]=a; p[2][q]=ab; } else{ v[1][q]=a; p[1][q]=ab; } } else { v[0][i]=a; p[0][i]=a*b; } }
for(int i=1;i<=m;++i){
for(int j=n;j>=0;--j){
if(v[0][i]==0)
break;
if(j>=v[0][i]){
f[j]=max(f[j],f[j-v[0][i]]+p[0][i]);
}
if(j>=v[0][i]+v[1][i]){
f[j]=max(f[j],f[j-v[0][i]-v[1][i]]+p[0][i]+p[1][i]);
}
if(j>=v[0][i]+v[2][i]){
f[j]=max(f[j],f[j-v[0][i]-v[2][i]]+p[0][i]+p[2][i]);
}
if(j>=v[0][i]+v[2][i]+v[1][i]){
f[j]=max(f[j],f[j-v[0][i]-v[1][i]-v[2][i]]+p[0][i]+p[1][i]+p[2][i]);
}
}
}
cout<<f[n];
return 0;
}