atcoder#AGC018F. [AGC018F] Two Trees
[AGC018F] Two Trees
Score : points
Problem Statement
There are two rooted trees, each with vertices. The vertices of each tree are numbered through . In the first tree, the parent of Vertex is Vertex . Here, if Vertex is the root of the first tree. In the second tree, the parent of Vertex is Vertex . Here, if Vertex is the root of the second tree.
Snuke would like to construct an integer sequence of length , , , , , that satisfies the following condition:
- For each vertex on each tree, let the indices of its descendants including itself be , , , . Then, holds.
Determine whether it is possible to construct such a sequence. If the answer is possible, find one such sequence.
Constraints
- , if Vertex is not the root in the first tree.
- , if Vertex is the root in the first tree.
- , if Vertex is not the root in the second tree.
- , if Vertex is the root in the second tree.
- Input corresponds to valid rooted trees.
Input
Input is given from Standard Input in the following format:
Output
If it is not possible to construct an integer sequence that satisfies the condition, print IMPOSSIBLE.
If it is possible, print POSSIBLE in the first line.
Then, in the second line, print , , , , an integer sequence that satisfies the condition.
5
3 3 4 -1 4
4 4 1 -1 1
POSSIBLE
1 -1 -1 3 -1
For example, the indices of the descendants of Vertex of the first tree including itself, is . It can be seen that the sample output holds . Similarly, the condition is also satisfied for other vertices.
6
-1 5 1 5 1 3
6 5 5 3 -1 3
IMPOSSIBLE
In this case, constructing a sequence that satisfies the condition is 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