题目描述
题目译自 BalticOI 2016 Day2 T3「Swap」
给定一个包含 n 个数的序列 x1,x2,…,xn。1,2,…,n 每个数在序列中刚好出现一次。
你可以通过交换修改这个序列。你需要进行连续的 n−1 轮操作,编号 k=2,3,…,n,第 k 轮你可以选择交换 xk 和 x⌊k/2⌋ 或是什么都不做。
如果存在一个数 j(1≤j≤n),使得对于所有 k<j 且 aj<bj, ak=bk 成立,那么序列 a1…an 「字典序小于」序列 b1…bn。
你能得到的字典序最小的序列是什么?
输入格式
第一行,一个整数 n。
第二行,n 个整数,表示序列 x1,x2,…,xn。
输出格式
输出 n 个整数,表示你能得到的字典序最小的序列。
5
3 4 2 5 1
2 1 3 4 5
数据范围与提示
子任务 |
分数 |
数据范围 |
1 |
10 |
1≤n≤20 |
2 |
11 |
1≤n≤40 |
3 |
27 |
1≤n≤1000 |
4 |
20 |
1≤n≤5⋅104 |
5 |
32 |
1≤n≤2⋅105 |