AT_arc095_d [ARC095F] Permutation Tree

题目描述

高桥君有一种能力,可以使用 $ (1,2,\ldots,n) $ 的一个排列 $ (p_1,p_2,\ldots,p_n) $,按照以下步骤构造一棵树。 准备顶点 $ 1 $、顶点 $ 2 $、$\ldots$、顶点 $ n $。对于每个 $ i=1,2,\ldots,n $,进行如下操作: - 如果 $ p_i = 1 $,则什么也不做。 - 如果 $ p_i \neq 1 $,则在所有满足 $ p_j < p_i $ 的 $ j $ 中,取最大的 $ j $,记为 $ j'$。在顶点 $ i $ 和顶点 $ j' $ 之间连一条边。 高桥君想用这种能力构造出他最喜欢的树。他最喜欢的树有 $ n $ 个顶点,顶点编号为 $ 1 $ 到 $ n $,第 $ i $ 条边连接顶点 $ v_i $ 和 $ w_i $。请判断是否存在一个合适的排列,使得高桥君构造出的树与他最喜欢的树同构。如果存在,请输出字典序最小的这样的排列。

输入格式

输入通过标准输入给出,格式如下: > $ n $ > $ v_1\ w_1 $ > $ v_2\ w_2 $ > $\vdots$ > $ v_{n-1}\ w_{n-1} $

输出格式

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

说明/提示

### 注意 关于树同构的定义,请参考 [wikipedia](https://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%A9%E3%83%95%E5%90%8C%E5%9E%8B)。直观地说,两棵树同构是指忽略顶点编号后,两棵树的结构完全相同。 ### 约束条件 - $ 2 \leq n \leq 10^5 $ - $ 1 \leq v_i, w_i \leq n $ - 给定的图一定是一棵树 ### 样例解释 1 使用排列 $ (1,\ 2,\ 4,\ 5,\ 3,\ 6) $ 构造出的树如下图所示。 ![](https://img.atcoder.jp/arc095/db000b879402aed649a1516620eb1e21.png) 这棵树与输入的图同构。 由 ChatGPT 4.1 翻译