下方是代码:
#include<bits/stdc++.h>
using namespace std;
const int N=5005;
int n,m,v[N],w[N],s[N],f[N];
bool g[N][N];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>v[i]>>w[i]>>s[i];
for(int j=m;j>=v[i];j--)
{
for(int k=0;k<=s[i];k++)
{
if(j>=k*v[i])
{
int t=f[j-k*v[i]]+k*w[i];
if(t>f[j])
{
f[j]=t;
g[i][j]=1;
}
}
}
}
}
cout<<f[m]<<endl;
while(n)
{
if(g[n][m])
{
cout<<n<<" ";
m-=v[n]*s[n];
}
n--;
}
return 0;
}