Submission #1254731

#TimeUsernameProblemLanguageResultExecution timeMemory
1254731MilosMilutinovicFestival (IOI25_festival)C++20
0 / 100
1094 ms4876 KiB
#include "festival.h" #include <bits/stdc++.h> using namespace std; vector<int> max_coupons(int A, vector<int> p, vector<int> t) { int n = int(p.size()); vector<vector<int>> at(5); vector<int> c(5); for (int i = 0; i < n; i++) { at[t[i]].push_back(i); c[t[i]] += 1; } for (int i = 1; i <= 4; i++) { sort(at[i].begin(), at[i].end(), [&](int x, int y) { return p[x] < p[y]; }); } auto Check = [&](vector<int> ids) { int64_t cur = A; for (int i : ids) { cur = min(cur, int64_t(1e17)); if (cur < p[i]) { return false; } cur = (cur - p[i]) * t[i]; } return true; }; vector<int> res; for (int i1 = 0; i1 <= c[1]; i1++) { for (int i2 = 0; i2 <= c[2]; i2++) { for (int i3 = 0; i3 <= c[3]; i3++) { for (int i4 = 0; i4 <= c[4]; i4++) { vector<int> ids; for (int i = 0; i < i4; i++) { ids.push_back(at[4][i]); } for (int i = 0; i < i3; i++) { ids.push_back(at[3][i]); } for (int i = 0; i < i2; i++) { ids.push_back(at[2][i]); } for (int i = 0; i < i1; i++) { ids.push_back(at[1][i]); } if (Check(ids) && int(ids.size()) > int(res.size())) { res = ids; } } } } } return res; }
#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...