liaoyu 2017-01-31 00:15:58
点我顶贴
收藏
删除
#include<iostream>
#include<cstdio>
using namespace std;
int m[2000],w[2000],s[2000];
int f[2000]={0};
int x,y;
int main()
{ int n,v;
cin>>n>>v;
for(int i=1;i<=n;i++) cin>>m[i]>>w[i]>>s[i];
for(int i=1;i<=n;i++)
for(int j=v;j>=w[i];j--)
{
m[i]=min(m[i],j/w[i]);
for(int k=0;k<=m[i];k++)
{
x=w[i]*k; y=s[i]*k;
if(j<x) break;
else if(f[j]<f[j-x]+y)
f[j]=f[j-x]+y;
}}
cout<<f[v];
return 0;
}