Submission #1140462

#TimeUsernameProblemLanguageResultExecution timeMemory
1140462Sang순열 (APIO22_perm)C++17
91.33 / 100
1 ms332 KiB
#include<bits/stdc++.h> using namespace std; #define FOR(i, a, b) for (int i = (a), _b = (b); i <= _b; i++) #define FORD(i, a, b) for (int i = (a), _b = (b); i >= _b; i--) #define fi first #define se second #define pb push_back #define ALL(a) (a).begin(), (a).end() #define task "kbsiudthw" #define LL long long typedef vector<int> vi; typedef pair<int, int> ii; typedef pair<int, ii> pii; const int N = 1e5 + 5; const int INF = 0x3f3f3f3f; const int MOD = 1e9 + 2277; vector<int> construct_permutation(long long k){ vi ans; k--; int sz = 0; while (k){ FORD(i, 60, 1){ if (k < (1ll<<i) -1 ) continue; k -= (1ll<<i) - 1; sz = i; break; } break; } int s = sz + __builtin_popcountll(k) - 1; int cur = 0; if (k & 1) ans.pb(cur++); FOR (i, 1, sz){ ans.pb(s - i + 1); if ((k>>i) & 1){ ans.pb(cur++); } } reverse(ALL(ans)); return ans; } //int main(){ // vi a = construct_permutation(8); // for(int &x : a) cout << x << ' '; //}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...