#P2514. 完全二叉树叶结点删除

完全二叉树叶结点删除

题目描述

给你一棵包含 nn 个节点的完全二叉树,节点编号从 11nn。根节点编号为 11

但是这棵树并不一定满足 “节点 ii 的左儿子编号是 2i2i,右儿子编号是 2i+12i+1”的规则。

接下来有 qq 次操作,每次操作给你一个整数 uiu_i,你需要:

  • 删除以节点 uiu_i 为根的子树中的所有叶子节点 中编号最小的那个叶子节点。

数据保证每次操作时,节点 uiu_i 都存在。

你需要在 qq 次操作后,输出这棵二叉树的中序遍历序列。

输入格式

第一行,一个整数 nn

接下来 nn 行,每行包含两个整数 lil_irir_i,分别表示节点 ii 的左儿子编号和右儿子编号(如果节点 ii 没有左儿子,则 li=0l_i = 0;如果节点 ii 没有右儿子,则 ri=0r_i = 0)。

接下来一行,一个整数 qq,表示操作次数。

接下来 qq 行,每行包含一个整数 uiu_i

输出格式

输出共一行,包含 nqn-q 个整数,以空格分隔,表示 qq 次操作结束后二叉树的中序遍历序列。

样例

6
5 3
0 0
6 0
0 0
2 4
0 0
3
1
5
1
1 6 3

说明/提示

数据规模与约定

  • 对于 20%20\% 的数据,n200n \le 200
  • 对于 40%40\% 的数据,n2000n \le 2000
  • 对于 100%100\% 的数据,0q<n21050 \le q \lt n \le 2 \cdot 10^5