Submission #1267964

#TimeUsernameProblemLanguageResultExecution timeMemory
1267964zwezdinvSouvenirs (IOI25_souvenirs)C++20
7 / 100
12 ms408 KiB
#include<bits/stdc++.h> #include "souvenirs.h" void buy_souvenirs(int n, long long p0) { std::vector<long long> p(n); p[0] = p0; std::vector<int> cnt(n); auto go = [&](auto self, long long s) -> void { auto [occ, rem] = transaction(s); for (auto x : occ) cnt[x]++; s -= rem; if (occ.size() == 1) { p[occ[0]] = s; } else { long long q = s / occ.size(); self(self, q); for (int i = 0; i < n; ++i) { if (q >= p[i]) { q -= p[i]; s -= p[i]; } } self(self, s); } }; for (int i = 0; i < n; ++i) { if (!p[i]) { go(go, p[i - 1] - 1); } while (cnt[i] < i) { cnt[i]++; transaction(p[i]); } } }
#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...