安全路径
测试数据来自 system/3088
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
时间限制:1秒 内存限制:256M
【题目描述】
小H是一名出色的情报人员,这天他需要穿过敌人的封锁线从情报站回到总部。
地图上显示,情报站与总部的交通上总共有 \(m\) 条单向道路和 \(n\) 个交叉路口,每条道路长度为 1;为了保证安全,小H行走的路径必须满足下列两个条件:
1)路径上的所有路口连出去的单向道路的路口都能直接或间接与总部连通,因为这样在每个路口可能有更多的逃生机会。
2)在满足条件1 的情况下能尽快从情报站回到总部,因为这样能减少出现意外的机率。
现在请你为小H寻找一条这样的安全路径。
【输入格式】
输入的第一行有整数 \(n\) 和 \(m\),表示有 \(n\) 个交叉路口和 \(m\) 条单向道路,路口标号为 \(1..n\)。
接下来的 \(m\) 行每行 2 个整数 \(u,v\),表示有一条单向道路从交叉路口 \(u\) 指向交叉路口 \(v\)。
最后一行有两个整数 \(s,t\),其中 \(s\) 为情报站,\(t\)为总部。
所有同行相邻整数间用一个空格隔开。
【输出格式】
输出一个整数,表示安全路径的最短长度。如果不存在这样的路径,则输出 −1。
【输入输出样例1】
Input
6 7
1 3
1 2
3 2
4 3
4 5
6 5
6 2
1 5
Output
-1
【输入输出样例1说明】
如下图所示,交叉路口 1 与终交叉路口 5 不连通,所以满足条件的安全路径不存在,故输出 −1 。
【输入输出样例2】
Input
7 9
1 2
1 3
3 4
3 6
4 5
5 7
6 2
6 5
6 7
1 7
Output
4
【输入输出样例2说明】
如上图所示,满足条件的路径为 1 -> 3 -> 4 -> 5 -> 7。注意交叉路口 6 不能在安全路径中,因为交叉路口 6 连了一条单向道路到交叉路口 2 ,而交叉路口 2 不与终交叉路口 7 连通。
【数据说明】
对于 \(30\%\) 的数据,\(0<n≤10\),\(0<m≤20\);
对于 \(60\%\) 的数据,\(0<n≤100\),\(0<m≤2000\);
对于 \(100\%\) 的数据,\(0<n≤10000\),\(0<m≤200000\),\(0<x,y,s,t≤n\),\(x,s≠t\)。
【来源】
Mr.he