#include<bits/stdc++.h>
using namespace std;
struct note{
	int v,w,s;
	bool flag;
}a[10001];
int f[10001];
int n,m; 
int path[7001][7001];
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		scanf("%d%d%d",&a[i].v,&a[i].w,&a[i].s);
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=m;j>=0;j--)
		{
			for(int k=0;k<=a[i].s;k++)
			{
				if(j<k*a[i].v)
				{
					break;
				}
				else
				{
					if(f[j]<f[j-k*a[i].v]+k*a[i].w)
					{
						f[j]=f[j-k*a[i].v]+k*a[i].w;
						path[i][j]=k;
						for(int h=1;h<i;h++) path[h][j]=path[h][j-k*a[i].v];
					}
				}
			 } 
		}
	}
	cout<<f[m]<<endl;
	for(int i=1;i<=n;i++)
	{
		cout<<path[i][m]<<endl;
	}
	return 0;
 }

0 条评论

目前还没有评论...

信息

ID
462
时间
1000ms
内存
256MiB
难度
6
标签
递交数
114
已通过
31
上传者