Cod sursa(job #2750393)

Utilizator blxqnAlina Voiculescu blxqn Data 10 mai 2021 23:58:57
Problema Planeta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("planeta.in");
ofstream fout("planeta.out");

long long int bst[35];

void ord(int left, int right, long long int k)
{
    int i = left;
    while (i <= right && bst[i - left] * bst[right - i] <= k)
    {
        k -= bst[i - left] * bst[right - i];
        i++;
    }
    fout<<i<<" ";
    if (left < i)
        ord(left, i - 1, k / bst[right - i]);
    if (right > i)
        ord(i + 1, right, k % bst[right - i]);
}

int main()
{
    int n;
    long long int k;
    fin>>n>>k;
    k--;
    bst[0] = 1;
    bst[1] = 1;
    for (int i = 2; i <= n; i++)
        for (int j = 0; j < i; j++)
            bst[i] += bst[j] * bst[i - j - 1];
    ord(1, n, k);
    return 0;
}