Submission #1165478

#TimeUsernameProblemLanguageResultExecution timeMemory
1165478baldwin_huangPermutation (APIO22_perm)C++20
0 / 100
0 ms320 KiB
#include "perm.h"
#include <bits/stdc++.h>

using namespace std;

vector<int> construct_permutation(long long k) {
	int greatest_power_of_two;
	for (int i = 63; i >= 0; i--) {
		if (k & (1 << i)) {
			greatest_power_of_two = i;
			break;
		}
	}

	vector<int> pre_ans;

	long long diff = k - (1 << greatest_power_of_two);

	int counter = greatest_power_of_two;
	for (int i = greatest_power_of_two - 1; i >= 0; i--) {
		pre_ans.push_back(i);
		if (diff & (1 << i)) {
			pre_ans.push_back(counter);
			counter++;
		}
	}

	vector<int> ans;

	for (int i = pre_ans.size() - 1; i >= 0; i--) {
		ans.push_back(pre_ans[i]);
	}

	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...