Submission #1212301

#TimeUsernameProblemLanguageResultExecution timeMemory
1212301jasonicPermutation (APIO22_perm)C++20
100 / 100
1 ms328 KiB
#include "perm.h"
#include <bits/stdc++.h>

using namespace std;
#define ll long long

int mnVal;

void fix(vector<int> &res) {
    int mn = 0;
    for(auto &i : res) mn = min(mn, i);
    for(auto &i : res) i -= mn;
}

vector<int> solve(ll k) {
    vector<int> res;
    if(k == 2) {
        return {0};
    } else if (k != 1) {
        for(auto prime : {2, 3, 5, 7, 11}) {
            if(k % prime == 0 && k != prime) {

                res = solve(k/prime);
                vector<int> res2 = solve(prime);

                fix(res);
                fix(res2);

                int sizeee = (int)size(res);
                for(auto i : res2) res.push_back(i + sizeee);

                return res;
            }
        }
        res = solve(k - 1);
        res.push_back(-1);
        fix(res);
    }
    return res;
}

vector<int> construct_permutation(ll k) {

    mnVal = -1;
    vector<int> res = solve(k);
    fix(res);

    return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...