# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1197338 | sodbayr | 순열 (APIO22_perm) | C++20 | 0 ms | 0 KiB |
#include<bits/stdc++.h>
#include "perm.h"
#define ll int
#define ss second
#define ff first
#define pb push_back
#define endl "\n"
using namespace std;
vector<ll> construct_permutation(ll n){
ll t=0;
vector<ll> v;
for(ll i=59;i>=0;i--){
if(n>>i&1){
if(t==0){
t=1;
ll ss=1;
for(ll j=1;j<=i;j++){
v.pb(ss);
ss+=100;
}
}
else{
v.pb(v[i]-1);
}
}
}
map<ll,ll> mp;
for(ll w : v){
mp[w]=1;
}
ll b=0;
for(auto w : mp){
mp[w.ff]=b++;
}
for(ll &w : v){
w=mp[w];
}
return v;
}
/*int main(){
ios::sync_with_stdio(false);
cout.tie(0);
cin.tie(0);
ll n;cin>>n;
vector<ll> a(n);
a=construct_permutation(n);
for(ll i=1;i<=n;i++){
cout<<a[i]<<' ';
}
}*/