题目描述
研究员 Lera 正在观察一棵有根树逐步生长的过程。顶点集合固定为
V={1,…,n},
但边不是一开始就全部出现,而是按顺序加入:e1,e2,…,en−1。
令 G0,G1,…,Gn−1 表示这一过程中得到的图,其中 G0 没有任何边;对于每个 i=1,…,n−1,图 Gi 由 Gi−1 加入边 ei 得到。保证最终的 Gn−1 是一棵有根树,并且所有边都从根向外指向子孙方向。
你需要找到一个顶点编号的排列 p1,p2,…,pn。对于任意时刻 i 和任意顶点 v,定义
$$S_i(v)=\{p_u\mid \text{在 }G_i\text{ 中可以从 }v\text{ 到达 }u\}.$$
如果对所有 i∈{0,…,n−1} 和所有 v∈V,集合 Si(v) 都由若干个连续整数构成,也就是说存在 l,r 使得
Si(v)={l,l+1,…,r},
则称排列 p1,p2,…,pn 是合适的。
请判断是否存在合适的排列;如果存在,输出任意一个。
输入格式
第一行包含一个整数 n。
接下来 n−1 行描述边 e1,e2,…,en−1。第 i 行包含两个整数 ui,vi,表示边 ei 的起点和终点。
保证加入全部 n−1 条边后,得到的是一棵所有边均从根向外的有根树。
输出格式
如果不存在合适的排列,输出一行 No。
否则,第一行输出 Yes,第二行输出 n 个整数 p1,p2,…,pn,表示任意一个合适的排列。
数据范围
- 2≤n≤106;
- 1≤ui,vi≤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