Pagini recente » Cod sursa (job #2373862) | Cod sursa (job #545060) | Cod sursa (job #1441093) | Cod sursa (job #2906316) | Cod sursa (job #3135973)
#include <fstream>
std::ifstream fin("planeta.in");
std::ofstream fout("planeta.out");
long long arb[31];
void func(long long s, long long d, long long k) {
long long aux;
for (long long i = s; i <= d; i++)
{
if (k > (arb[d - i] * arb[i - s]))
{
k = k - arb[d - i] * arb[i - s];
}
else {
fout << i << ' ';
func(s, i - 1, ((k - 1) / arb[d - i] + 1));
aux = k % arb[d - i];
if (aux != 0)
{
aux = arb[d - i];
}
func(i + 1, d, aux);
i = d + 1;
}
}
}
int main() {
long long n, k;
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;
}