Submission #1360260

#TimeUsernameProblemLanguageResultExecution timeMemory
1360260Davdav1232순열 (APIO22_perm)C++20
91.33 / 100
2 ms344 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#include "perm.h"


std::vector<int> construct_permutation(long long k)
{
	int n=0;
	ll K=k;
	vector<bool> ord;
	while(K>1){
		if(K%2==1){
			K--;
			n++;
			ord.push_back(1);
		}
		else{
			K/=2;
			n++;
			ord.push_back(0);
		}
	}
	reverse(ord.begin(), ord.end());
	vector<int> ans(n);
	deque<int> a;
	for(int i=0; i<n; i++){
		if(ord[i]==0){
			a.push_front(n-i-1);
		}
		else a.push_back(n-i-1);
	}
	for(int i=0; i<n; i++){
		ans[i]=a.front();
		a.pop_front();
	}
	return ans;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...