Submission #601281

# Submission time Handle Problem Language Result Execution time Memory
601281 2022-07-21T14:56:48 Z doowey Permutation (APIO22_perm) C++17
82.0462 / 100
9 ms 724 KB
#include "perm.h"
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int, int> pii;

#define fi first
#define se second
#define mp make_pair


vector<int> construct_permutation(ll k)
{

	if(k == 1) return {};
    if(k % 2 == 1){
        ll p = 1;
        int leng = 0;
        while(2ll * p <= k){
            p *= 2ll;
            leng ++ ;
        }
        if(p == k){
            vector<int> z;
            for(int i = 0 ; i < leng; i ++ ){
                z.push_back(leng);
            }
            return z;
        }
        else{
            p -- ;
            k -= p;
            vector<int> sol = construct_permutation(k);
            vector<int> res;
            for(int i = 0 ; i < leng; i ++ ){
                res.push_back(sol.size() + i);
            }
            for(auto x : sol) res.push_back(x);
            return res;
        }
    }
    else{
        vector<int> sol = construct_permutation(k / 2ll);
        sol.push_back(sol.size());
        return sol;
    }
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Partially correct 1 ms 340 KB Partially correct
5 Partially correct 3 ms 340 KB Partially correct
6 Partially correct 3 ms 468 KB Partially correct
7 Partially correct 7 ms 580 KB Partially correct
8 Partially correct 8 ms 724 KB Partially correct
9 Correct 1 ms 340 KB Output is correct
10 Partially correct 9 ms 556 KB Partially correct
11 Partially correct 7 ms 596 KB Partially correct
12 Partially correct 7 ms 596 KB Partially correct
13 Partially correct 6 ms 596 KB Partially correct