A93901.Alice的神秘二叉树
普及-
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
给定一棵结点键值 两两不同 的二叉树的:
- 中序遍历 序列
in[1..n]; - 层序(BFS)遍历 序列
level[1..n](与中序包含相同的键,顺序为从根到叶、自左到右)。
请你 唯一重构 这棵二叉树,并输出其 先序遍历 序列。
输入格式
- 第一行一个整数 n(结点个数)。
- 第二行 n 个两两不同的整数,表示中序序列
in[1..n]。 - 第三行 n 个整数,表示层序序列
level[1..n](与中序包含相同的键,并构成同一棵二叉树)。
输出格式
输出一行 n 个整数,为重构后的二叉树的 先序遍历 序列。
输入输出样例
输入#1
6 4 2 5 1 6 3 1 2 3 4 5 6
输出#1
1 2 4 5 3 6
输入#2
6 4 2 5 1 3 6 1 2 3 4 5 6
输出#2
1 2 4 5 3 6
输入#3
6 4 2 1 5 3 6 1 2 3 4 5 6
输出#3
1 2 4 3 5 6
说明/提示
数据范围
- 1≤n≤2×105;
- 键值范围:64 位有符号整数(建议使用
long long); - 保证 两个序列包含相同的 n 个互不相同的键,并对应某棵合法二叉树。
| 测试点 | n 范围 |
|---|---|
| 1 ~ 6 | 2≤n<500 |
| 7 ~ 20 | 500≤n≤2×105 |
样例解释
中序为 [4,2,5,1,6,3],层序根是 1;在中序上 1 左侧 [4,2,5] 中,层序最早出现的是 2,右侧 [6,3] 中最早出现的是 3。递归划分得到先序 1 2 4 5 3 6。