Submission #726478

#TimeUsernameProblemLanguageResultExecution timeMemory
726478abcvuitunggioPermutation (APIO22_perm)C++17
91.33 / 100
3 ms340 KiB
#include "perm.h"
#include <bits/stdc++.h>
using namespace std;
std::vector<int> construct_permutation(long long k)
{
    int ch[1001],res[1001];
    memset(ch,0,sizeof(ch));
    memset(res,0,sizeof(res));
    int mx=0;
    int id=1;
    k--;
    while (k){
        for (int i=0;i<=mx;i++)
            if ((1LL<<i)<=k)
                res[id]=i;
        k-=(1LL<<res[id]);
        if (res[id]==mx)
            mx++;
        id++;
    }
    id--;
    for (int i=id;i>=1;i--){
        int cnt=0;
        res[i]++;
        while (res[i]){
            cnt++;
            if (!ch[cnt])
                res[i]--;
        }
        res[i]=cnt;
        ch[cnt]=1;
    }
    vector <int> v;
    for (int i=1;i<=id;i++)
        v.push_back(res[i]-1);
    return v;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...