Cod sursa(job #2899249)

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

int N;
long long K, x[NMAX];

void tree(int st, int dr, int k)
{
    int i;
    long long dif;

    for(i = st; i <= dr && k > x[i - st] * x[dr - i]; ++i)
        k -= x[i - st] * x[dr - i];

    fout<<i<<" ";

    if(i > st)
        tree(st, i - 1, 1 + (k - 1) / x[dr - i]);

    dif = k % x[dr - i];
    if(dif == 0)
        dif = x[dr - i];

    if(i < dr)
        tree(i + 1, dr, dif);

}
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);


    return 0;
}