#include <stdio.h> int main() { int n,v1,v2,k; while (scanf("%d",&n)!=EOF) { int dp[101][101][6]={{{0}}}; scanf("%d%d%d",&v1,&v2,&k); int i,j,x,y; int a[100],b[100],c[100]; for (i=0;i<=n-1;i++) { scanf("%d%d%d",&a[i],&b[i],&c[i]); } for (i=0;i<=n-1;i++) { for (j=v1;j>=0;j--) { for (x=v2;x>=0;x--) { for (y=k;y>=0;y--) { if (a[i]==0 || b[i]==0)//不用价钱或积分时特殊判断 { dp[j][x][y]+=c[i]; continue; } if (y>0 && dp[j][x][y-1]+c[i]>dp[j][x][y]) dp[j][x][y]=dp[j][x][y-1]+c[i]; if (x>=b[i] && dp[j][x-b[i]][y]+c[i]>dp[j][x][y]) dp[j][x][y]=dp[j][x-b[i]][y]+c[i]; if (j>=a[i] && dp[j-a[i]][x][y]+c[i]>dp[j][x][y]) dp[j][x][y]=dp[j-a[i]][x][y]+c[i]; } } } } printf("%d\n",dp[v1][v2][k]); } return 0; }