Submission #852797

#TimeUsernameProblemLanguageResultExecution timeMemory
852797adhityamvPermutation (APIO22_perm)C++17
0 / 100
1 ms344 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
vector<int> construct_permutation(ll k){
    ll pow2[60];
    pow2[0]=1LL;
    for(int i=1;i<60;i++) pow2[i]=2LL*pow2[i-1];
    vector<int> bnry;
    int e=59;
    while(pow2[e]>k) e--;
    while(e>=0){
        if(k>=pow2[e]){
            k-=pow2[e];
            bnry.push_back(1);
        } else bnry.push_back(0);
        e--;
    }
    int mn=0;
    int mx=0;
    vector<int> ans;
    ans.push_back(0);
    int m=(int) bnry.size();
    for(int i=1;i<m;i++){
        if(bnry[i]==0){
            ans.push_back(mx+1);
            mx++;
        } else{
            ans.push_back(mx+1);
            mx++;
            ans.push_back(mn-1);
            mn--;
        }
    }
    int l=ans.size();
    for(int i=0;i<l;i++){
        ans[i]-=(mn);
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...