Pagini recente » Cod sursa (job #1703720) | Cod sursa (job #2885970) | Cod sursa (job #1984454) | Cod sursa (job #378333) | Cod sursa (job #3135947)
#include <iostream>
#include<fstream>
using namespace std;
ifstream r("planeta.in");
ofstream w("planeta.out");
int n;
long long sol[32],x;
void rez(int n, int s, long long x) {
if (n == 0)
return;
int nod = 1;
for (; sol[nod - 1] * sol[n - nod] <= x; nod++)
x = x - sol[nod - 1] * sol[n - nod];
w << s + nod - 1 << " ";
rez(nod - 1, s, x / sol[n - nod]);
rez(n - nod, s + nod, x % sol[n - nod]);
}
int main()
{
r>>n>>x;
sol[0] = 1;
for (int i = 1; i <= n; i++)
{
sol[i] = 0;
for (int j = 1; j <= i; j++)
sol[i] += sol[j - 1] * sol[i - j];
}
rez(n,1,x-1);
return 0;
}