제출 #737670

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