Submission #1138482

#TimeUsernameProblemLanguageResultExecution timeMemory
1138482fryingducArt Collections (BOI22_art)C++20
100 / 100
777 ms496 KiB
#include "bits/stdc++.h" using namespace std; #include "art.h" #ifdef duc_debug #include "bits/debug.h" #else #define debug(...) #endif const int maxn = 4005; int n; int ans[maxn]; #ifdef duc_debug int publish(vector<int> x) { int reply = 0; for(int i = 1; i <= n; ++i) { for(int j = 1; j <= n; ++j) { if(x[i - 1] > x[j - 1] and ans[i] < ans[j]) ++reply; } } return reply; } void answer(vector<int> res) { debug(res, ans); for(int i = 1; i <= n; ++i) { if(res[i - 1] != ans[i]) { assert(false); } } } #endif int c[maxn]; vector<int> prv; void solve(int n) { vector<int> res; for(int i = 1; i <= n; ++i) { vector<int> v; for(int j = 0; j < n; ++j) { v.push_back((i - 1 + j) % n + 1); } c[i] = publish(v); debug(i, v, c[i]); } res.resize(n); iota(res.begin(), res.end(), 1); sort(res.begin(), res.end(), [&](const int &x, const int &y) -> bool { return (c[x] - c[x % n + 1]) < (c[y] - c[y % n + 1]); }); answer(res); } #ifdef duc_debug signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n; for(int i = 1; i <= n; ++i) { cin >> ans[i]; } solve(n); return 0; } #endif
#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...