Submission #1229189

#TimeUsernameProblemLanguageResultExecution timeMemory
1229189avighnaArt Collections (BOI22_art)C++20
50 / 100
385 ms440 KiB
#include <bits/stdc++.h> int publish(std::vector<int>); void answer(std::vector<int>); void solve(int N) { std::vector<int> p(N); std::iota(p.begin(), p.end(), 1); auto sort = [&](auto &&self, int l, int r) { if (l == r) { return; } int m = (l + r) / 2; self(self, l, m); self(self, m + 1, r); int i = l, j = m + 1; std::vector<int> t(r - l + 1); int idx = 0; int init = publish(p); while (i <= m and j <= r) { std::swap(p[i], p[j]); int after = publish(p); std::swap(p[i], p[j]); t[idx++] = init < after ? p[i++] : p[j++]; } while (i <= m) { t[idx++] = p[i++]; } while (j <= r) { t[idx++] = p[j++]; } for (int i = 0; i < t.size(); ++i) { p[l + i] = t[i]; } }; sort(sort, 0, N - 1); answer(p); }
#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...