Pagini recente » Cod sursa (job #1149600) | Cod sursa (job #2867927) | Cod sursa (job #2286133) | Cod sursa (job #989646) | Cod sursa (job #1234253)
#include <fstream>
#define DIM 40
#define infile "planeta.in"
#define outfile "planeta.out"
using namespace std;
ifstream f(infile);
ofstream g(outfile);
int D[DIM];
int n, k;
void solve(int nr, int left, int right) {
if (left > right)
return;
if (left == right) {
g << left << " ";
return;
}
int i, x = 0;
for (i = left; i <= right; ++i) {
x += D[i - left] * D[right - i];
if (x >= nr) {
x -= D[i - left] * D[right - i];
break;
}
}
g << i << " ";
solve((nr - x - 1) / D[right - i] + 1, left, i - 1);
solve((nr - x - 1) % D[right - i] + 1, i + 1, right);
}
int main() {
f >> n >> k;
D[0] = 1;
for (int i = 1; i <= n; ++i)
for (int j = 0; j < i; ++j)
D[i] += D[j] * D[i - j - 1];
solve(k, 1, n);
return 0;
}
//This room. This bullet. There's a bullet for everyone. And a time. And a place. Yes... maybe this is how it has to be. - 47