#include using namespace std; #define forn(i,n) for(int i=0; i<(int)(n); i++) struct item{ int t, d, v, ind; }; bool compItem(item a, item b){ return a.d>n; vector items; int termino=0; forn(i, n){ item it; cin>>it.t>>it.d>>it.v; it.ind=i+1; termino=max(termino, it.d); items.push_back(it); } sort(items.begin(), items.end(), compItem); vector< vector > mejorValor(n+1, vector(termino+2, 0)); forn(i, n){ forn(j, termino+2){ if(j-items[i].t>=0 && jmejorValor[n][lastRescueMoment]){ lastRescueMoment=j; } } cout< rescato; for(int i=n-1; i>=0; i--){ if(lastRescueMoment>=items[i].t && mejorValor[i+1][lastRescueMoment]==mejorValor[i][lastRescueMoment-items[i].t]+items[i].v){ lastRescueMoment-=items[i].t; rescato.push_back(items[i].ind); } } reverse(rescato.begin(), rescato.end()); cout<