Submission #1203552

#TimeUsernameProblemLanguageResultExecution timeMemory
1203552ALTAKEXEPermutation (APIO22_perm)C++20
0 / 100
0 ms320 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...