Pagini recente » Cod sursa (job #2797335) | Cod sursa (job #761882) | Cod sursa (job #5582) | Cod sursa (job #980099) | Cod sursa (job #2896371)
#include <fstream>
#define NMAX 31
using namespace std;
ifstream fin("planeta.in");
ofstream fout("planeta.out");
int N, K, x[NMAX];
void tree(int st, int dr, int k)
{
int s = 0, p, u, k1, k2, i;
if(st >dr)
return;
else
if(st == dr)
{
fout<<st<<" ";
return;
}
for(i = st; i <= dr; ++i)
{
p = x[i - st];
u = x[dr - i];
s += p * u;
if(s > k)
break;
}
k -= (s + p * u);
fout<<i<<" ";
k1 = k / u;
k2 = k % u;
tree(st, i - 1, k1);
tree(i + 1, dr, k2);
}
int main()
{
fin>>N>>K;
x[0] = x[1] = 1;
for(int i = 2; i <= N; ++i)
for(int j = 1; j <= i; ++j)
x[i] += x[j - 1] * x[i - j];
tree(1, N, K - 1);
return 0;
}