Pagini recente » Cod sursa (job #2751231) | Cod sursa (job #2013373) | Cod sursa (job #835040) | Cod sursa (job #2756046) | Cod sursa (job #1755376)
#include <cstdio>
using namespace std;
int n, i, j;
long long d[33], k;
void solve(int st, int dr, long long k)
{
if(st>dr) return;
int i;
long long all=0;
for(i=st; i<=dr; ++i)
{
all += d[i-st]*d[dr-i];
if(all>k)
{
k -= all - d[i-st]*d[dr-i];
printf("%d ", i);
solve(st, i-1, k/d[dr-i]);
solve(i+1, dr, k%d[dr-i]);
break;
}
}
}
int main()
{
freopen("planeta.in", "r", stdin);
freopen("planeta.out", "w", stdout);
scanf("%d%lld", &n, &k);
d[0] = 1;
for(i=1; i<=n; ++i)
for(j=1; j<=i; ++j)
d[i] += d[j-1]*d[i-j];
solve(1,n,(long long)(k-1));
return 0;
}