1550. 完全二叉搜索树
作者:
logos--
,
2023-03-03 12:54:14
,
所有人可见
,
阅读 173
#include <bits/stdc++.h>
using namespace std;
#define int long long
constexpr int N = 1e3 + 7;
constexpr int inf = 1E18, mod = 1e9 + 7;
int tr[N], w[N], n, cnt = 1;
inline void dfs(int u) {
if(u * 2 <= n) dfs(2 * u);
tr[u] = w[cnt ++];
if(u * 2 + 1 <= n) dfs(2 * u + 1);
}
inline void Solve() {
cin >> n;
for (int i = 1; i <= n; i ++) {
cin >> w[i];
}
sort(w + 1, w + 1 + n);
dfs(1);
for (int i = 1; i <= n; i ++) {
if(i == n) cout << tr[i];
else cout << tr[i] << " ";
}
}
signed main() {
cin.tie(nullptr) -> sync_with_stdio(false);
int T = 1;
for (; T; T --) Solve();
return 0;
}