Pagini recente » Cod sursa (job #1753281) | Cod sursa (job #2237117) | Cod sursa (job #3129932) | Cod sursa (job #3176749) | Cod sursa (job #465094)
Cod sursa(job #465094)
// 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);
ll c = k/p[nod-i],rest=k%p[nod-i];
if (rest==0) rest=p[nod-i];
else c++;
rec(i-1,c,val);
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;
}