#arc083c. [arc083_c]Bichrome Tree
[arc083_c]Bichrome Tree
题目描述
我们有一棵 个顶点的树,顶点 是树的根顶点,顶点 () 的父顶点是顶点 。
对于树中的每个顶点,Snuke 将分配一个颜色,要么黑色要么白色,以及一个非负整数权重。
Snuke 有一个喜欢的整数序列 ,所以他希望分配颜色和权重,以便对于所有的 ,满足以下条件。
- 在以 为根顶点的子树中包含的顶点中,与 颜色相同的顶点的总权重为 。
这里,_以 为根顶点的子树_是由顶点 及其所有后代组成的树。
确定是否可以以这种方式分配颜色和权重。
约束条件
输入格式
输入通过标准输入给出,格式如下:
输出格式
如果可以将颜色和权重分配给顶点,使得满足条件,则输出 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