Submission #984132

#TimeUsernameProblemLanguageResultExecution timeMemory
984132vjudge1Permutation (APIO22_perm)C++17
71.22 / 100
377 ms1344 KiB
#include "perm.h"
#include<bits/stdc++.h>
#define sz size()
#define ll long long
using namespace std;
mt19937_64 rnd(8181781228);
vector<int> construct_permutation(ll k)
{
    ll z = 1, sum = 0;
    k;
    vector<ll> x;

    for(ll j = 59; j > 0; --j)
    {
        if((z << j) > k) continue;
        x.push_back(j);
        k -= (z << j);
        sum += j;
        break;
    }

    for(ll t = 1; t <= 100000; ++t)
        for(ll j = 59; j > 0; --j)
        {
            if((z << j) - 1 > k) continue;
            ll _j = j - rnd() % (z + 2);
            _j = max(1ll, j);
            x.push_back(_j);
            k -= (z << _j) - 1;
            sum += _j;
        }

    ll cur = 0;
    vector<int> ans;
    for(ll t : x)
    {
        for(ll i = cur + t; i > cur; --i)
            ans.push_back(i - 1);
        cur += t;
    }
    reverse(ans.begin(), ans.end());
    return ans;
}

//signed main()
//{
//    ios_base::sync_with_stdio(0);
//    cin.tie(0), cout.tie(0);
//    ll n;
//    cin >> n;
//    for(auto i : construct_permutation(n))
//        cout << i << ' ';
//}

Compilation message (stderr)

perm.cpp: In function 'std::vector<int> construct_permutation(long long int)':
perm.cpp:10:5: warning: statement has no effect [-Wunused-value]
   10 |     k;
      |     ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...