Pagini recente » Cod sursa (job #3259339) | Cod sursa (job #2593911) | Cod sursa (job #2318046) | Cod sursa (job #3158318) | Cod sursa (job #3135957)
#include <fstream>
using namespace std;
ifstream fin("planeta.in");
ofstream fout("planeta.out");
long long a[31], N, K;
void apelareRec(long long st , long long dr , long long nr ){
long long i, rez;
for( i = st ; i <= dr; i++ )
{
if( nr > a[dr - i] * a[i - st] ) nr = nr - a[dr - i] * a[i - st];
else {
fout << i << ' ';
apelareRec(st, i - 1, (nr - 1) / a[dr - i] + 1);
rez = nr % a[dr - i];
if(!rez)
{
rez = a[dr - i];
}
apelareRec(i + 1, dr, rez);
i = dr + 1;
}
}
}
int main() {
long long i, j;
fin >> N >> K;
a[0] = 1;
a[1] = 1;
for(i = 2 ; i <= N ; i++) {
for (j = 0; j < i; j++) {
a[i] = a[i] + a[i - j - 1] * a[j];
}
}
apelareRec(1, N, K);
return 0;
}