Cod sursa(job #3135946)

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

void construire(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<<nod<<" ";
    if(s<nod)
        construire(nod-1,n,x/sol[s-nod]);
    if(nod<n)
        construire(n,nod+1,x%sol[s-nod]);}


int main()
{

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

    return 0;
}