Cod sursa(job #1898967)

Utilizator GoogalAbabei Daniel Googal Data 2 martie 2017 14:06:54
Problema Planeta Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;

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

int n,k,d[35][35][35],s[35];

void solve()
{
    int i,j;
    s[0]=1;
    for(i=1; i<=n; i++)
        for(j=1; j<=i; j++)
            s[i]+=s[j-1]*s[i-j];
}

void Find(int a, int b, long long k)
{
    long long i,r=0;
    for(i=a; r+s[i-a]*s[b-i]<k && i<b; i++)
        r+=s[i-a]*s[b-i];
    fout<<i<<' ';
    if(a<=i-1)
        Find(a,i-1,(k-r-1)/s[b-i]+1);
    if(i+1<=b)
        Find(i+1,b,(k-r-1)%s[b-i]+1);
}

int main()
{
    fin>>n>>k;
    fin.close();
    solve();
    Find(1,n,k);
    fout.close();
    return 0;
}