Description
给⼀张 n 个点, m 条边没有边权的有向图,问从⼀个点 s 到另⼀个点 t
经过边数最少的路径有多少条。
H 城的交通路线可以看做为⼀个 n 个点, m 条边的有向图,边权均为
1,⼩ Z 打算从学校 (S 点) 回到家中 (T 点)。
⼩ Z ⽐较懒,总是会⾛从 S 到 T 经过边的数量最少的那些路径,⽽⼩
Z 又不想⾛重复的路径。
所以⼩ Z 想让你算算,在这个图中,从 S ⾛到 T 的不同的经过边数最
少的路径有多少条?
由于答案可能很⼤,所以只需要输出答案除以 p 的余数。
如果 S ⽆法⾛到 T,那么请输出 0。
Input
第⼀⾏三个整数 n,m,p,s,t。接下来 m ⾏,每⾏两个整数 x,y,表⽰ x 到
y 有⼀条边。
Output
⼀⾏⼀个整数,答案除以 p 的余数。
4 5 1000 1 4
1 2
1 3
2 4
3 4
2 3
HINT
对于 30% 的数据, n; m ≤ 20。
对于 60% 的数据, n; m ≤ 1000。
对于 100% 的数据,n; m ≤ 10^6,1 ≤ s; t; x; y ≤ n2 ≤ p ≤ 10^8。