Pagini recente » Cod sursa (job #2097713) | Cod sursa (job #39215) | Cod sursa (job #366234) | Cod sursa (job #2516492) | Cod sursa (job #2750873)
#include <bits/stdc++.h>
using namespace std;
ifstream in("planeta.in");
ofstream out("planeta.out");
int n;
long long C[50], k, x, t;
void rezolva(int st, int dr, long long val)
{
if (st > dr)
return ;
if (st == dr)
{
out << st << " ";
return ;
}
int i;
for (i = st;i <= dr; i++)
if (x + C[i - st] * C[dr - i] * val < k)
x += C[i - st] * C[dr - i] * val;
else
break;
out << i << " ";
rezolva(st, i - 1, val * C[dr - i]);
rezolva(i + 1, dr, val);
}
int main()
{
in >> n >> k;
C[0] = 1;
for (int i = 1; i <= n; i++)
{
t=0;
for (int j = 0; j < i; j++)
t += C[j] * C[i - 1 - j];
C[i] = t;
}
rezolva(1, n, 1);
in.close();
out.close();
return 0;
}