Pagini recente » Cod sursa (job #569424) | Cod sursa (job #2208127) | Cod sursa (job #2511387) | Cod sursa (job #2570171) | Cod sursa (job #2751872)
#include<fstream>
#define ll long long
using namespace std;
ifstream f("planeta.in");
ofstream g("planeta.out");
int n;
ll k, c[31];
void calc(int p, int u, ll nr) {
int i;
for (i = p; i <= u && c[i - p] * c[u - i] <= nr; ++i) nr -= c[i - p] * c[u - i];
g << i << ' ';
if (p < i) calc(p, i - 1, nr / c[u - i]);
if (i < u) calc(i + 1, u, nr % c[u - i]);
}
int main() {
f >> n >> k;
c[0] = 1;
for (int i = 1; i <= n; ++i)
for (int j = 0; j < i; ++j)
c[i] += c[j] * c[i - j - 1];
calc(1, n, k - 1);
g.close();
return 0;
}