Cod sursa(job #1234727)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 27 septembrie 2014 21:45:29
Problema Planeta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>

using namespace std;

ifstream fin ("planeta.in");
ofstream fout ("planeta.out");

long long d[35],k;
int i,j,n;

void rec (long long nr,int st, int dr) {
    if (st>=dr) {
        if (st==dr)
            fout<<st<<" ";
        return;
    }
    int i;
    for (i=st;d[i-st]*d[dr-i]<nr&&i<=dr;i++)
        nr-=d[i-st]*d[dr-i];
    fout<<i<<" ";
    nr--;
    rec(nr/d[dr-i]+1,st,i-1);
    rec(nr%d[dr-i]+1,i+1,dr);
}


int main () {

    fin>>n>>k;
    d[0]=d[1]=1;
    for (i=2;i<=n;i++)
        for (j=1;j<=i;j++)
            d[i]+=d[j-1]*d[i-j];
    rec(k,1,n);

    return 0;
}