二维费用的背包问题
#include<bits/stdc++.h>
using namespace std;
const int MAXX = 1e5 + 5, MAXN = 1e3 + 5;
int n, v, a[MAXX], b[MAXX], dp[MAXN][MAXN], c[MAXX], m;
int main(){
cin >> n >> v >> m;
for(int i = 1; i <= n; i++){
cin >> a[i] >> c[i] >> b[i];
}
for(int i = 1; i <= n; i++){
for(int j = v; j >= a[i]; j--){
for(int k = m; k >= c[i]; k--){
dp[j][k] = max(dp[j - a[i]][k - c[i]] + b[i], dp[j][k]);
}
}
}
cout << dp[v][m];
return 0;
}