제출 #1346272

#제출 시각아이디문제언어결과실행 시간메모리
1346272goodpjw2008순열 (APIO22_perm)C++20
91.33 / 100
1 ms344 KiB
#ifdef ONLINE_JUDGE
#include "perm.h"
#endif
#include <bits/stdc++.h>
#define int long long
using namespace std;
string tostring(int k){
    string ans;
    while(k){
        ans+=(k%2)+'0';
        k/=2;
    }
    return ans;
}
vector<signed>construct_permutation(int k){
    vector<signed>ans;
    int hi=1,lo=0;
    string b=tostring(k);
    reverse(b.begin(),b.end());
    vector<int>comp;
    for(int i = 1; i < b.size(); i++){
        comp.push_back(hi);
        ans.push_back(hi++);
        if(b[i]=='1'){
            comp.push_back(lo);
            ans.push_back(lo--);
        }
    }
    sort(comp.begin(),comp.end());
    for(signed &i:ans){
        i=lower_bound(comp.begin(),comp.end(),i)-comp.begin();
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...