交通管制
题号:NC204670
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

    疫情期间,很多城市都依法依规的实行了交通管制。但是交通管制的核心要求是,封闭道路不影响主要交通出行,要保障一线工作人员的正常出行。

    我们把城市分为几个区,在每个区里,有一个中心枢纽,还有一家医院,此外还有很多居民生活点。中间有单向边连接,形成了一个片区网络图,在这个区域里没有环,同时保证对于每个居民生活点,总存在至少一条从中心枢纽途径生活到医院的路径。

    由于疫情期间的客流量很小,不需要保留那么多道路,只需要保证对于每个居民生活点,总存在至少一条从中心枢纽途径生活点到医院的路径即可,而不需要考虑因客流高峰、路径较少导致的堵车现象。

    现在请你帮忙算一下,最多可以封闭几条道路,仍旧能保持交通的正常出行。

输入描述:

输入第一行包括两个整数,分别表示城市里的总点数(中心枢纽+医院+居民生活点)和边数。()

接下来行,每行包括两个整数,表示从有一条单向边。()

输入保证有且仅有一个点没有指向它的边,这个点就是中心枢纽。有且仅有一个点没有指向别人的边,这个点就是医院。

输出描述:

输出一个整数,表示最大可以封闭的道路数量。
示例1

输入

复制
5 6
2 4
3 5
2 5
1 4
2 3
5 1

输出

复制
2

说明

输入的图如下所示,其中2是中心枢纽,4是医院。我们可以删去2->5的边和2->4的边,仍然可以保障城市的正常运行。

图片说明

示例2

输入

复制
4 4
1 2
1 3
2 4
3 4

输出

复制
0