Submission #658354

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
6583542022-11-12 21:33:19Zena_HossamPermutation (APIO22_perm)C++17
71.22 / 100
14 ms1364 KiB
#include<bits/stdc++.h>
#include "perm.h"
//#include "grader.cpp"
#define ll long long
using namespace std;
std::vector<int> construct_permutation(long long k)
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
vector<pair<ll,int>>v;
vector<int>s;
long long l=1;
for(int i=0;i<100;i++)
{
v.push_back({l-1,i});
l*=2;
if(l-1>1e18)break;
}
ll p=k-2;k--;
while(1)
{
pair<ll,int>h={k,0};
int o=upper_bound(v.begin(),v.end(),h)-v.begin();
if(v.back().first<=k)o=v.size()-1;
while(v[o].first>k&&k)o--;
while(k>=v[o].first){
for(ll i=p-v[o].second+1;i<=p;i++){
s.push_back(i);
}
p-=v[o].second;
k-=v[o].first;}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

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