atcoder#ARC083C. [ARC083E] Bichrome Tree

[ARC083E] Bichrome Tree

Score : 700700 points

Problem Statement

We have a tree with NN vertices. Vertex 11 is the root of the tree, and the parent of Vertex ii (2iN2 \leq i \leq N) is Vertex PiP_i.

To each vertex in the tree, Snuke will allocate a color, either black or white, and a non-negative integer weight.

Snuke has a favorite integer sequence, X1,X2,...,XNX_1, X_2, ..., X_N, so he wants to allocate colors and weights so that the following condition is satisfied for all vv.

  • The total weight of the vertices with the same color as vv among the vertices contained in the subtree whose root is vv, is XvX_v.

Here, the subtree whose root is vv is the tree consisting of Vertex vv and all of its descendants.

Determine whether it is possible to allocate colors and weights in this way.

Constraints

  • 1N11 \leq N \leq 1 000000
  • 1Pii11 \leq P_i \leq i - 1
  • 0Xi50 \leq X_i \leq 5 000000

Inputs

Input is given from Standard Input in the following format:

NN

P2P_2 P3P_3 ...... PNP_N

X1X_1 X2X_2 ...... XNX_N

Outputs

If it is possible to allocate colors and weights to the vertices so that the condition is satisfied, print POSSIBLE; otherwise, print IMPOSSIBLE.

3
1 1
4 3 2
POSSIBLE

For example, the following allocation satisfies the condition:

  • Set the color of Vertex 11 to white and its weight to 22.
  • Set the color of Vertex 22 to black and its weight to 33.
  • Set the color of Vertex 33 to white and its weight to 22.

There are also other possible allocations.

3
1 2
1 2 3
IMPOSSIBLE

If the same color is allocated to Vertex 22 and Vertex 33, Vertex 22 cannot be allocated a non-negative weight.

If different colors are allocated to Vertex 22 and 33, no matter which color is allocated to Vertex 11, it cannot be allocated a non-negative weight.

Thus, there exists no allocation of colors and weights that satisfies the condition.

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

0
POSSIBLE