제출 #740920

#제출 시각아이디문제언어결과실행 시간메모리
740920enerelt14순열 (APIO22_perm)C++17
91.33 / 100
2 ms340 KiB
#include "perm.h" #include<bits/stdc++.h> #define ll long long #define pb push_back using namespace std; vector<int> x; int n; vector<int> construct_permutation(ll k){ if (k == 1)return {}; if (k == 2)return {0}; if (k == 3)return {1, 0}; if (k % 4 == 0){ x = construct_permutation(k / 4); n = x.size(); x.pb(n); x.pb(n + 1); return x; } if (k % 4 == 1){ x = construct_permutation(k / 4); n = x.size(); for (int i = 0; i < n; i++)x[i]++; x.pb(n + 1); x.pb(n + 2); x.pb(0); return x; } if (k % 4 == 2){ x = construct_permutation(k / 4); n = x.size(); for (int i = 0; i < n; i++)x[i]++; x.pb(n + 1); x.pb(0); x.pb(n + 2); return x; } x = construct_permutation(k / 4); n = x.size(); int z = -1, o = -1; for (int i = 0; i < n; i++){ if (x[i] == 0)z = i; if (x[i] == 1)o = i; } if (z > o && z == -1 && o == -1){ for (int i = 0; i < n; i++)if (x[i] > 1)x[i]++; x.pb(n + 1); x.pb(n + 2); x.pb(2); return x; } for (int i = 0; i < n; i++)x[i] += 2; x.pb(n + 2); x.pb(1); x.pb(n + 3); x.pb(0); return x; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...