Pagini recente » Cod sursa (job #471763) | Cod sursa (job #933207) | Cod sursa (job #1266029) | Cod sursa (job #2220369) | Cod sursa (job #2899251)
#include <fstream>
#define NMAX 31
using namespace std;
ifstream fin("planeta.in");
ofstream fout("planeta.out");
int N;
long long K, x[NMAX];
void tree(int st, int dr, long long k)
{
int i;
long long dif;
for(i = st; i <= dr; ++i)
if( k > x[i - st] * x[dr - i])
k -= x[i - st] * x[dr - i];
else
{
fout<<i<<" ";
tree(st, i - 1, 1 + (k - 1) / x[dr - i]);
dif = k % x[dr - i];
if(dif == 0)
dif = x[dr - i];
tree(i + 1, dr, dif);
break;
}
}
int main()
{
fin>>N>>K;
x[0] = x[1] = 1;
for(int i = 2; i <= N; ++i)
for(int j = 0; j < i; ++j)
x[i] += x[i - j - 1] * x[j];
tree(1, N, K);
return 0;
}