atcoder#ARC161C. [ARC161C] Dyed by Majority (Odd Tree)
[ARC161C] Dyed by Majority (Odd Tree)
配点 : 点
問題文
頂点の木が与えられます. 頂点には から までの番号が付いており, 番目の辺は頂点 と頂点 を結んでいます. また,すべての頂点について,接続する辺の本数は奇数です.
与えられた木の各頂点を黒 ( B
) か白 ( W
) のいずれかの色で塗ります.
このとき,「各頂点の色( B
または W
)を頂点の番号順に並べて得られる文字列」を色の列と呼びます.
色の列 が与えられます. すべての頂点に色が塗られた状態で以下の操作を 回行った結果,色の列が となることがあり得るかどうかを判定し,あり得るなら操作を行う前の色の列として適切なものを つ求めてください.
操作: 各頂点 に対して,辺で結ばれた頂点の色のうち過半数を占めるものを とする. すべての頂点について同時に,頂点 の色を に塗り替える.
個のテストケースが与えられるので,それぞれについて答えてください.
制約
- つの入力に含まれるテストケースについて, の総和は 以下である.
- 与えられる辺 は木をなす.
- 各頂点 は として合計奇数回現れる.
- は
B
,W
からなる長さ の文字列である.
入力
入力は以下の形式で標準入力から与えられる.
各テストケース は以下の形式である.
出力
行出力せよ.
行目には, 番目のテストケースについて,操作の結果として色の列が となることがあり得るなら操作を行う前の色の列として適切なものを,あり得ないなら -1
を出力せよ.
操作を行う前の色の列として適切なものが複数存在する場合,そのような色の列のうちどれを出力しても正答と見なされる.
2
4
1 2
1 3
1 4
BWWW
4
1 2
1 3
1 4
BBWW
WBBW
-1
つ目のテストケースについて,操作を行う前の色の列が WBBW
であったとします.
このとき,
- 頂点 について,辺で結ばれた頂点 の色はそれぞれ
B
,B
,W
であり,過半数を占めるのはB
, - 頂点 について,辺で結ばれた頂点 の色は
W
であり,過半数を占めるのはW
, - 頂点 について,辺で結ばれた頂点 の色は
W
であり,過半数を占めるのはW
, - 頂点 について,辺で結ばれた頂点 の色は
W
であり,過半数を占めるのはW
となります.
したがって,操作後の色の列は BWWW
となり,条件を満たします.
同様に,操作前の色の列が WBBB
, WBWB
, WWBB
であった場合にも,操作後の色の列は BWWW
となり,これらのうちどれを出力しても正答と見なされます。
つ目のテストケースについて,入力された木において操作を行った結果,色の列が BBWW
となることはあり得ません.