#arc095d. [arc095_d]Permutation Tree

[arc095_d]Permutation Tree

题目描述

Takahashi 有一种通过排列 (p1,p2,...,pn)(p_1,p_2,...,p_n) 可以生成一棵树的能力,具体过程如下:

首先,准备顶点 11, 顶点 22, ..., 顶点 NN。对于每个 i=1,2,...,ni=1,2,...,n,执行以下操作:

  • 如果 pi=1p_i = 1,什么都不做。
  • 如果 pineq1p_i \\neq 1,找到最大的 jj 使得 pj<pip_j < p_i。在顶点 ii 和顶点 jj' 之间构建一条边。

Takahashi 正在尝试使用这种能力制作他最喜欢的树。他最喜欢的树由 nn 个顶点组成,从顶点 11 到顶点 nn,第 ii 条边连接顶点 viv_iwiw_i。确定他是否可以使用合适的排列制作一个与他最喜欢的树同构的树。如果可以,找到字典序最小的排列。

注解

树同构的定义,请参见维基百科。直观地讲,如果我们忽略它们顶点的索引,两棵树在结构上是相同的。

约束条件

  • 2n1052 \leq n \leq 10^5
  • 1vi,win1 \leq v_i, w_i \leq n
  • 给定的图是一棵树。

输入

输入在标准输入中给出,格式如下:

nn v1v_1 w1w_1 v2v_2 w2w_2 :: vn1v_{n-1} wn1w_{n-1}

输出

如果不存在能够生成与 Takahashi 最喜欢的树同构的排列,则打印 -1。如果存在,则按照字典序输出其中字典序最小的排列,每个元素之间用空格分隔。


示例输入1

6
1 2
1 3
1 4
1 5
5 6

示例输出1

1 2 4 5 3 6

如果使用排列 (1,2,4,5,3,6)(1, 2, 4, 5, 3, 6) 生成树,树的结构如下图所示:

该树与给定的图同构。


示例输入2

6
1 2
2 3
3 4
1 5
5 6

示例输出2

1 2 3 4 5 6

示例输入3

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

示例输出3

-1