#arc157e. [arc157_e]XXYX Binary Tree

[arc157_e]XXYX Binary Tree

問題文

NN 頂点の根付き木が与えられます. 頂点には 11 から NN の相異なる整数の番号が付いており,根は頂点 11 です. 根以外の各頂点 ii の親は頂点 PiP_i であり,根を含む各頂点は,子を持たないか,ちょうど 22 個の子を持つかのいずれかです.

与えられた木の各頂点に X, Y のいずれかの文字を書き込んで,以下の条件を満たすことが可能かどうかを判定してください.

条件: 木の各辺に関して,両端点に書き込まれた文字を親 PiP_i から子 ii に向かう順に並べて得られる長さ 22 の文字列を考える. そのような文字列はのべ (N1)(N - 1) 個あるが,そのうち

  • ちょうど AA 個が XX
  • ちょうど BB 個が XY
  • ちょうど CC 個が YX であり,
  • YY は存在しない.

TT 個のテストケースが与えられるので,それぞれについて答えてください.

制約

  • Tgeq1T \\geq 1
  • Ngeq1N \\geq 1
  • 11 つの入力に含まれるテストケースについて,NN の総和は 10410^4 以下である.
  • Ageq0A \\geq 0
  • Bgeq0B \\geq 0
  • Cgeq0C \\geq 0
  • A+B+C=N1A + B + C = N - 1
  • 1leqPi<i(2leqileqN)1 \\leq P_i < i \\ \\ (2 \\leq i \\leq N)
  • 各頂点 k(1leqkleqN)k \\ (1 \\leq k \\leq N) は親 Pi(2leqileqN)P_i \\ (2 \\leq i \\leq N) として合計 00 回または 22現れる.

入力

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

TT mathrmcase1\\mathrm{case}_1 mathrmcase2\\mathrm{case}_2 vdots\\vdots mathrmcaseT\\mathrm{case}_T

各テストケース mathrmcasei(1leqileqT)\\mathrm{case}_i \\ (1 \\leq i \\leq T) は以下の形式である.

NN AA BB CC P2P_2 P3P_3 cdots\\cdots PNP_N

出力

TT 行出力せよ. ii 行目には,ii 番目のテストケースについて,条件を満たす文字の書き込み方が存在するなら Yes を,存在しないなら No を出力せよ.


入力例 1

3
7 2 2 2
1 1 2 2 3 3
7 0 2 4
1 1 2 2 3 3
7 2 0 4
1 1 2 2 4 4

出力例 1

Yes
Yes
No

11 番目のテストケースについて,たとえば頂点 11 から 77 の順に XXYXYXX と書き込めば,

  • (1,2)(1, 2) で得られる文字列は XX
  • (1,3)(1, 3) で得られる文字列は XY
  • (2,4)(2, 4) で得られる文字列は XX
  • (2,5)(2, 5) で得られる文字列は XY
  • (3,6)(3, 6) で得られる文字列は YX
  • (3,7)(3, 7) で得られる文字列は YX

であり,XX, XY, YX がそれぞれ 22 個ずつとなって条件を満たします.

22 番目のテストケースについて,たとえば XYYXXXX と書き込めば条件を満たします.

33 番目のテストケースについては,どのように書き込んでも条件を満たしません.