给定一个有n个顶点(编号为1到n)和m条边的有向图,以及一个起点s。
请从顶点s出发,进行广度优先搜索(BFS)。在 BFS 过程中,当一个顶点被扩展时,它的所有未访问的邻接点需要按照编号从小到大的顺序依次入队。
请输出从s出发能够到达的所有顶点的 BFS 访问顺序(即出队顺序)。如果从s出发无法到达某些顶点,则这些顶点不输出。
第一行三个整数n, m, s,分别表示顶点数、边数和起点编号。
接下来m行,每行两个整数u, v,表示一条有向边 u -> v。
输出一行,包含若干个整数,表示从 s 出发 BFS 能够访问到的所有顶点,按访问顺序输出,相邻两个数之间用一个空格隔开。
如果从 s 出发不能到达任何其他顶点,则只输出s本身。
6 7 1 1 2 1 3 2 4 2 5 3 5 4 6 5 6
1 2 3 4 5 6
5 4 3 1 2 2 3 3 4 4 5
3 4 5
从样例1:
起点为 1,队列初始 [1]。
扩展 1:邻接点有 2、3(按编号排序),入队顺序 2→3,队列 [2,3]。
出队 2:邻接点有 4、5,入队,队列 [3,4,5]。
出队 3:邻接点有 5(已访问),忽略。
出队 4:邻接点有 6,入队,队列 [5,6]。
出队 5:邻接点有 6(已访问),忽略。
出队 6:无邻接点。
访问顺序:1 2 3 4 5 6。
• 从样例2:起点为 3,只能访问 4 和 5,故输出 3 4 5。
1 ≤ n ≤ 1e5
0 ≤ m ≤ 2e5
1 ≤ s ≤ n
保证输入边不重复,且无自环。