#abc168d. [abc168_d].. (Double Dots)
[abc168_d].. (Double Dots)
问题描述
有一个洞穴。
洞穴里有个房间和个通道。房间编号为到,通道编号为到。通道双向连接房间和房间。通过穿越通道可以在任意两个房间之间移动。房间是一个从外部进入的特殊房间。
洞穴里面很黑暗,因此我们决定在每个房间里放置一个指示牌,除了房间。每个房间的指示牌将指向与该房间通过通道直接相连的房间之一。
由于洞穴里很危险,我们的目标是对除了房间以外的每个房间满足以下条件。
- 如果你从那个房间开始,并反复移动到指示牌指示的房间,最少穿越通道数后你将到达房间。
确定是否有办法满足我们的目标,并且如果存在,则打印出一种可行方案。
约束条件
- 输入中的所有值都是整数。
- 通过穿越通道可以在任意两个房间之间移动。
输入
输入以以下格式从标准输入中给出:
输出
如果没有办法满足目标放置指示牌,则打印No
。
否则,打印行。第一行应该包含Yes
,第行应该包含表示房间中指示牌指示的房间的整数。
示例输入1
4 4
1 2
2 3
3 4
4 2
示例输出1
Yes
1
2
2
如果按照示例输出所描述的方式放置指示牌,将会发生以下情况:
- 从房间开始,经过一条通道到达房间:。这是最少穿越通道数的方案。
- 从房间开始,经过两条通道到达房间:。这是最少穿越通道数的方案。
- 从房间开始,经过两条通道到达房间:。这是最少穿越通道数的方案。
因此,目标得到满足。
示例输入2
6 9
3 4
6 1
2 4
5 3
4 6
1 5
6 2
4 5
5 6
示例输出2
Yes
6
5
5
1
1
如果有多个解决方案,任何一个都会被接受。