#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int N=1e2+5;
int n,am,ar;
struct peo{
int maxg;
int mint;
}a[N][N];
struct slo{
int m;
int r;
int t;
}s[N];
int cmp(slo ax,slo bx)
{
return ax.t<bx.t;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d%d",&s[i].m,&s[i].r,&s[i].t);
}
sort(s+1,s+1+n,cmp);
scanf("%d%d",&am,&ar);
for(int i=1;i<=n;i++)
{
for(int j=am;j>=s[i].m;j--)
{
for(int z=ar;z>=s[i].r;z--)
{
// a[j][z].maxg=max(a[j][z].maxg,a[j-m[i]][z-r[i]].maxg+1);
if(a[j-s[i].m][z-s[i].r].maxg+1>a[j][z].maxg)
{
a[j][z].maxg=a[j-s[i].m][z-s[i].r].maxg+1;
a[j][z].mint=a[j-s[i].m][z-s[i].r].mint+s[i].t;
}
else
{
// a[j][z].mint=min(a[j][z].mint,a[j-m[i]][z-r[i]].mint+t[i]);
}
}
}
}
// for(int i=1;i<=am;i++)
// {
// for(int j=1;j<=ar;j++)
// {
// printf("%d ",a[i][j].maxg);
// }
// printf("\n");
// }
// for(int i=1;i<=am;i++)
// {
// for(int j=1;j<=ar;j++)
// {
// printf("%d ",a[i][j].mint);
// }
// printf("\n");
// }
printf("%d",a[am][ar].mint);
return 0;
}
居然有这么多妹子,那我就贪心一下,先判断小的(这样可以跳过相同的大的),然后dp背包查询时间, #4 #9 WA了,求hack数据