제출 #1360603

#제출 시각아이디문제언어결과실행 시간메모리
1360603DanielPr8순열 (APIO22_perm)C++20
100 / 100
1 ms344 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vll = vector<ll>;
using vvl = vector<vll>;
using pll = pair<ll,ll>;
using vpl = vector<pll>;
using vvp = vector<vpl>;
#define f first
#define s second
#define pb push_back
#define all(v) v.begin(),v.end()

deque<ll> solve(long long k){
    deque<ll> ans;
	if(k==1)return ans;
	if(k%2==0){
		ans = solve(k/2);ll n = ans.size();
		ans.pb(n);
		return ans;
	}
	if(k%3==0){
		ans = solve(k/3);ll n = ans.size();
		ans.pb(n+1);
		ans.pb(n);
		return ans;
	}
	if(k%5==0){
		ans = solve(k/5);ll n = ans.size();
		ans.pb(n+1);
		ans.pb(n+2);
		ans.pb(n);
		return ans;
	}
	if(k%11==0){
		ans = solve(k/11);ll n = ans.size();
		ans.pb(n+4);
		ans.pb(n+1);
		ans.pb(n+2);
		ans.pb(n);
		ans.pb(n+3);
		return ans;
	}
	if(k%7==0){
		ans = solve(k/7);ll n = ans.size();
		ans.pb(n+3);
		ans.pb(n+1);
		ans.pb(n+0);
		ans.pb(n+2);
		return ans;
	}
	if(true){
		ans = solve(k/2);ll n = ans.size();
		ans.pb(n);
		if(k%2==1)ans.push_front(n+1);
		return ans;
	}
}
std::vector<int> construct_permutation(long long k){
    deque<ll> ans = solve(k);
    vector<int> ret;
    for(ll i:ans)ret.pb(i);
    return ret;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…