Pagini recente » Cod sursa (job #2611532) | Cod sursa (job #1040054) | Cod sursa (job #1741617) | Cod sursa (job #294506) | Cod sursa (job #2751337)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("planeta.in");
ofstream fout("planeta.out");
int Arbore[35], n, k;
void f(int st,int k, int dr)
{int x;
for (int i = st; i <= dr ; i++)
{
if (k > Arbore[i - st] * Arbore[dr - i])
k -= Arbore[i - st] * Arbore[dr - i];
else
{
fout<<i<<" ";
f(st, 1 + (k - 1) / Arbore[dr - i], i - 1);
x = k % Arbore[dr - i];
if (x == 0)
x = Arbore[dr - i];
f(i + 1,x, dr);
break;
}
}
}
int main()
{
fin >> n >> k;
Arbore[0] = 1;
Arbore[1] = 1;
for (int i = 2; i <= n; i++)
for (int j = 0; j < i; j++)
Arbore[i] += Arbore[i - j - 1] *Arbore[j] ;
f(1,k, n);
return 0;
}