Submission #1107155

#TimeUsernameProblemLanguageResultExecution timeMemory
1107155vladiliusPermutation (APIO22_perm)C++17
93.33 / 100
2 ms504 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
#define pb push_back
#define ff first
#define ss second

vector<int> construct_permutation(ll k){
    vector<int> p;
    int cc = 0;
    if (k % 2){
        p.pb(1e9);
        p.pb(cc++);
        k = (k - 1) / 2 - 1;
    }
    else {
        p.pb(cc++);
        k = k / 2 - 1;
    }
    while (k > 0){
        if (k % 2){
            p.pb(cc++);
            k = (k - 1) / 2;
        }
        else {
            if ((k + 1) % 3 == 0){
                p.pb(cc + 1);
                p.pb(cc);
                cc += 2;
                k = (k + 1) / 3 - 1;
                continue;
            }
            p.pb(1e9);
            p.pb(cc++);
            k = k / 2 - 1;
        }
    }
    for (int i = (int) p.size() - 1; i >= 0; i--){
        if (p[i] == 1e9){
            p[i] = cc++;
        }
    }
    return p;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...