M - 01 Tree
Editorial
/
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 600 点
問題文
頂点 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 が書き込まれている。
制約
- 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)
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられます。
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
出力
一行目に解に対応する N 文字の 01 文字列を出力してください。i 文字目には頂点 i に 書き込まれている数字を出力してください。
解が存在しない場合は一行目に IMPOSSIBLE
と出力してください。
入力例 1
4 1 1 2 1 2 1 3 4 3 2
出力例 1
1111
入力例 2
5 1 2 3 4 2 1 1 2 0 3 1 4 1 5
出力例 2
IMPOSSIBLE