#include "stdio.h" int n,m; int a[10000],b[10000],c[10000],f[10001]; int main() { int i,j; int k,s; scanf("%d%d",&n,&m); for(i=0;i<n;i++) scanf("%d%d%d",&a[i],&b[i],&c[i]); for(i=0;i<n;i++) { if(c[i]==0||c[i]*a[i]>=m) { for(j=a[i];j<=m;j++) if(f[j-a[i]]+b[i]>f[j]) f[j]=f[j-a[i]]+b[i]; } else { k=1,s=c[i]; while(k<s) { for(j=m;j>=k*a[i];j--) if(f[j]<f[j-k*a[i]]+k*b[i]) f[j]=f[j-k*a[i]]+k*b[i]; s-=k; k*=2; } for(j=m;j>=s*a[i];j--) if(f[j]<f[j-s*a[i]]+s*b[i]) f[j]=f[j-s*a[i]]+s*b[i]; } } printf("%d\n",f[m]); return 0; } /************************************************************** Problem: 2076 User: admin Language: C Result: Accepted Time:235 ms Memory:1300 kb ****************************************************************/