#arc083c. [arc083_c]Bichrome Tree

[arc083_c]Bichrome Tree

题目描述

我们有一棵 NN 个顶点的树,顶点 11 是树的根顶点,顶点 ii (2iN2 \leq i \leq N) 的父顶点是顶点 PiP_i

对于树中的每个顶点,Snuke 将分配一个颜色,要么黑色要么白色,以及一个非负整数权重。

Snuke 有一个喜欢的整数序列 X1,X2,...,XNX_1, X_2, ..., X_N,所以他希望分配颜色和权重,以便对于所有的 vv,满足以下条件。

  • 在以 vv 为根顶点的子树中包含的顶点中,与 vv 颜色相同的顶点的总权重为 XvX_v

这里,_以 vv 为根顶点的子树_是由顶点 vv 及其所有后代组成的树。

确定是否可以以这种方式分配颜色和权重。

约束条件

  • 1N1,0001 \leq N \leq 1,000
  • 1Pii11 \leq P_i \leq i - 1
  • 0Xi5,0000 \leq X_i \leq 5,000

输入格式

输入通过标准输入给出,格式如下:

NN
P2P_2 P3P_3 ...... PNP_N
X1X_1 X2X_2 ...... XNX_N

输出格式

如果可以将颜色和权重分配给顶点,使得满足条件,则输出 POSSIBLE;否则,输出 IMPOSSIBLE


示例输入1

3
1 1
4 3 2

示例输出1

POSSIBLE

例如,以下分配满足条件:

  • 将顶点 1 的颜色设置为白色,并将权重设置为 2。
  • 将顶点 2 的颜色设置为黑色,并将权重设置为 3。
  • 将顶点 3 的颜色设置为白色,并将权重设置为 2。

还有其他可能的分配方式。


示例输入2

3
1 2
1 2 3

示例输出2

IMPOSSIBLE

如果将颜色分配给顶点 2 和顶点 3,并且它们具有相同的颜色,那么无法为顶点 2 分配非负权重。

如果将不同的颜色分配给顶点 2 和顶点 3,无论将颜色分配给顶点 1 的是哪种颜色,都无法为其分配非负权重。

因此,不存在满足条件的颜色和权重的分配方式。


示例输入3

8
1 1 1 3 4 5 5
4 1 6 2 2 1 3 3

示例输出3

POSSIBLE

示例输入4

1
0

示例输出4

POSSIBLE