Skip to content

问题

输入有三行,其中:

  • 第一行输入一个数 \(n\) ;
  • 第二行输入 \(n\) 个数 \(\mathrm{Post}_{1}, \mathrm{Post}_{2}, \dots, \mathrm{Post}_{n}\) ,它们是某棵二叉树的后序遍历结果;
  • 第三行输入 \(n\) 个数 \(\mathrm{In}_{1}, \mathrm{In}_{2}, \dots, \mathrm{In}_{n}\) ,它们是同一棵二叉树的中序遍历结果。

请输出两行,其中:

  • 第一行输出 \(n\) 个数,用空格隔开,它是这棵二叉树的前序遍历;
  • 第二行输出 \(n\) 个数,用空格隔开,它是这棵二叉树的层次序遍历。

二叉树各结点的值互不相等。

示例

示例中的二叉树外观:

                               2

               4                               5

       3               1               7               _

   8       _       0       6       _       _       _       _

 _   _   _   _   _   _   9   _   _   _   _   _   _   _   _   _

注:下划线 _ 表示空位。

输入:

10
8 3 0 9 6 1 4 7 5 2
8 3 4 0 1 9 6 2 7 5

输出:

2 4 3 8 1 0 6 9 5 7
2 4 5 3 1 7 8 0 6 9

数据范围

  • \(1 \le n \le 1000\)
  • \(-1000 \le \mathrm{Post}_{i} \le 1000\) ,对于 \(1 \le i \le n\) 。
  • \(-1000 \le \mathrm{In}_{i} \le 1000\) ,对于 \(1 \le i \le n\) 。