#include<iostream>
#include<cstdio>
using namespace std;
int w[1000];
int c[1000];
int a[1000][1000];
int f[1000];
int main()
{
int m,n,q,p,i,j,k;
scanf("%d%d%d",&m,&n,&q);
for(i=1;i<=n;i++)
{
scanf("%d%d%d",&w[i],&c[i],&p);
a[p][0]++;
a[p][a[p][0]]=i;
}
for(i=1;i<=q;i++)
{
for(j=m;j>=0;j--)
{
for(k=1;k<=a[i][0];k++)
{
if(j>=w[a[i][k]])
{
int tem=a[i][k];
if(f[j]<f[j-w[tem]]+c[tem])
f[j]=f[j-w[tem]]+c[tem];
}
}
}
}
cout<<f[m]<<endl;
return 0;
}
1272:【例9.16】分组背包
最新推荐文章于 2024-07-15 21:35:26 发布