Pagini recente » Cod sursa (job #1955170) | Cod sursa (job #3039929) | Cod sursa (job #615487) | Cod sursa (job #385124) | Cod sursa (job #289977)
Cod sursa(job #289977)
#include<stdio.h>
#define ll long long
#define N 35
int n;
ll k;
ll cate[N];
inline void precalc()
{
cate[0]=1;
for(int i=1; i<=n; ++i)
{
for(int j=0; j<i; ++j)
cate[i]+=cate[j]*cate[i-j-1];
}
}
void rezolva(int n,ll k,int inc)
{
if(!n)
return;
int cine=0;
for(; cate[cine]*cate[n-cine-1]<=k; ++cine)
k-=cate[cine]*cate[n-cine-1];
printf("%d ",inc+cine);
rezolva(cine,k/cate[n-cine-1],inc);
rezolva(n-cine-1,k%cate[n-cine-1],inc+cine+1);
}
int main()
{
freopen("planeta.in","r",stdin);
freopen("planeta.out","w",stdout);
scanf("%d%lld",&n,&k);
precalc();
rezolva(n,k-1,1);
printf("\n");
return 0;
}