#include #define MAXM 5001 #define MAXN 10001 using namespace std; long long n,m; set s; pair pay[MAXN]; struct scene{ vector ars; long long ind; }; bool cmp1(long long a,long long b){ if(pay[a]>pay[b]) return true; return false; } vector order[MAXN]; bool cmp2(const scene& s1, const scene& s2) { long long sz=min(s1.ars.size(),s2.ars.size()); long long osem5=55; sz=min(sz,osem5); //code generated by ai - begin for (long long i = 0; i < sz; ++i) { long long valA = (i < s1.ars.size()) ? s1.ars[i] : LLONG_MIN; long long valB = (i < s2.ars.size()) ? s2.ars[i] : LLONG_MIN; if (valA < valB) { return true; } else if (valA > valB) { return false; } } return false; //generated by ai - end } scene scs[MAXM]; long long hshF[MAXN],hshO[MAXN],quan[MAXN]; bool g[MAXN],g1[MAXN]; vector ans; priority_queue pq; long long SceneVal(long long currVal,long long in1,long long i2){ long long ans1=0; for(long long i=0;i>n>>m; for(long long i=0;i>pay[i].first; pay[i].second=i+1; s.insert(i); } sort(pay,pay+n); for(long long i=0;i>br; for(long long i1=0;i1>x; x=hshF[x]; quan[x]++; scs[i].ars.push_back(x); } sort(scs[i].ars.begin(),scs[i].ars.end(),cmp1); } sort(scs,scs+m,cmp2); for(long long i=0;iscv){ if(scv