atcoder#ARC161C. [ARC161C] Dyed by Majority (Odd Tree)

[ARC161C] Dyed by Majority (Odd Tree)

配点 : 500500

問題文

NN 頂点の木が与えられます. 頂点には 11 から NN までの番号が付いており,ii 番目の辺は頂点 AiA_i と頂点 BiB_i を結んでいます. また,すべての頂点について,接続する辺の本数は奇数です.

与えられた木の各頂点を黒 ( B ) か白 ( W ) のいずれかの色で塗ります. このとき,「各頂点の色( B または W )を頂点の番号順に並べて得られる文字列」を色の列と呼びます.

色の列 SS が与えられます. すべての頂点に色が塗られた状態で以下の操作を 11 回行った結果,色の列が SS となることがあり得るかどうかを判定し,あり得るなら操作を行う前の色の列として適切なものを 11 つ求めてください.

操作: 各頂点 k=1,2,,Nk = 1, 2, \dots, N に対して,辺で結ばれた頂点の色のうち過半数を占めるものを CkC_k とする. すべての頂点について同時に,頂点 kk の色を CkC_k に塗り替える.

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

制約

  • T1T \geq 1
  • N2N \geq 2
  • 11 つの入力に含まれるテストケースについて,NN の総和は 2×1052 \times 10^5 以下である.
  • 1Ai<BiN  (1iN1)1 \leq A_i < B_i \leq N \ \ (1 \leq i \leq N - 1)
  • 与えられる辺 (Ai,Bi) (1iN1)(A_i, B_i) \ (1 \leq i \leq N - 1) は木をなす.
  • 各頂点 k (1kN)k \ (1 \leq k \leq N)Ai,Bi (1iN1)A_i, B_i \ (1 \leq i \leq N - 1) として合計奇数回現れる.
  • SSB, W からなる長さ NN の文字列である.

入力

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

TT

case1\mathrm{case}_1

case2\mathrm{case}_2

\vdots

caseT\mathrm{case}_T

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

NN

A1A_1 B1B_1

A2A_2 B2B_2

\vdots

AN1A_{N-1} BN1B_{N-1}

SS

出力

TT 行出力せよ. ii 行目には,ii 番目のテストケースについて,操作の結果として色の列が SS となることがあり得るなら操作を行う前の色の列として適切なものを,あり得ないなら -1 を出力せよ. 操作を行う前の色の列として適切なものが複数存在する場合,そのような色の列のうちどれを出力しても正答と見なされる.

2
4
1 2
1 3
1 4
BWWW
4
1 2
1 3
1 4
BBWW
WBBW
-1

11 つ目のテストケースについて,操作を行う前の色の列が WBBW であったとします. このとき,

  • 頂点 11 について,辺で結ばれた頂点 2,3,42, 3, 4 の色はそれぞれ B, B, W であり,過半数を占めるのは C1=C_1 = {}B
  • 頂点 22 について,辺で結ばれた頂点 11 の色は W であり,過半数を占めるのは C2=C_2 = {}W
  • 頂点 33 について,辺で結ばれた頂点 11 の色は W であり,過半数を占めるのは C3=C_3 = {}W
  • 頂点 44 について,辺で結ばれた頂点 11 の色は W であり,過半数を占めるのは C4=C_4 = {}W となります.

したがって,操作後の色の列は BWWW となり,条件を満たします. 同様に,操作前の色の列が WBBB, WBWB, WWBB であった場合にも,操作後の色の列は BWWW となり,これらのうちどれを出力しても正答と見なされます。

22 つ目のテストケースについて,入力された木において操作を行った結果,色の列が BBWW となることはあり得ません.