atcoder#AGC010C. [AGC010C] Cleaning
[AGC010C] Cleaning
配点 : 点
問題文
頂点からなる木があり、頂点には から の番号がついています。 また、 本の辺の内、 番目の辺は頂点 と頂点 を結んでいます。
今、各頂点 には 個の石が置いてあります。 以下の操作を繰り返して、全ての石を取り除くことができるか判定してください。
- 相異なる つの葉を一組選ぶ。そして、その 頂点間のパス上にある頂点全てからちょうど つ石を取り除く。 ただし、葉とは木の頂点で次数が の頂点を指し、選んだ葉自体もパス上の頂点として考える。
石が置かれていない頂点がパス上にあるときは、その操作を行えないことに注意してください。
制約
- 与えられるグラフは木である。
入力
入力は以下の形式で標準入力から与えられる。
…
:
出力
全ての石を取り除くことができるなら YES
を、そうでないなら NO
を出力せよ。
5
1 2 1 1 2
2 4
5 2
3 2
1 3
YES
以下のようにすれば、すべての石を取り除くことができます。
- 葉として と を選ぶ。このとき、 以外の頂点に石が 個残る。
- 葉として と を選ぶ。このとき、全ての頂点から石がなくなる。
3
1 2 1
1 2
2 3
NO
6
3 2 2 2 2 2
1 2
2 3
1 4
1 5
4 6
YES