#include using namespace std; // #define DEBUG int solve(int s,int k,vector> const &machine){ vector most(s+1); for (auto const &m: machine){ #if DEBUG cerr<<" machine "< "<=m.first; i--){ int remain=i-m.first; int value=most[i]+m.second; if (remain+value<=k){ most[remain]=max(most[remain],value); } if (i>0){ most[i-1]=max(most[i-1],most[i]); } } #if DEBUG cerr<<" "; for (int z=0; z<=s; z++) cerr<<" "<>n>>m; int s,k; cin>>s>>k; vector>> machine(n); for (int i=0; i>x>>a>>b; machine[x-1].emplace_back(a,b); } for (int i=0; i+1 const &a,pair const &b){ return (a.second-a.first)<(b.second-b.first); }); s=solve(s,k,machine[i]); #if DEBUG cerr<<" have "<