C1515 [Ynoi]2012-F

内存限制:256 MB 时间限制:1000 ms

题目描述

$n$ 个结点的有根树,每个结点有一种颜色

定义一个点所在的块为仅保留两端结点颜色相同的边时,这个点所在的连通分量

定义一个块的深度是 $\max(dep[a]-dep[b]+1)$,s.t.:$a,b$ 是块中的结点, $dep[根]=0,dep[w]=dep[w 的父亲]+1$

操作 $1$:给出 $x$ 和 $y$,把结点 $x$ 的颜色改成 $y$

操作 $2$:给出 $x$ 和 $y$,把结点 $x$ 所在的块中所有点颜色改为 $y$

操作 $3$:给出 $x$,问结点 $x$ 的颜色,$x$ 所在块的点数,$x$ 所在块的深度

输入格式

第一行一个数 $n$ 。

第二行 $n$ 个数表示每个节点的父亲,其中第 $i$ 个数$<i$,且 $1$ 节点的父亲输入为 $0$ 。

第三行 $n$ 个数表示每个节点的颜色。

第四行一个数 $m$。

之后 $m$ 行,每行一个操作:1 x y2 x y3 x依次代表前面提及的一种操作。

输出

对于每个 $3$ 操作,输出一行三个数,中间用空格隔开,依次表示:结点 $x$ 的颜色, $x$ 所在块的点数,$x$ 所在块的深度。

样例

样例输入 1

10 0 1 1 1 3 4 2 4 2 3 16 20 29 16 23 6 29 21 1 22 10 3 4 3 4 2 6 20 2 1 8 2 2 8 1 9 21 3 6 3 2 1 3 11 1 4 17

样例输出 1

16 2 2 16 2 2 20 1 1 8 3 2

提示

$n , m \le 100000$,颜色至多 $30$ 种,在 $[1,30]$ 内。