Submission #1290271

#TimeUsernameProblemLanguageResultExecution timeMemory
1290271stapanulocu1Festival (IOI25_festival)C++20
0 / 100
50 ms9712 KiB
#include <bits/stdc++.h> using namespace std; struct te { int p, poz; }; vector<te> p[5]; int c[5]; long long a; vector<int> r; vector<int> max_coupons(int A, vector<int> P, vector<int> T) { r.clear(); for(int i =0; i < 5; ++i) { p[i].clear(); c[i] = 0; } for(int i = 0; i < P.size(); ++i) { te st; st.p = P[i]; st.poz = i; p[T[i]].push_back(st); } for(int i = 1; i <= 4; ++i) { sort(p[i].begin(), p[i].end(), [](const te& a, const te& b) { return a.p < b.p; // otherwise compare by x }); } a = A; while(1) { long long maxN = 0; int rezz = 0, nr = 0; for(int i = 4; i >= 0; --i) { if(c[i] < p[i].size() && a >= p[i][c[i]].p && ((a - p[i][c[i]].p)*i) > maxN) { rezz = p[i][c[i]].poz; maxN = (a - p[i][c[i]].p) * i; nr = i; } } c[nr]++; r.push_back(rezz); if(r.size() == P.size()) break; } return r; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...