Submission #1107173

#TimeUsernameProblemLanguageResultExecution timeMemory
1107173vladiliusPermutation (APIO22_perm)C++17
100 / 100
1 ms504 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; #define pb push_back #define ff first #define ss second vector<int> construct_permutation(ll k){ vector<int> p; int cc = 0; if (k % 2){ p.pb(1e9); p.pb(cc++); k = (k - 1) / 2 - 1; } else { p.pb(cc++); k = k / 2 - 1; } while (k > 0){ if (k % 2){ p.pb(cc++); k = (k - 1) / 2; } else { if ((k + 1) % 3 == 0){ p.pb(cc + 1); p.pb(cc); cc += 2; k = (k + 1) / 3 - 1; continue; } if ((k + 1) % 5 == 0){ p.pb(cc + 2); p.pb(cc); p.pb(cc + 1); cc += 3; k = (k + 1) / 5 - 1; continue; } if ((k + 1) % 9 == 0){ p.pb(cc + 1); p.pb(cc + 0); p.pb(cc + 3); p.pb(cc + 2); cc += 4; k = (k + 1) / 9 - 1; continue; } if ((k + 1) % 17 == 0){ p.pb(cc + 1); p.pb(cc + 2); p.pb(cc + 3); p.pb(cc + 4); p.pb(cc + 0); cc += 5; k = (k + 1) / 17 - 1; continue; } if ((k + 1) % 33 == 0){ p.pb(cc + 1); p.pb(cc + 2); p.pb(cc + 3); p.pb(cc + 4); p.pb(cc + 5); p.pb(cc + 0); cc += 6; k = (k + 1) / 33 - 1; continue; } if ((k + 1) % 65 == 0){ p.pb(cc + 1); p.pb(cc + 2); p.pb(cc + 3); p.pb(cc + 4); p.pb(cc + 5); p.pb(cc + 6); p.pb(cc + 0); cc += 7; k = (k + 1) / 65 - 1; continue; } p.pb(1e9); p.pb(cc++); k = k / 2 - 1; } } for (int i = (int) p.size() - 1; i >= 0; i--){ if (p[i] == 1e9){ p[i] = cc++; } } return p; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...