#P13722. [ARC095F] Permutation Tree

    ID: 12924 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 7 上传者: 标签>CF2200图论构造DFS贪心直径树的重心

[ARC095F] Permutation Tree

题目描述

高桥君有一种能力,可以使用 (1,2,,n) (1,2,\ldots,n) 的一个排列 (p1,p2,,pn) (p_1,p_2,\ldots,p_n) ,按照以下步骤构造一棵树。

准备顶点 1 1 、顶点 2 2 \ldots、顶点 n n 。对于每个 i=1,2,,n i=1,2,\ldots,n ,进行如下操作:

  • 如果 pi=1 p_i = 1 ,则什么也不做。
  • 如果 pi1 p_i \neq 1 ,则在所有满足 pj<pi p_j < p_i j j 中,取最大的 j j ,记为 j j'。在顶点 i i 和顶点 j j' 之间连一条边。

高桥君想用这种能力构造出他最喜欢的树。他最喜欢的树有 n n 个顶点,顶点编号为 1 1 n n ,第 i i 条边连接顶点 vi v_i wi w_i 。请判断是否存在一个合适的排列,使得高桥君构造出的树与他最喜欢的树同构。如果存在,请输出字典序最小的这样的排列。

输入格式

输入通过标准输入给出,格式如下:

n n
v1 w1 v_1\ w_1
v2 w2 v_2\ w_2
\vdots
vn1 wn1 v_{n-1}\ w_{n-1}

输出格式

如果不存在能够构造出与高桥君最喜欢的树同构的排列,则输出 -1
如果存在,输出字典序最小的排列,空格分隔。

输入输出样例 #1

输入 #1

6
1 2
1 3
1 4
1 5
5 6

输出 #1

1 2 4 5 3 6

输入输出样例 #2

输入 #2

6
1 2
2 3
3 4
1 5
5 6

输出 #2

1 2 3 4 5 6

输入输出样例 #3

输入 #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

说明/提示

注意

关于树同构的定义,请参考 wikipedia。直观地说,两棵树同构是指忽略顶点编号后,两棵树的结构完全相同。

约束条件

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

样例解释 1

使用排列 (1, 2, 4, 5, 3, 6) (1,\ 2,\ 4,\ 5,\ 3,\ 6) 构造出的树如下图所示。

这棵树与输入的图同构。