#CF343D. Water Tree

Water Tree

markdown D. 水树
每个测试点的时间限制:44
每个测试点的内存限制:256256 MB
输入:标准输入
输出:标准输出

疯狂科学家 Mike 构造了一棵有根树,树中包含 nn 个顶点。每个顶点是一个蓄水池,可以是空的,也可以装满水。
树的顶点编号为 11nn,根节点为顶点 11。对于每个顶点,其子节点的蓄水池位于该顶点蓄水池的下方,并且该顶点通过管道与每个子节点相连,水可以沿着管道向下流动。

Mike 想要对这棵树执行以下操作:

  • 将顶点 vv 注满水。此时 vv 及其所有子节点都会被注满水。
  • 将顶点 vv 清空。此时 vv 及其所有祖先节点都会被清空。
  • 查询顶点 vv 当前是否注满水。

初始时,树中所有顶点都是空的。Mike 已经按顺序列出了所有要执行的操作。在对树进行实际操作之前,Mike 决定先通过模拟运行这个操作列表。请帮助 Mike 确定执行完所有操作后得到的结果。

输入
第一行包含一个整数 nn1n5000001 \le n \le 500000)——树中顶点的数量。
接下来的 n1n-1 行,每行包含两个空格分隔的整数 ai,bia_i, b_i1ai,bin1 \le a_i, b_i \le naibia_i \ne b_i)——表示树的一条边。
下一行包含一个整数 qq1q5000001 \le q \le 500000)——要执行的操作数量。
接下来的 qq 行,每行包含两个空格分隔的整数 cic_i1ci31 \le c_i \le 3)和 viv_i1vin1 \le v_i \le n),其中 cic_i 是操作类型(按照题目描述中的编号),viv_i 是执行操作的顶点。
保证给定的图是一棵树。

输出
对于每个类型 33 的操作,如果顶点是满的,则单独输出一行 11;如果顶点是空的,则输出一行 00。按照输入中查询的顺序输出答案。

输入示例

5
1 2
5 1
2 3
4 2
12
1 1
2 3
3 1
3 2
3 3
3 4
1 2
2 4
3 1
3 3
3 4
3 5

输出示例

0
0
0
1
0
1
0
1