atcoder#ARC095D. [ARC095F] Permutation Tree
[ARC095F] Permutation Tree
Score : points
Problem Statement
Takahashi has an ability to generate a tree using a permutation of , in the following process:
First, prepare Vertex , Vertex , ..., Vertex . For each , perform the following operation:
- If , do nothing.
- If , let be the largest such that . Span an edge between Vertex and Vertex .
Takahashi is trying to make his favorite tree with this ability. His favorite tree has vertices from Vertex through Vertex , and its -th edge connects Vertex and . Determine if he can make a tree isomorphic to his favorite tree by using a proper permutation. If he can do so, find the lexicographically smallest such permutation.
Notes
For the definition of isomorphism of trees, see wikipedia
. Intuitively, two trees are isomorphic when they are the "same" if we disregard the indices of their vertices.
Constraints
- The given graph is a tree.
Input
Input is given from Standard Input in the following format:
Output
If there is no permutation that can generate a tree isomorphic to Takahashi's favorite tree, print -1
.
If it exists, print the lexicographically smallest such permutation, with spaces in between.
6
1 2
1 3
1 4
1 5
5 6
1 2 4 5 3 6
If the permutation is used to generate a tree, it looks as follows:
This is isomorphic to the given graph.
6
1 2
2 3
3 4
1 5
5 6
1 2 3 4 5 6
15
1 2
1 3
2 4
2 5
3 6
3 7
4 8
4 9
5 10
5 11
6 12
6 13
7 14
7 15
-1