Pagini recente » Cod sursa (job #1288146) | Cod sursa (job #108927) | Cod sursa (job #142648) | Cod sursa (job #2692384) | Cod sursa (job #256587)
Cod sursa(job #256587)
#include <stdio.h>
#define MAXN 32
#define long long long
long v[MAXN];
long n, k, i, j;
void parc(long st, long dr, long k) {
long s = 0, x, y, i;
if (st > dr) return;
if (st == dr) {
printf("%lld ", st);
return;
}
for (i = st; i <= dr; ++i) {
x = v[i - st];
y = v[dr - i];
s += x * y;
if (s > k) {
break;
}
}
k = k - (s - x * y);
printf("%lld ", i);
parc(st, i - 1, k / y);
parc(i + 1, dr, k % y);
}
int main() {
freopen("planeta.in", "r", stdin);
freopen("planeta.out", "w", stdout);
scanf("%lld %lld ", &n, &k);
v[0] = 1;v[1] = 1;
for (i = 2; i <= n; ++i) {
for (j = 1; j <= i; ++j) {
v[i] = v[i] + v[j - 1] * v[i - j];
}
}
parc(1, n, k - 1);
return 0;
}