编程题
### 题目大意
给出一棵以 $1$ 为根结点含有的 $𝑛$ 个结点的有根树。
每个结点都是蓄水池,可以是空的,也可以是满的,我们用权值来表示,$1$ 表示这个结点装满了水,$0$ 表示这个结点没有任何水,所有结点一开始都是空的。
一共进行 $𝑚$ 次操作。每次操作有 $3$ 种:
+ 操作 $1$,将点 $𝑢$ 和其子树上的所有结点灌满水。
+ 操作 $2$,倒空点 $𝑢$ 到 $1$ 的路径上的所有结点的水。
+ 操作 $3$,询问点 $𝑢$ 的蓄水状况。
### 输入格式
第一行输入包含一个整数 $n$,表示树的结点的数量。
接下来 $n - 1$ 行包含两个用空格分开的数字 $a_i,b_i$,表示树的边。
下一行包含一个整数 $q$ ,表示操作的数量。
接下来 $q$ 行包括两个用空格分隔的整数 $c_i,v_i$,$c_i$ 表示操作的类型,$v_i$ 表示操作的结点编号。
### 输出格式
对于每个操作 $3$,如果结点已蓄满水,则在单独的行上打印 $1$ ,如果结点为空,则打印 $0$。按输入中给出查询的顺序打印查询的答案。
### 样例输入
```txt
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
```
### 样例输出
```txt
0
0
0
1
0
1
0
1
```
### 评测数据规模
对于 $100$% 的评测数据,$1\leq n ,q\leq 500000,1 \leq a_i,b_i,v_i\leq n,a_i \neq b_i,1\leq c_i \leq3$。