Pagini recente » Cod sursa (job #784677) | Cod sursa (job #1130356) | Cod sursa (job #1356271) | Cod sursa (job #2376503) | Cod sursa (job #2899314)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("planeta.in");
ofstream g("planeta.out");
int N, i, j;
long long K, V[101];
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()
{
f>>N>>K;
V[0] = 1;
for(i = 1; i <= N; ++i)
for(j = 1; j <= i; ++j)
V[i] = V[i] + V[i - j] * V[j - 1];
--K;
rezolvare(1, N, K, V);
return 0;
}