1 solutions
-
0
#include<bits/stdc++.h> using namespace std; const int N=12010,M=2010; int f[M]; int v[N],w[N]; int main() { int n,m; cin>>n>>m; int cnt=0; for(int i=1;i<=n;i++) { int a,b,c; cin>>a>>b>>c; int t=1; while(t<=c) { v[cnt]=a*t; w[cnt++]=b*t; c-=t; t=t*2; } if(c) { v[cnt]=a*c; w[cnt++]=b*c; } } n=cnt; for(int i=0;i<=n;i++) { for(int j=m;j>=v[i];j--) { f[j]=max(f[j],f[j-v[i]]+w[i]); } } cout<<f[m]; return 0; }
- 1
Information
- ID
- 211
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 48
- Accepted
- 9
- Uploaded By