#define MAX_VAL 1000+5
#include <bits/stdc++.h>
using namespace std;
int n,x;
long long dp[MAX_VAL],cost[MAX_VAL],lose[MAX_VAL],win[MAX_VAL];
int main(int arg,char **argv){
scanf("%d %d",&n,&x);
for(int i=1;i<=n;i++) scanf("%lld %lld %lld",&lose[i],&win[i],&cost[i]);
for(int i=1;i<=n;i++){
for(int k=x;k>=0;k--){
if(k>=cost[i]) dp[k] = max(dp[k]+lose[i],dp[k-cost[i]]+win[i]);
else dp[k] += lose[i];
}
}
cout<<dp[n]*5;
return 0;
}
题目测试用例的:
in:
6 8
21 52 1
21 70 5
21 48 2
14 38 3
14 36 1
14 36 2
out:
1060
但是我代码输出的是1035,为啥会WA啊?