Pagini recente » Cod sursa (job #1806024) | Cod sursa (job #1220256) | Cod sursa (job #3003881) | Cod sursa (job #2295907) | Cod sursa (job #3135975)
#include <fstream>
std::ifstream fin("planeta.in");
std::ofstream fout("planeta.out");
long long arb[31], n, k;
void func(long long s, long long d, long long c)
{
long long aux;
for (long long i = s; i <= d; i++)
{
if (c > (arb[d - i] * arb[i - s]))
{
c = c - arb[d - i] * arb[i - s];
}
else {
fout << i << " ";
func(s, i - 1, ((c - 1) / arb[d - i] + 1));
aux = c % arb[d - i];
if (!aux)
{
aux = arb[d - i];
}
func(i + 1, d, aux);
i = d + 1;
}
}
}
int main()
{
fin >> n >> k;
arb[0] = 1;
arb[1] = 1;
for (long long i = 2; i <= n; i++)
{
for (long long j = 0; j < i; j++)
{
arb[i] = arb[i] + arb[i - j - 1] * arb[j];
}
}
func(1, n, k);
return 0;
}