241789 - 有向图的BFS序列

题目描述

给定一个有n个顶点(编号为1n)和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]。

扩展 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

保证输入边不重复,且无自环。

标签
题目参数
时间限制 1 秒
内存限制 256 MB
提交次数 12
通过人数 9
金币数量 3 枚
难度 基础


上一题 下一题