#arc063c. [arc063_c]Integers on a Tree
[arc063_c]Integers on a Tree
问题描述
我们有一棵包含 个顶点的树。这些顶点编号为 。第 条 () 边连接了两个顶点 和 。
高濑在 个顶点中写入了整数。具体来说,对于每个 ,他将整数 写入了顶点 。其余的顶点为空。然后,他累了,就睡着了。
然后,青木出现了。他想要通过在所有空顶点中写入整数来让高濑感到惊喜,以满足以下条件:
- 条件:对于由一条边直接连接的任意两个顶点,这些顶点中的整数之间相差恰好为 。
确定是否可以在所有空顶点中写入整数以满足条件。如果答案是肯定的,找到一种满足条件的具体方法。
约束条件
- ()
- () (21:18, 修正了约束条件中的错误)
- ()
- 给定的图是一棵树。
- 所有 是不同的。
输入
输入以以下格式从标准输入给出:
输出
如果可以在所有空顶点中写入整数以满足条件,则输出 Yes
。否则,输出 No
。
如果可以满足条件,另外输出 行。这 行中的第 行 () 应包含应该写入顶点 的整数。如果有多种满足条件的方式,则接受任何一种方式。
示例输入 1
5
1 2
3 1
4 3
3 5
2
2 6
5 7
示例输出 1
Yes
5
6
6
5
7
下面的图显示了高濑睡着时的树。对于每个顶点,旁边写的整数表示顶点的索引,而写在顶点内部的整数是高濑写的整数。
青木可以通过以下方式将整数写入剩余的顶点来满足条件:
这对应于示例输出 1。请注意,满足条件的其他输出也将被接受,例如:
Yes
7
6
8
7
7
示例输入 2
5
1 2
3 1
4 3
3 5
3
2 6
4 3
5 7
示例输出 2
No
示例输入 3
4
1 2
2 3
3 4
1
1 0
示例输出 3
Yes
0
-1
-2
-3
青木书写的整数可以是负数,也可以超过 。