#include using namespace std; typedef signed long long ll; #define _P(...) (void)printf(__VA_ARGS__) #define FOR(x,to) for(x=0;x<(to);x++) #define FORR(x,arr) for(auto& x:arr) #define FORR2(x,y,arr) for(auto& [x,y]:arr) #define ALL(a) (a.begin()),(a.end()) #define ZERO(a) memset(a,0,sizeof(a)) #define MINUS(a) memset(a,0xff,sizeof(a)) template bool chmax(T &a, const T &b) { if(a bool chmin(T &a, const T &b) { if(a>b){a=b;return 1;}return 0;} //------------------------------------------------------- int N; ll Y,Z; multiset> cand; map M; void solve() { int i,j,k,l,r,x,y; string s; cin>>N>>Y>>Z; FOR(i,N) { ll C,L,X; cin>>C>>L>>X; if(L<=Y) { M[X]+=C; } else { cand.insert({L,X,C}); } } ll num=0; while(Ysecond==0) { M.erase(M.rbegin()->first); continue; } ll tar=Z; if(cand.size()) tar=min(tar,(*cand.begin())[0]); ll step=M.rbegin()->first; ll add=min(M.rbegin()->second,(tar-Y+step-1)/step); Y+=add*step; M[step]-=add; num+=add; } cout<