Cod sursa(job #3133727)

Utilizator TediCutuTudor Chitu TediCutu Data 26 mai 2023 17:53:01
Problema Planeta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<bits/stdc++.h>
using namespace std;
ifstream in("planeta.in");
ofstream out("planeta.out");

long v[30], n, k;

void sol(long n, long k, long val)
{
    if (n == 1)
    {
        out << val + 1 << ' ';
        //out <<"test2";
        return;
    }

    for (long i = 1; i <= n; i++)
    {
        long st, dr, pr;
        st = v[i - 1];
        dr = v[n - i];
        pr = st * dr;

        if (pr < k)
            k -= pr;
        else
        {
            out << val + i << ' ';
            //out <<"test2";
            sol(i - 1, (k - 1) / dr + 1, val);
            sol(n - i, (k - 1) % dr + 1, val + i);
            return;
        }
    }
}

int main()
{
    in >> n >> k;
    v[0] = 1;
    for (long i = 1; i <= n; i++)
        for (long j = 1; j <= i; j++)
            v[i] += v[i - j] * v[j - 1];
    ///in v - cati bts exista pt n
    //for (long i = 1; i <= n; i++)
        //cout<<v[i]<< ' ';
    sol(n, k, 0);

}