Cod sursa(job #1536613)

Utilizator robx12lnLinca Robert robx12ln Data 26 noiembrie 2015 14:15:22
Problema Planeta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>
using namespace std;
ifstream cin("planeta.in");
ofstream cout("planeta.out");
unsigned long long D[50];
void rec(unsigned long long n,unsigned long long k,unsigned long long st){
    unsigned long long s = 0;
    for( unsigned long long x = 1; x <= n; x++ ){
        if(  s + D[x-1] * D[n-x] >= k ){
            cout << x + st << " ";
            rec( x-1, (k-s) / D[n-x], st  );
            rec( n-x, (k-s) % D[n-x], x + st );
        }else{
            s += D[x] * 1LL * D[n-x];
        }
    }
}
unsigned long long n ,k , i;
int main(){
    cin >> n >> k;
    D[0] = D[1] = 1;
    for( unsigned long long  i = 2 ; i <= n; i++ ){
         for( unsigned long long x = 1 ; x <= i; x++ ){
            D[i] += D[x-1] * 1LL * D[i-x];
         }
    }
    rec(n,k,0);
    return 0;
}