Pagini recente » Cod sursa (job #1432996) | Cod sursa (job #562907) | Cod sursa (job #2876214) | Cod sursa (job #1360497) | Cod sursa (job #2940598)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream fin("planeta.in");
ofstream fout("planeta.out");
ll dp[35][35];
ll sum[35];
int n, k;
void print(int start, int sz, ll k) {
if (sz == 0)
return;
if (sz == 1) {
fout << start + 1 << " ";
}
else {
for (int i = 1; i <= sz; i++) {
if (sum[i - 1] * sum[sz - i] >= k) {
fout << start + i << " ";
print(start, i - 1, (k - 1) / sum[sz - i] + 1);
print(start, sz - i, (k - 1) % sum[sz - i] + 1);
return;
}
k -= sum[i - 1] * sum[sz - i];
}
}
}
signed main() {
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
fin >> n >> k;
dp[0][0] = 1;
sum[0] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
dp[i][j] = sum[j - 1] * sum[i - j];
sum[i] += dp[i][j];
}
}
print(0, n, k);
return 0;
}