#include "perm.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int mn, mx;
void pushMin(vector<int> &vec) {
vec.push_back(mn);
if(mn == mx) {
mx++;
}
mn--;
}
void pushMax(vector<int> &vec, int cnt) {
for(int i = cnt+mx-1; i >= mx; i--) {
vec.push_back(i);
}
if(mn == mx) {
mn--;
}
mx += cnt;
}
vector<int> solve(ll k) {
vector<int> res;
if(k == 2) {
pushMin(res);
} else if (k != 1) {
for(auto prime : {2, 3, 5, 7, 11}) {
if(k % prime == 0) {
res = solve(k/prime);
pushMax(res, prime-1);
return res;
}
}
res = solve(k-1);
pushMin(res);
}
return res;
}
vector<int> construct_permutation(ll k) {
mn = 0, mx = 0;
vector<int> res = solve(k);
int mn = 0;
for(auto &i : res) mn = min(mn, i);
for(auto &i : res) i -= mn;
return res;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |