Pagini recente » Cod sursa (job #2904231) | Cod sursa (job #427024) | Cod sursa (job #394639) | Cod sursa (job #1092604) | Cod sursa (job #1536732)
#include<fstream>
using namespace std;
int n, i, x;
long long k, d[40];
ifstream fin("planeta.in");
ofstream fout("planeta.out");
void f(long long k, int st, int dr){
if(st <= dr){
if(st == dr){
fout<< st <<" ";
}
else{
for(int x = st; x <= dr; x++){
if(k > d[x - st] * d[dr - x]){
k -= d[x - st] * d[dr - x];
}
else{
fout<< x <<" ";
f(k / d[dr - x] + 1, st, x - 1);
f(k % d[dr - x], x + 1, dr);
break;
}
}
}
}
}
int main(){
fin>> n >> k;
d[0] = d[1] = 1;
for(i = 2; i <= n; i++){
for(x = 1; x <= i; x++){
d[i] = d[i] + d[x - 1] * d[i - x];
}
}
f(k, 1, n);
return 0;
}