Submission #1012782

#TimeUsernameProblemLanguageResultExecution timeMemory
1012782codefoxPermutation (APIO22_perm)C++17
0 / 100
0 ms348 KiB
#include<bits/stdc++.h> #include "perm.h" using namespace std; std::vector<int> construct_permutation(long long k) { int l = 0; for (int i = 62; i>= 0; i--) { if (k&(1LL<<i)) l =max(l,i); } vector<int> sol(l); iota(sol.begin(), sol.end(), 0); int added = 0; int d = l; for (int i = l-1; i >= 0; i--) { if (k&(1LL<<i)) { if (i%2 && k&(1LL<<(i-1)) && added>=3) { i--; int h = 0; for (int j = sol.size()-1; j >= 0; j--) { if (sol[j]>=l) { sol[j]++; h++; } if (h==3) break; } sol.push_back(0); for (int j = sol.size()-1; j > i; j--) { sol[j] = sol[j-1]; } sol[i] = d++ - 3; } else { sol.push_back(0); for (int j = sol.size()-1; j >i; j--) { sol[j] = sol[j-1]; } sol[i] = d++; added++; } } } return sol; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...