Submission #673210

#TimeUsernameProblemLanguageResultExecution timeMemory
673210Essa2006Permutation (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...