Submission #860142

#TimeUsernameProblemLanguageResultExecution timeMemory
860142mychecksedadPermutation (APIO22_perm)C++17
93.33 / 100
2 ms348 KiB
#include<perm.h>
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define MOD (1000000000+7)
#define MOD1 (998244353)
#define pb push_back
#define all(x) x.begin(), x.end()
#define en cout << '\n'
const int N = 1e6+100, M = 1e5+10, K = 22;

vector<int> solv(ll n, int mn){
	vector<int> a;
	if(n == 1) return a;
	if(n % 3 == 0){
		a = solv(n/3, mn);
		int x, y;
		if(a.empty()){
			x = mn, y = mn + 1;
		}else{
			x = *max_element(all(a)) + 1;
			y = x + 1;
		}
		a.pb(y);
		a.pb(x);
		return a;
	}
	if(n % 2 == 0){	
		a = solv(n/2, mn);
		int x;
		if(a.empty())
			x = mn;
		else
			x = *max_element(all(a)) + 1;
		a.pb(x);
		return a;
	}
	a = solv(n-1, mn+1);
	a.pb(mn);
	return a;
}


vector<int> construct_permutation(long long k){
	return solv(k, 0);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...