Submission #726653

#TimeUsernameProblemLanguageResultExecution timeMemory
726653vjudge1Permutation (APIO22_perm)C++17
0 / 100
1 ms212 KiB
#include<bits/stdc++.h>
using namespace std;
#define all(fl) fl.begin(),fl.end()
#define pb push_back
#define fi first
#define se second
#define for1(i,j,k) for(int i=j;i<=k;i++)
#define for2(i,j,k) for(int i=j;i>=k;i--)
#define for3(i,j,k,l) for(int i=j;i<=k;i+=l)
#define lb lower_bound
#define ub upper_bound
#define sz(a) (int)a.size()
#define pii pair<int,int>
#define pli pair<long long,int>
#define gcd __gcd
#define lcm(x,y) x*y/__gcd(x,y)
#define lastbit(i) __builtin_ctz(i)
vector<int> construct_permutation(long long k){
   k--;
   vector<int>ans;
   while (k){
   for2(i,60,1){
   if ((1ll<<i)-1<=k){
   k-=(1ll<<i)-1;
   if (sz(ans)==0){
   for1(j,0,i-1){
   ans.pb(j);
   }
   }
   else {
   for (auto &v:ans){
    v++;
   }
   vector<int>newans;
   int j=i-1;
   while (j--){
   newans.pb(ans.back());
   ans.pop_back();
   }
   ans.pb(0);
   while (!newans.empty()){
    ans.pb(newans.back());
    newans.pop_back();
   }
   }
   break;
   }
   }
   }
   return ans;
}
/*signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    //freopen(".INP","r",stdin);
    //freopen(".OUT","w",stdout);
    vector<int>vl=construct_permutation(3);
    for (auto v:vl){
        cout<<v<<" ";
    }
}*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...