vi construct_permutation(ll k) {
if(k == 1) return {};
if(k == 2) return vi{0};
for(int i: {2, 3, 5, 7, 11, 13, 17, 19, 23, 29}) {
if(k % i == 0 && k > i) {
vi l = construct_permutation(k / i);
vi r = construct_permutation(i);
for(auto& x: r) x += l.size();
l.insert(l.end(), all(r));
return l;
}
}
vi a = construct_permutation(k / 2);
a.pb(a.size());
if(k & 1) a.insert(a.begin(), a.size());
return a;
}
Compilation message
perm.cpp:1:1: error: 'vi' does not name a type; did you mean 'void'?
1 | vi construct_permutation(ll k) {
| ^~
| void