Pagini recente » Cod sursa (job #2625281) | Cod sursa (job #3218470) | Cod sursa (job #1009388) | Cod sursa (job #2232661) | Cod sursa (job #255511)
Cod sursa(job #255511)
#include<stdio.h>
#define tip unsigned long long
tip n,k,i,j,a[32][32],p,q,sol[32];
void readd(),calc_arb(),solve(),prints();
int main()
{
readd();
calc_arb();
solve();
prints();
return 0;
}
void readd()
{
freopen("planeta.in","r",stdin);
freopen("planeta.out","w",stdout);
scanf("%llu%llu",&n,&k);
}
void calc_arb()
{
a[0][0]=1;
for(i=1;i<32;i++)
{ for(j=1;j<=i;j++)a[i][j]=a[j-1][j-1]*a[i-j][i-j];
for(j=1;j<=i;j++)a[i][j]+=a[i][j-1];
}
}
void solve()
{
for(i=1,p=n;i<=n;i++,p--)
{
q=0;
while(a[p][q+1]<k)q++;
sol[i]=q+1;k-=a[p][q];
}
for(i=n-1;i>=1;i--)
for(j=i+1;j<=n;j++)
if(sol[j]>=sol[i])
sol[j]++;
}
void prints()
{
for(i=1;i<=n;i++)printf("%llu ",sol[i]);
}