#include<bits/stdc++.h>
using namespace std;
const int MAXX = 1e5 + 5;
int n, v, a[MAXX], b[MAXX], dp[MAXX], r1, r2, s[MAXX], cnt;
int main(){
cin >> n >> v;
for(int i = 1; i <= n; i++){
cin >> r1 >> r2 >> s[i];
for(int j = 1; j <= s[i]; j++){
a[++cnt] = r1, b[cnt] = r2;
}
}
for(int i = 1; i <= cnt; i++){
for(int j = v; j >= a[i]; j--){
dp[j] = max(dp[j - a[i]] + b[i], dp[j]);
}
}
cout << dp[v];
return 0;
}
多重背包问题 I