Submission #738912

#TimeUsernameProblemLanguageResultExecution timeMemory
738912shantolPermutation (APIO22_perm)C++17
91.33 / 100
3 ms340 KiB
#include "perm.h"
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define sz size()
#define pb push_back

vector<int> construct_permutation(ll k){
    vector<int> ans;
    k--;
    for(ll p=1, i=0;p<=k;i++,p=(p<<1)|1){
        ans.pb(i);
    }
    ll p=ans.sz;
    vector<vector<int>> v(p+1);
    k=k-(1ll<<p)+1;
    for(int i=p-1;i>=0;i--){
        while(k>=(1ll<<i)){
            v[i].pb(p++);
            k-=(1ll<<i);
        }
    }
    vector<int> val;
    for(int i=0;i<ans.sz;i++){
        for(int j=v[i].sz-1;j>=0;j--)val.pb(v[i][j]);
        val.pb(ans[i]);
    }
    return val;
}

Compilation message (stderr)

perm.cpp: In function 'std::vector<int> construct_permutation(long long int)':
perm.cpp:24:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |     for(int i=0;i<ans.sz;i++){
      |                  ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...