Cod sursa(job #1497065)

Utilizator ovidiuz98Zamfir Ovidiu ovidiuz98 Data 5 octombrie 2015 23:52:16
Problema Planeta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
#define DIM 35

using namespace std;

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

long long D[DIM], K;
int N;

void arbrec(long long x, int p,int u){
    if(p>=u){
        if(p==u)
            fout << p << " " ;
        return;
    }

    int i;

    for(i=p;D[i-p] * D[u-i] < x; i++)
        x -= D[i-p] * D[u-i];

    fout << i << " ";

    x -- ;

    arbrec(x/D[u-i]+1, p, i-1);
    arbrec(x%D[u-i]+1, i+1, u);
}

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

    D[0] = D[1] = 1;

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

    arbrec(K, 1, N);
}