Cod sursa(job #2896371)

Utilizator iioaaana777Ghergu Ioana iioaaana777 Data 29 aprilie 2022 22:23:53
Problema Planeta Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#define NMAX 31
using namespace std;
ifstream fin("planeta.in");
ofstream fout("planeta.out");

int N, K, x[NMAX];

void tree(int st, int dr, int k)
{
    int s = 0, p, u, k1, k2, i;
    if(st >dr)
        return;
    else

    if(st == dr)
    {
        fout<<st<<" ";
        return;
    }

    for(i = st; i <= dr; ++i)
    {
        p = x[i - st];
        u = x[dr - i];
        s += p * u;
        if(s > k)
            break;
    }

    k -= (s + p * u);
    fout<<i<<" ";
    k1 = k / u;
    k2 = k % u;

    tree(st, i - 1, k1);
    tree(i + 1, dr, k2);

}
int main()
{
    fin>>N>>K;

    x[0] = x[1] = 1;

    for(int i = 2; i <= N; ++i)
        for(int j = 1; j <= i; ++j)
            x[i] += x[j - 1] * x[i - j];

    tree(1, N, K - 1);


    return 0;
}