#include "perm.h"
#include <cstdio>
#include <vector>
#include <cassert>
#include <algorithm>
#include <stdlib.h>
#include <bits/stdc++.h>
#define ll long long int
using namespace std;
static long long MX = 1e18;
vector<int> construct_permutation(ll k)
{
if (k == 2)
{
return {0};
}
int n = 0;
while ((1LL << n) <= k)
{
n++;
}
vector<int> p(n);
for (int i = 0; i < n; ++i)
{
p[i] = i;
}
if ((1LL << n) - 1 == k)
{
return p;
}
vector<int> result;
int current = 0;
int remaining = k;
for (int i = n - 1; i >= 0; --i)
{
if (remaining >= (1LL << i))
{
result.push_back(current++);
remaining -= (1LL << i);
}
}
for (int i = n - 1; i >= 0; --i)
{
bool found = false;
for (int x : result)
{
if (x == i)
found = true;
}
if (!found)
result.push_back(current++);
}
return result;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |