#P15767. 渐生树的连续编号

渐生树的连续编号

题目描述

研究员 Lera 正在观察一棵有根树逐步生长的过程。顶点集合固定为

V={1,,n},V=\{1,\ldots,n\},

但边不是一开始就全部出现,而是按顺序加入:e1,e2,,en1e_1,e_2,\ldots,e_{n-1}

G0,G1,,Gn1G_0,G_1,\ldots,G_{n-1} 表示这一过程中得到的图,其中 G0G_0 没有任何边;对于每个 i=1,,n1i=1,\ldots,n-1,图 GiG_iGi1G_{i-1} 加入边 eie_i 得到。保证最终的 Gn1G_{n-1} 是一棵有根树,并且所有边都从根向外指向子孙方向。

你需要找到一个顶点编号的排列 p1,p2,,pnp_1,p_2,\ldots,p_n。对于任意时刻 ii 和任意顶点 vv,定义

$$S_i(v)=\{p_u\mid \text{在 }G_i\text{ 中可以从 }v\text{ 到达 }u\}.$$

如果对所有 i{0,,n1}i\in\{0,\ldots,n-1\} 和所有 vVv\in V,集合 Si(v)S_i(v) 都由若干个连续整数构成,也就是说存在 l,rl,r 使得

Si(v)={l,l+1,,r},S_i(v)=\{l,l+1,\ldots,r\},

则称排列 p1,p2,,pnp_1,p_2,\ldots,p_n 是合适的。

请判断是否存在合适的排列;如果存在,输出任意一个。

输入格式

第一行包含一个整数 nn

接下来 n1n-1 行描述边 e1,e2,,en1e_1,e_2,\ldots,e_{n-1}。第 ii 行包含两个整数 ui,viu_i,v_i,表示边 eie_i 的起点和终点。

保证加入全部 n1n-1 条边后,得到的是一棵所有边均从根向外的有根树。

输出格式

如果不存在合适的排列,输出一行 No

否则,第一行输出 Yes,第二行输出 nn 个整数 p1,p2,,pnp_1,p_2,\ldots,p_n,表示任意一个合适的排列。

数据范围

  • 2n1062\le n\le 10^6
  • 1ui,vin1\le u_i,v_i\le n

样例 1

输入

4
3 1
1 4
1 2

输出

Yes
3 1 4 2

样例 2

输入

7
1 2
1 3
1 4
2 5
3 6
4 7

输出

No