#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
void inorder(int t, int maxt, vector<int> &tl)
{
if(t <= maxt) {
inorder(t<<1, maxt, tl);
tl.push_back(t);
inorder((t<<1)+1, maxt, tl);
}
}
#define N 1001
int main(int argc, char **argv) {
int n;
cin >> n;
int in[N] = {};
for(int i = 0; i < n; i ++)
scanf("%d", in+i);
sort(in, in+n);
vector<int> tl;
tl.reserve(n);
inorder(1, n, tl);
int tree[N] = {};
for(int i = 0; i < tl.size(); i ++) {
tree[tl[i]] = in[i];
}
printf("%d", tree[1]);
for(int i = 2; i <= n; i ++) {
printf(" %d", tree[i]);
}
putchar('\n');
return 0;
}
1064. Complete Binary Search Tree (30)
最新推荐文章于 2020-05-22 21:29:06 发布