Pagini recente » Cod sursa (job #341381) | Cod sursa (job #2397004) | Cod sursa (job #1584781) | Cod sursa (job #2727154) | Cod sursa (job #3135627)
#include <fstream>
#include <vector>
std::ifstream fin("planeta.in");
std::ofstream fout("planeta.out");
void solve(int n, long long k)
{
std::vector<long long> v(n + 1, 0);
v[0] = 1;
for (int i = 1; i <= n; ++i)
{
for (int j = 1; j <= i; ++j)
{
v[i] += v[i - j] * v[j - 1];
}
}
k--;
int nod = 1;
while (v[nod - 1] * v[n - nod] <= k)
{
k = k - v[nod - 1] * v[n - nod];
nod++;
}
fout << nod << " ";
if (nod > 1)
solve(nod - 1, k / v[n - nod]);
if (nod < n)
solve(n - nod, k % v[n - nod]);
}
int main()
{
int n;
long long k;
fin >> n >> k;
solve(n, k);
return 0;
}