#include<bits/stdc++.h>
using namespace std;
struct DP{int val;bool cho[110];}dp[210][210];
struct A{int t,m,p;}a[110];
bool w[110];
int main()
{
int n,T,M;
scanf("%d %d %d",&M,&T,&n);
for(int i=0;i<=M;i++)
{
for(int j=0;j<=T;j++)
{
for(int k=1;k<=n;k++) dp[i][j].cho [k]=false;
}
}
for(int i=1;i<=n;i++)w[i]=false;
for(int k=1;k<=n;k++)
{
scanf("%d %d %d",&a[k].m ,&a[k].t ,&a[k].p );
for(int i=M;i>=a[k].m ;i--)
{
for(int j=T;j>=a[k].t ;j--)
{
if(dp[i][j].val <dp[i-a[k].m ][j-a[k].t ].val +a[k].p )
{
dp[i][j].val =dp[i-a[k].m ][j-a[k].t ].val +a[k].p ;
for(int o=1;o<=k-1;o++) dp[i][j].cho [o]=dp[i-a[k].m ][j-a[k].t ].cho [o];
dp[i][j].cho [k]=true;
}
}
}
}
printf("%d\n",dp[M][T].val );
for(int i=1;i<=n;i++)
{
if(dp[M][T].cho[i] ==true)printf("%d ",i);
}
return 0;
}
luogu1759:通天之潜水
最新推荐文章于 2021-10-09 01:23:36 发布