https://vjudge.net/contest/280124#problem/F
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
struct str{
int x,y,z;
bool operator<(const str &str1)const{
return y<str1.y;
}
}a[100000];
int i,n,ans,k,j,dp[100000];
int main(){
while (~scanf("%d",&n)){
memset(dp,0,sizeof(dp));
for (i=1;i<=n;i++)
scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);
sort(a+1,a+n+1);
for (i=1;i<=n;i++)
for (j=1;j<=a[i].z;j++)
for (k=a[i].y;k>=a[i].x;k--)
dp[k]=max(dp[k],dp[k-a[i].x]+a[i].x);
ans=0;
for (i=1;i<=a[n].y;i++)
ans=max(ans,dp[i]);
printf("%d\n",ans);
}
}