AT_pakencamp_2022_day1_m 01 Tree
Description
頂点 $ 1 $ を根とする $ N $ 頂点の根付き木があります。頂点 $ i $ の親は頂点 $ P_i $ です。これから各頂点に $ 0 $ または $ 1 $ を書き込みたいです。
以下の与えられた条件を満たすような頂点に対する $ 0 $ と $ 1 $ の割り当て方を一つ求めてください。また、そのような割り当て方が存在しない場合はそのことを報告してください。
- $ K $ 個の頂点 $ M_1 ,M_2, \cdots M_K $ にはそれぞれ $ S_1 ,S_2, \cdots S_K $ が書き込まれている。
- 頂点 $ i $ に $ 1 $ が書き込まれているならば、頂点 $ A_i $ とその子孫の頂点には $ 1 $ が書き込まれている。
- 頂点 $ i $ に $ 0 $ が書き込まれているならば、頂点 $ A_i $ とその子孫の頂点には $ 0 $ が書き込まれている。
Input Format
入力は以下の形式で標準入力から与えられます。
> $ N $ $ P_2 $ $ P_3 $ $ P_4 $ $ \cdots $ $ P_N $ $ K $ $ M_1 $ $ S_1 $ $ M_2 $ $ S_2 $ $ \vdots $ $ M_K $ $ S_K $ $ A_1 $ $ A_2 $ $ A_3 $ $ \cdots $ $ A_N $
Output Format
一行目に解に対応する $ N $ 文字の $ 01 $ 文字列を出力してください。 $ i $ 文字目には頂点 $ i $ に 書き込まれている数字を出力してください。 解が存在しない場合は一行目に `IMPOSSIBLE` と出力してください。
Explanation/Hint
### Constraints
- $ 2 \leq N \leq 10^5 $
- $ 1 \leq P_i < i $ ( $ 2 \leq i \leq N $ )
- $ 0 \leq K \leq N-1 $
- $ 1 \leq M_i \leq N $ ( $ 1 \leq i \leq K $ )
- $ M_i \neq M_j $ ( $ 1 \leq i < j \leq K $ )
- $ S_i \in \lbrace 0,1 \rbrace $ ( $ 1 \leq i \leq K $ )
- $ 1 \leq A_i \leq N $ ( $ 1 \leq i \leq N $ )
- 入力は全て整数