Submission #673210

#TimeUsernameProblemLanguageResultExecution timeMemory
673210Essa2006순열 (APIO22_perm)C++17
64.63 / 100
13 ms1520 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define endl '\n' #define FF first #define SS second #define all(a) a.begin(), a.end() #define mod (ll)(1000000007) vector<int> construct_permutation(ll k){ vector<int>Ans; bitset<1000>a=k; int group=0; for(int i=0;i<=64;i++){ if(a[i]){ group++; for(int j=0;j<i;j++) Ans.push_back(j); } } vector<int>Old=Ans; int n=Ans.size(), cur=0; for(int i=n-1;i>=0;i--){ if(!Old[i]){ int ind=i; while(true){ Ans[ind]=cur++; if(ind<n-1 && Old[ind+1]) ind++; else break; } } } group--; cur+=group; vector<int>G; while(group--) G.push_back(--cur); for(int i=0;i<n;i++) G.push_back(Ans[i]); Ans=G; return Ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...