没有开两个数组,为什么这样写只有20分
//
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 110;
int n,m,r,rmb[N],rp[N],tt[N];
int f[N][N][2];
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
cin>>n;
for(int i = 1; i <= n; i++) cin>>rmb[i]>>rp[i]>>tt[i];
cin>>m>>r;
memset(f,0x3f,sizeof f);
f[0][0][0] = 0;
for(int i = 1; i <= n; i++)
for(int j = m; j >= rmb[i]; j--)
for(int k = r; k >= rp[i]; k--)
if(f[j][k][1] < f[j - rmb[i]][k - rp[i]][1] + 1)
f[j][k][0] = f[j - rmb[i]][k - rp[i]][0] + tt[i],
f[j][k][1] = f[j - rmb[i]][k - rp[i]][1] + 1;
else if(f[j][k][1] == f[j - rmb[i]][k - rp[i]][1] + 1 )
f[j][k][0] = min(f[j][k][0],f[j - rmb[i]][k - rp[i]][0] + tt[i]);
cout<<f[m][r][0];
return 0;
}