中序序列
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}对于给定的由 n 个节点构成的二叉树的先序遍历与后序遍历序列,求其中序遍历序列。
\hspace{15pt}若某节点只有一个子结点,则将其看作左儿子结点。

输入描述:

\hspace{15pt}第一行输入一个整数 n\ (1 \leqq n \leqq 10^5) 表示二叉树的节点数量。
\hspace{15pt}第二行输入 n 个互不相同的整数 a_1, a_2, \cdots, a_n\ (1 \leqq a_i \leqq n) 代表二叉树的先序遍历序列。
\hspace{15pt}第三行输入 n 个互不相同的整数 b_1, b_2, \cdots, b_n\ (1 \leqq b_i \leqq n) 代表二叉树的后序遍历序列。

\hspace{15pt}保证树存在且唯一。

输出描述:

\hspace{15pt}在一行上输出 n 个整数,代表二叉树的中序遍历序列。
示例1

输入

复制
6
5 2 1 4 3 6
1 2 3 6 4 5

输出

复制
1 2 5 3 4 6

说明

\hspace{15pt}在这个样例中,所构建的二叉树如下图所示: