如题
#include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
#define re register
#define il inline
#define ll long long
#define ull unsigned long long
il int read()
{
int f,x;char ch=getchar();
while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();}
while(isdigit(ch)){x=(x>>3)+(x>>1)+(ch^48);ch=getchar();}
return f*x;
}
long long dp[501][501],m[51],v[51],k[51],maxm,maxv,n;
int main()
{
maxv=read();maxm=read();
n=read();
for(int i=0;i<n;i++)
{
v[i]=read();m[i]=read();k[i]=read();
}
for(int i=0;i<maxm;i++)
{
for(int j=maxv;j>=v[i];j--)
{
for(int k=maxm;k>=m[i];k--)
{
dp[j][k]=max(dp[j][k],dp[j-v[i]][k-m[i]]+k[i]);
}
}
}
cout<<dp[maxv][maxm];
return 0;
}