atcoder#AGC018F. [AGC018F] Two Trees
[AGC018F] Two Trees
题目描述
頂点からなる根付き木が つあります。 どちらの木の頂点も、それぞれ から の番号がついています。 つめの木の 頂点 の親は です。 なお、頂点 が根のときは、です。 つめの木の 頂点 の親は です。 なお、頂点 が根のときは、です。
すぬけ君は、長さ の整数列 , , , であって、次の条件を満たすものを求めたいです。
- どちらの木のどの頂点についても、その頂点とその子孫の頂点の番号を , , , としたとき、 が成り立つ。
条件を満たす整数列を作ることができるか判定し、存在するならば つ求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
条件を満たす整数列を作ることができない場合は、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
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
提示
制約
- (頂点 が つ目の木の根でないとき)
- (頂点 が つ目の木の根のとき)
- (頂点 が つ目の木の根でないとき)
- (頂点 が つ目の木の根のとき)
- 入力はvalidな根付き木である。
Sample Explanation 1
例えば、 つ目の木の頂点 について見てみると、その頂点と子孫の頂点の番号は、 となっています。 出力例のように整数列を設定すると、 となっており、問題ありません。 他の頂点についても同じように確かめると、確かに出力例の整数列は条件を満たしています。
Sample Explanation 2
この例では、どうやっても条件を満たす整数列は作れません。 よって、この例の答えは IMPOSSIBLE
になります。