Pagini recente » Cod sursa (job #196837) | Cod sursa (job #2637993) | Cod sursa (job #1895339) | Cod sursa (job #404892) | Cod sursa (job #1898969)
#include <fstream>
using namespace std;
ifstream fin("planeta.in");
ofstream fout("planeta.out");
long long 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;
}