atcoder#AGC052B. [AGC052B] Tree Edges XOR

[AGC052B] Tree Edges XOR

配点 : 800800

問題文

NN 頂点の木が与えられます。ここで、NN奇数 です。 木の頂点には 11 から NN までの、辺には 11 から N1N-1 までの番号が付けられています。 辺 ii は頂点 ui,viu_i, v_i を結び、初期状態での重みは wi1w^1_i です。

あなたは、次の操作を何度でも行えます。

  • 木から辺 (u,v)(u, v) を選ぶ。この辺の現在の重みが ww であるとする。u,vu, v のいずれかちょうど一方に接続する各辺について、その重みを ww との XOR に置き換える(操作前の辺の重みが w1w_1 であるとすると、操作後の重みは w1ww_1 \oplus w となる)。

あなたの目標は、各辺 ii の重みを wi2w^2_i とすることです。 上記の操作を何度でも行えるとして、目標の達成が可能か判定してください。

制約

  • 1N1051 \le N \le 10^5
  • NN は奇数である。
  • 1ui,viN1\le u_i, v_i \le N
  • uiviu_i \neq v_i
  • 0wi1,wi2<2300\le w^1_i, w^2_i < 2^{30}
  • 入力中の値は全て整数である。
  • 入力が表すグラフは木である。

入力

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

NN

u1u_1 v1v_1 w11w^1_1 w12w^2_1

u2u_2 v2v_2 w21w^1_2 w22w^2_2

\vdots

uN1u_{N-1} vN1v_{N-1} wN11w^1_{N-1} wN12w^2_{N-1}

出力

目標とする重みの割り当てに初期状態から至ることが可能であれば YES、そうでなければ NO と出力せよ。 なお、正誤判定器は英大文字と英小文字を区別せず、どちらも受理する。

3
1 2 1 1
2 3 8 9
YES

11 に対して操作を行うと、辺 22 の重みが 81=98 \oplus 1=9 となります。

5
1 2 0 3
1 3 1 0
1 4 2 1
1 5 0 0
NO