AT_arc157_e [ARC157E] XXYX Binary Tree

Description

[problemUrl]: https://atcoder.jp/contests/arc157/tasks/arc157_e $ N $ 頂点の根付き木が与えられます. 頂点には $ 1 $ から $ N $ の相異なる整数の番号が付いており,根は頂点 $ 1 $ です. 根以外の各頂点 $ i $ の親は頂点 $ P_i $ であり,根を含む各頂点は,**子を持たないか,ちょうど $ 2 $ 個の子を持つか**のいずれかです. 与えられた木の各頂点に `X`, `Y` のいずれかの文字を書き込んで,以下の条件を満たすことが可能かどうかを判定してください. **条件:** 木の各辺に関して,両端点に書き込まれた文字を親 $ P_i $ から子 $ i $ に向かう順に並べて得られる長さ $ 2 $ の文字列を考える. そのような文字列はのべ $ (N\ -\ 1) $ 個あるが,そのうち - ちょうど $ A $ 個が `XX`, - ちょうど $ B $ 個が `XY`, - ちょうど $ C $ 個が `YX` であり, - `YY` は存在しない. $ T $ 個のテストケースが与えられるので,それぞれについて答えてください.

Input Format

入力は以下の形式で標準入力から与えられる. > $ T $ $ \mathrm{case}_1 $ $ \mathrm{case}_2 $ $ \vdots $ $ \mathrm{case}_T $ 各テストケース $ \mathrm{case}_i\ (1\ \leq\ i\ \leq\ T) $ は以下の形式である. > $ N $ $ A $ $ B $ $ C $ $ P_2 $ $ P_3 $ $ \cdots $ $ P_N $

Output Format

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

Explanation/Hint

### 制約 - $ T\ \geq\ 1 $ - $ N\ \geq\ 1 $ - $ 1 $ つの入力に含まれるテストケースについて,$ N $ の総和は $ 10^4 $ 以下である. - $ A\ \geq\ 0 $ - $ B\ \geq\ 0 $ - $ C\ \geq\ 0 $ - $ A\ +\ B\ +\ C\ =\ N\ -\ 1 $ - $ 1\ \leq\ P_i\