Pagini recente » Cod sursa (job #1853973) | Cod sursa (job #2967743) | Cod sursa (job #155487) | Cod sursa (job #1659549) | Cod sursa (job #2899589)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("planeta.in");
ofstream g("planeta.out");
long long tree[50], n, k;
void fct(int l, long long k, int r)
{
long long x;
for (int i = l; i <= r ; i++)
{
if (k > tree[i - l] * tree[r - i])
k -= tree[i - l] * tree[r - i];
else
{
g<<i<<" ";
fct(l, 1 + (k - 1) / tree[r - i], i - 1);
x = k % tree[r - i];
if (x == 0)
x = tree[r - i];
fct(i + 1,x, r);
break;
}
}
}
int main()
{
int i,j;
f >> n >> k;
tree[0] = 1;
tree[1] = 1;
for ( i = 2; i <= n; i++)
for ( j = 0; j < i; j++)
tree[i] += tree[i - j - 1] * tree[j] ;
fct(1,k, n);
return 0;
}