Cod sursa(job #3135627)

Utilizator alexandramocanu181Mocanu Alexandra alexandramocanu181 Data 3 iunie 2023 20:52:14
Problema Planeta Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <vector>

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

void solve(int n, long long k)
{
    std::vector<long long> v(n + 1, 0);
    v[0] = 1;

    for (int i = 1; i <= n; ++i)
    {
        for (int j = 1; j <= i; ++j)
        {
            v[i] += v[i - j] * v[j - 1];
        }
    }

    k--;

    int nod = 1;
    while (v[nod - 1] * v[n - nod] <= k)
    {
        k = k - v[nod - 1] * v[n - nod];
        nod++;
    }

    fout << nod << " ";

    if (nod > 1)
        solve(nod - 1, k / v[n - nod]);

    if (nod < n)
        solve(n - nod, k % v[n - nod]);
}

int main()
{
    int n;
    long long k;
    fin >> n >> k;
    solve(n, k);
    return 0;
}