atcoder#ARC095D. [ARC095F] Permutation Tree
[ARC095F] Permutation Tree
配点 : 点
問題文
高橋くんには の順列 を使い、 次の手順で木を作る能力があります。
頂点 、頂点 、 、 頂点 を用意する。 各 について次の操作を行う。
- である場合、何もしない。
- である場合、 であるような のうち最大のものを とする。 頂点 と 頂点 の間に辺を貼る。
高橋くんはこの能力を使ってお気に入りの木を作ろうとしています。 高橋くんのお気に入りの木は 頂点 から頂点 の 頂点からなり、 番目の辺は頂点 と を結んでいます。 適切な順列を使うことで、高橋くんのお気に入りの木と同型な木を作ることが可能か 判定して下さい。 可能な場合、そのような順列のうち辞書順で最も小さいものを求めて下さい。
注意
木が同型であることの定義はwikipedia
を参照して下さい。 直感的には、木と木が同型であるとは、頂点の番号を無視すると同じ木になることを言います。
制約
- 与えられるグラフは木である
入力
入力は以下の形式で標準入力から与えられる。
出力
高橋くんのお気に入りの木と同型な木を作ることのできる順列が存在しない場合は -1
を出力せよ。
存在する場合は、辞書順で最小の順列を空白区切りで出力せよ。
6
1 2
1 3
1 4
1 5
5 6
1 2 4 5 3 6
という順列を使って木を作ると、次の図のようになります。
これは入力のグラフと同型です。
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