P26231 [AtCoder] Reversi
提高+
题目描述

Problem Statement

We have a tree with N vertices.
The vertices are numbered 1 to N,
and the i-th edge connects Vertex A_i and Vertex B_i.
Additionally, each vertex has a reversi piece on it.
The status of the piece on each vertex is given by a string S:
if the i-th character of S is B, the piece on Vertex i is placed with the black side up;
if the i-th character of S is W, the piece on Vertex i is placed with the white side up.
Determine whether it is possible to perform the operation below N times to remove the pieces from all vertices.
If it is possible, find the lexicographically smallest possible sequence $P_1, P_2, \ldots, P_N$ such that Vertices $P_1, P_2, \ldots, P_N$ can be chosen in this order during the process.

  • Choose a vertex containing a piece with the white side up, and remove the piece from that vertex.
    Then, flip all pieces on the vertices adjacent to that vertex.

Notes on reversi pieces
A reversi piece has a black side and a white side, and flipping it changes which side faces up.

What is the lexicographical order on sequences?

The following is an algorithm to determine the lexicographical order between different sequences S and T.

Below, let S_i denote the i-th element of S. Also, if S is lexicographically smaller than T, we will denote that fact as $S \lt T$; if S is lexicographically larger than T, we will denote that fact as $S \gt T$.

  • Let L be the smaller of the lengths of S and T. For each $i=1,2,\dots,L$, we check whether S_i and T_i are the same.
  • If there is an i such that $S_i \neq T_i$, let j be the smallest such i. Then, we compare S_j and T_j. If S_j is less than T_j (as a number), we determine that $S \lt T$ and quit; if S_j is greater than T_j, we determine that $S \gt T$ and quit.

  • If there is no i such that $S_i \neq T_i$, we compare the lengths of S and T. If S is shorter than T, we determine that $S \lt T$ and quit; if S is longer than T, we determine that $S \gt T$ and quit.

Input

Input is given from Standard Input in the following format:
N
A_1 B_1
$\vdots$
A_{N-1} B_{N-1}
S

Output

If the objective is unachievable, print -1. If it is achievable, print the answer in the following format:
$P_1 P_2 \cdots P_N$

Constraints

  • $1 \leq N \leq 2\times 10^5$
  • $1 \leq A_i, B_i \leq N$
  • The given graph is a tree.
  • S is a string of length N consisting of the characters B and W.

Sample Input 1

4
1 2
2 3
3 4
WBWW

Sample Output 1

1 2 4 3

Sample Input 2

4
1 2
2 3
3 4
BBBB

Sample Output 2

-1

In this case, you cannot perform the operation at all.

输入格式

见题面 Input 部分

输出格式

见题面 Output 部分

样例输入
4 1 2 2 3 3 4 WBWW
样例输出
1 2 4 3