#include<bits/stdc++.h>
using namespace std;
int dp[2005][6005],ans=0;
int n,h,t,p[2005],d[2005],c[2005];
int main(){
scanf("%d%d%d",&n,&h,&t);
h=h*60;
for(int i=1;i<=n;i++){
for(int j=0;j<=h;j++){
dp[i][j]=INT_MIN;
}
}
for(int i=1;i<=n;i++){
scanf("%d%d%d",p+i,d+i,c+i);
dp[i][h]=0;
}
for(int i=1;i<=n;i++){
for(int j=1;j*t<=h;j++){
dp[i][h-j*t]=(p[i]+p[i]+(j-1)*d[i])*j/2;
}
}
for(int i=1;i<=n;i++){
for(int j=h;j>=0;j--){
for(int k=0;k<=p[i]/d[i];k++){
dp[i][j]=max(dp[i][j],dp[i-1][j+t*k+c[i-1]]+(2*p[i]-(k-1)*d[i])*k/2);
}
}
}
for(int i=1;i<=n;i++){
ans=max(ans,dp[i][0]);
}
printf("%d\n",ans);
//printf("%d%d%d",dp[0][40],dp[1][30],dp[1][31]);
return 0;
}
1 个赞