atcoder#AGC018F. [AGC018F] Two Trees
[AGC018F] Two Trees
配点 : 点
問題文
頂点からなる根付き木が つあります。 どちらの木の頂点も、それぞれ から の番号がついています。 つめの木の 頂点 の親は です。 なお、頂点 が根のときは、です。 つめの木の 頂点 の親は です。 なお、頂点 が根のときは、です。
すぬけ君は、長さ の整数列 , , , であって、次の条件を満たすものを求めたいです。
- どちらの木のどの頂点についても、その頂点とその子孫の頂点の番号を , , , としたとき、 が成り立つ。
条件を満たす整数列を作ることができるか判定し、存在するならば つ求めてください。
制約
- (頂点 が つ目の木の根でないとき)
- (頂点 が つ目の木の根のとき)
- (頂点 が つ目の木の根でないとき)
- (頂点 が つ目の木の根のとき)
- 入力はvalidな根付き木である。
入力
入力は以下の形式で標準入力から与えられる。
出力
条件を満たす整数列を作ることができない場合は、IMPOSSIBLE
と出力せよ。
作ることができる場合は、まず 行目に、POSSIBLE
と出力せよ。
続いて、 行目には条件を満たす整数列 , , , を空白区切りで出力せよ。
5
3 3 4 -1 4
4 4 1 -1 1
POSSIBLE
1 -1 -1 3 -1
例えば、 つ目の木の頂点 について見てみると、その頂点と子孫の頂点の番号は、 となっています。 出力例のように整数列を設定すると、 となっており、問題ありません。 他の頂点についても同じように確かめると、確かに出力例の整数列は条件を満たしています。
6
-1 5 1 5 1 3
6 5 5 3 -1 3
IMPOSSIBLE
この例では、どうやっても条件を満たす整数列は作れません。
よって、この例の答えは IMPOSSIBLE
になります。
8
2 7 1 2 2 1 -1 4
4 -1 4 7 4 4 2 4
POSSIBLE
1 2 -1 0 -1 1 0 -1