Cod sursa(job #3135947)

Utilizator AnacrmCaraiman Ana Anacrm Data 4 iunie 2023 19:31:07
Problema Planeta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include<fstream>
using  namespace std;
ifstream r("planeta.in");
ofstream w("planeta.out");
int n;
long long  sol[32],x;

void rez(int n, int s, long long x) {
    if (n == 0)
        return;

    int nod = 1;
    for (; sol[nod - 1] * sol[n - nod] <= x; nod++)
        x = x - sol[nod - 1] * sol[n - nod];

    w << s + nod - 1 << " ";
    rez(nod - 1, s, x / sol[n - nod]);
    rez(n - nod, s + nod, x % sol[n - nod]);
}

int main()
{

    r>>n>>x;
    sol[0] = 1;
    for (int i = 1; i <= n; i++)
    {
        sol[i] = 0;
        for (int j = 1; j <= i; j++)
            sol[i] += sol[j - 1] * sol[i - j];
    }

    rez(n,1,x-1);

    return 0;
}