Pagini recente » Cod sursa (job #1449088) | Cod sursa (job #1595307) | Cod sursa (job #1214308) | Cod sursa (job #2064007) | Cod sursa (job #2899303)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("planeta.in");
ofstream g("planeta.out");
void rezolvare(int a, long long b, long long K, long long V[])
{
int i;
for(i = a; V[i - a] * V[b - i] <= K && i <= b; ++i)
K = K - V[i - a] * V[b - i];
g<<i<<" ";
if(a < i)
rezolvare(a, i - 1, K / V[b - i], V);
if(i < b)
rezolvare(i + 1, b, K % V[b - i], V);
}
int main()
{
long long N, K, V[101];
f>>N>>K;
V[0] = 1;
for(int i = 1; i <= N; ++i)
for(int j = 1; j <= i; ++j)
V[i] = V[i] + V[i - j] * V[j - 1];
--K;
rezolvare(1, N, K, V);
f.close();
g.close();
return 0;
}