Pagini recente » Cod sursa (job #1725305) | Cod sursa (job #322685) | Cod sursa (job #1794523) | Cod sursa (job #190991) | Cod sursa (job #258229)
Cod sursa(job #258229)
# include <stdio.h>
int N,L,S[32];
long long K,C[32];
void catalan()
{
int i, j;
C[0]=1;
for (i=1;i<=N;++i)
for (j=0;j<i;++j)
C[i]+=C[j]*C[i-j-1];
}
void rec(int st, int dr, long long K)
{
int i;
for (i=st;i<=dr && C[i-st]*C[dr-i]<=K;++i)
K-=C[i-st]*C[dr-i];
printf("%d ",i);
if (st<=i-1) rec(st,i-1,K/C[dr-i]);
if (i+1<=dr) rec(i+1,dr,K%C[dr-i]);
}
int main()
{
int i, j;
freopen("planeta.in", "r", stdin);
freopen("planeta.out", "w", stdout);
scanf("%d %lld",&N,&K);
catalan();
rec(1,N,K-1);
return 0;
}