不知为何,一直错第七个点
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 100 + 5;
int n,m,r;
struct ladylady
{
int money,rp,time;
}lady[N];
int f[N][N];
int t[N][N];
int main()
{
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> lady[i].money >> lady[i].rp >> lady[i].time;
}
cin >> m >> r;
for(int i = 1; i <= n; i++)
{
for(int j = r; j >= lady[i].rp; j--)
{
for(int k = m; k >= lady[i].money; k--)
{
if(f[j][k] < f[j - lady[i].rp][k - lady[i].money] + 1)
{
f[j][k] = f[j - lady[i].rp][k - lady[i].money] + 1;
t[j][k] = t[j - lady[i].rp][k - lady[i].money] + lady[i].time;
}
else if(f[j][k] == f[j - lady[i].rp][k - lady[i].money] + 1)
{
t[j][k] = min(t[j][k], t[j - lady[i].rp][k - lady[i].money] + lady[i].time);
}
else
{
f[j][k] = f[j][k];
t[j][k] = t[j][k];
}
}
}
}
cout << t[m][r] << endl;
return 0;
}