问题 2080 --Reach星球旅游(travel.cpp)

2080: Reach星球旅游(travel.cpp)★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 106  解决: 28
[提交][状态][命题人:]

题目描述

勇士小小潘来到Reach星球旅游,这里有n个国家,与m座传送阵。每一座传送阵连着两个国家,但只能单向传送,即能A国传送去B,但不能从B传送回A。

请问创世神小曹老师,还要再建造几座传送阵才能满足可怜的小小潘能从s国传送到任何国家。

输入

输入文件为travel.in

第一行输入三个整数n,m和s(1≤n≤5000,0≤m≤5000,1≤s≤n) - 城市数量,道路数量和S国的编号。 国家编号从1到n。

以下m行是m座传送阵的信息:每行两个数 ui,vi(1≤ui,vi≤n,ui≠vi)。 对于每对国家只有一座从ui到vi的传送阵。 但允许一对国家之间同时存在相反方向的传送阵(即从ui到vi和从vi到ui)。

输出

输出文件为travel.out

输出一个整数 - 使所有国家都可以从国家s到达,所需的额外传送阵的最小数量。

样例输入
Copy
9 9 1
1 2
1 3
2 3
1 5
5 6
6 1
1 8
9 8
7 1
样例输出
Copy
3

提示

样例:(6,4), (7,9), (1,7)添加三座传送阵即可

*****普及模拟赛2018-3-E*****

来源

[提交][状态]