#P1420. 航班(flight)
航班(flight)
【Description】
B国有N座城市,其中1号是这座国家的首都。
N座城市之间有M趟双向航班。i号点的转机次数定义为:从1号点到i,最少需要转机几次。如果1根本无法到达i,那么i点的转机次数是无穷大。
由于天气原因,有些航班会被取消。 一趟航班的取消是可容忍的,仅当这趟航班取消之后,2..N每个点的转机次数不变或者只增加了1。
现在kAc想知道,哪些航班的取消是可容忍的? 如果这样的航班不存在,输出一行“hehe”(不含引号)
【Input】
第一行两个正整数N, M
接下来M行每行两个正整数a, b。表示当前这趟航班的两端是a,b两座城市,保证a不等于b,且同一对a, b只会出现一次。
【Output】
若干整数,从小到大排序,表示所有的可容忍取消的航班序号。
【Sample Input】
5 6
1 2
1 3
1 4
3 4
2 5
3 5
【Sample Output】
2
3
4
5
6
【Hint】
如果1、2两座城市间的航班被取消,2号城市到首都原本需要0次转机(有直达飞机),现在需要先到5,再到3,再到1,转机2次。这是不可忍受的。
对于40%:N, M<=500
对于70%:N<=500 M <= 50000
对于100%:N, M<=200000
保证初始给定图中所有点的转机次数不是无穷大。