C - Cleaning Editorial /

Time Limit: 2 sec / Memory Limit: 256 MB

配点 : 700

問題文

N 頂点からなる木があり、頂点には 1 から N の番号がついています。 また、N-1 本の辺の内、i 番目の辺は頂点 a_i と頂点 b_i を結んでいます。

今、各頂点 i には A_i 個の石が置いてあります。 以下の操作を繰り返して、全ての石を取り除くことができるか判定してください。

  • 相異なる 2 つの葉を一組選ぶ。そして、その 2 頂点間のパス上にある頂点全てからちょうど 1 つ石を取り除く。
    ただし、葉とは木の頂点で次数が 1 の頂点を指し、選んだ葉自体もパス上の頂点として考える。

石が置かれていない頂点がパス上にあるときは、その操作を行えないことに注意してください。

制約

  • 2 ≦ N ≦ 10^5
  • 1 ≦ a_i,b_i ≦ N
  • 0 ≦ A_i ≦ 10^9
  • 与えられるグラフは木である。

入力

入力は以下の形式で標準入力から与えられる。

N
A_1 A_2A_N
a_1 b_1
:
a_{N-1} b_{N-1}

出力

全ての石を取り除くことができるなら YES を、そうでないなら NO を出力せよ。


入力例 1

5
1 2 1 1 2
2 4
5 2
3 2
1 3

出力例 1

YES

以下のようにすれば、すべての石を取り除くことができます。

  • 葉として 45 を選ぶ。このとき、4 以外の頂点に石が 1 個残る。
  • 葉として 15 を選ぶ。このとき、全ての頂点から石がなくなる。

入力例 2

3
1 2 1
1 2
2 3

出力例 2

NO

入力例 3

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

出力例 3

YES

Score : 700 points

Problem Statement

There is a tree with N vertices, numbered 1 through N. The i-th of the N-1 edges connects vertices a_i and b_i.

Currently, there are A_i stones placed on vertex i. Determine whether it is possible to remove all the stones from the vertices by repeatedly performing the following operation:

  • Select a pair of different leaves. Then, remove exactly one stone from every vertex on the path between those two vertices. Here, a leaf is a vertex of the tree whose degree is 1, and the selected leaves themselves are also considered as vertices on the path connecting them.

Note that the operation cannot be performed if there is a vertex with no stone on the path.

Constraints

  • 2 ≦ N ≦ 10^5
  • 1 ≦ a_i,b_i ≦ N
  • 0 ≦ A_i ≦ 10^9
  • The given graph is a tree.

Input

The input is given from Standard Input in the following format:

N
A_1 A_2A_N
a_1 b_1
:
a_{N-1} b_{N-1}

Output

If it is possible to remove all the stones from the vertices, print YES. Otherwise, print NO.


Sample Input 1

5
1 2 1 1 2
2 4
5 2
3 2
1 3

Sample Output 1

YES

All the stones can be removed, as follows:

  • Select vertices 4 and 5. Then, there is one stone remaining on each vertex except 4.
  • Select vertices 1 and 5. Then, there is no stone on any vertex.

Sample Input 2

3
1 2 1
1 2
2 3

Sample Output 2

NO

Sample Input 3

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

Sample Output 3

YES