Pagini recente » Cod sursa (job #1681090) | Istoria paginii runda/oni_5/clasament | Cod sursa (job #1584428) | Cod sursa (job #1229079) | Cod sursa (job #465089)
Cod sursa(job #465089)
// de mod lld
#include<stdio.h>
#define ll long long
ll p[53],k;
int n;
void rec(int nod,ll k,int val)
{
int i;
if(!k || !nod)
return ;
for(i=1;i<=nod;i++)
if(k>p[i-1]*p[nod-i])
k-=p[i-1]*p[nod-i];
else
break;
printf("%d ",i+val);
rec(i-1,k/p[nod-i],val);
int rest=k%p[nod-i];
if (rest==0) rest=p[nod-i];
rec(nod-i,rest,val+i);
}
int main ()
{
int i,j;
freopen("planeta.in","r",stdin);
freopen("planeta.out","w",stdout);
scanf("%d%lld",&n,&k);
p[0]=1;p[1]=1;
for(i=2;i<=n;i++)
for(j=1;j<=i;j++)
p[i]+=p[j-1]*p[i-j];
rec(n,k,0);
return 0;
}