#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
ll win[1005];
ll lose[1005];
int need[1005];
ll result[1005][1005];
int main(void)
{
int n, x;
scanf("%d %d", &n, &x);
for (int i = 1; i <= n; i++)
{
scanf("%d %d %d", &lose[i], &win[i], &need[i]);
}
for (int i = 0; i <= n; i++)
{
for (int j = 0; j <= x; j++)
{
if (j < need[i])
{
result[i][j] = result[i - 1][j] + lose[i];
}
else
{
result[i][j] = max(result[i - 1][j - need[i]] + win[i], result[i - 1][j] + lose[i]);
}
}
}
printf("%lld", 5 * result[n][x]);
return 0;
}
各位大佬 我还不会滚动数组优化空间 帮我看看为啥过不去吧 跪了