rt,虽然这题其实不需要初始化能ac
#include <bits/stdc++.h>
#define re register int
using namespace std;
const int N = 110;
int n, m, r, rmb[N], rp[N], t[N];
int dp_num[N][N], dp_time[N][N];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin >> n;
for (re i = 1; i <= n; i ++) cin >> rmb[i] >> rp[i] >> t[i];
cin >> m >> r;
memset(dp_time, 0x3f, sizeof(dp_time));
for (re i = 0; i <= n; i ++) dp_time[0][i] = dp_time[i][0] = 0;
for (re i = 1; i <= n; i ++)
for (re j = m; j >= rmb[i]; j --)
for (re k = r; k >= rp[i]; k --)
{
if (dp_num[j][k] < dp_num[j - rmb[i]][k - rp[i]] + 1)
{
dp_num[j][k] = dp_num[j - rmb[i]][k - rp[i]] + 1;
dp_time[j][k] = dp_time[j - rmb[i]][k - rp[i]] + t[i];
}
else if (dp_num[j][k] == dp_num[j - rmb[i]][k - rp[i]] + 1)
dp_time[j][k] = min(dp_time[j][k], dp_time[j - rmb[i]][k - rp[i]] + t[i]);
}
cout << dp_time[m][r] << '\n';
return 0;
}