제출 #976231

#제출 시각아이디문제언어결과실행 시간메모리
976231rythm_of_knight순열 (APIO22_perm)C++17
91.33 / 100
2 ms492 KiB
#include "perm.h" #include <vector> #include <algorithm> std::vector<int> construct_permutation(long long k) { #define int long long using namespace std; int temp = --k; vector <int> v; while (temp) { v.push_back(temp & 1); temp >>= 1; } int sz = v.size(); for (int i = 0; i < sz; i++) { while (i > 0 && v[i - 1] == 0 && v[i] > 0) { v[i - 1] += 2; v[i]--; i--; } } int cnt = -1; vector <signed> ans; vector <signed> keyin; for (int i = 0; i < sz; i++) { vector <int> t; if (v[i] == 0) continue; while (--v[i]) { keyin.push_back(++cnt); } ans.push_back(++cnt); } reverse(keyin.begin(), keyin.end()); for (signed &u : keyin) ans.push_back(u); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...