Submission #737375

#TimeUsernameProblemLanguageResultExecution timeMemory
737375yellowtoadPermutation (APIO22_perm)C++17
0 / 100
0 ms212 KiB
#include <iostream>
#include <vector>
using namespace std;

vector<int> construct_permutation(long long k) {
	long long int n = k, cnt = 1, sz, a[110];
	for (int i = 1; i <= 100; i++) a[i] = 0;
	while ((1LL<<cnt)-1 <= n) cnt++;
	cnt--;
	sz = cnt;
	n -= (1LL<<cnt)-1;
	for (int i = 1; i <= cnt; i++) a[i] = i-1;
	while (cnt >= 0) {
		if ((1LL<<cnt) <= n) {
			n -= (1LL<<cnt);
			for (int i = sz; i >= 1; i--) a[i+1] = a[i];
			sz++;
			if (cnt) a[1] = a[sz-cnt+1];
			else a[1] = a[sz]+1;
			for (int i = sz; i >= sz-cnt+1; i--) a[i]++;
		}
		cnt--;
	}
	vector<int> ans;
	for (int i = 1; i <= sz; i++) ans.push_back(a[i]);
	return ans;
}

/*int main() {
	long long int k;
	vector<int> b;
	cin >> k;
	b = construct_permutation(k);
	for (int i = 0; i < b.size(); i++) cout << b[i] << " ";
}*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...