#include "perm.h"
#include<bits/stdc++.h>
#define ll long long
using namespace std;
std::vector<int> construct_permutation(long long k)
{
vector<ll> l3ibat;
vector<bool> kayn(61);
for (int i=0;i<=60;i++)
{
ll num=1LL<<i;
if(num & k)
{
l3ibat.push_back(i);
kayn[i]=1;
}
}
ll n=l3ibat.back();
vector<ll> p1(n);
iota(p1.begin(),p1.end(),1);
ll cur=0;
for (int i=1;i<n;i++)
{
if(kayn[n-i])
{
cur++;
}
p1[i]+=cur;
}
vector<int> nzido;
if(k%2) nzido.push_back(p1.back()+1);
for (int i=n-1;i>=1;i--)
{
if(p1[i]-p1[i-1]==2)
{
nzido.push_back(p1[i]-1);
}
}
for (int i=0;i<n;i++)
{
nzido.push_back(p1[i]);
}
for (auto &&e : nzido)
{
e--;
}
return nzido;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |