#AT1141. 滑石迷

滑石迷

题目描述

Ken喜欢玩滑石迷游戏(日本的跳格子游戏)。

今天,他将在一个有向图GG上玩这个游戏。 GGNN个编号为11NN的顶点和MM条边组成。第ii条边从顶点uiu_i指向顶点viv_i

首先,Ken站在顶点SS上。他想通过重复滑石迷来到达顶点TT

在一次滑石迷中,他恰好做了以下三次:

沿着他所站顶点指向的边走。(意思就是每一次操作必须经过三条边)

确定是否能够通过重复滑石迷达到顶点工。

如果答案是肯定的,找到达到顶点工所需的最小滑石迷次数。

注意,在一次滑石迷中间路过顶点 TT 不算到终点。

输入

第一行两个整数N,MN,M

接下来一共MM行,表示第ii条边的两个顶点ui,viu_i,v_i

最后一行S,TS,T,表示起点和终点。

输出

如果Ken无法通过重复滑石迷从顶点SS到达顶点TT,则输出-1。

如果可以到达,输出达到顶点TT所需的最小滑石迷次数。

4 4
1 2
2 3
3 4
4 1
1 3
2

样例解释

Ken可以在两次滑石迷中从顶点1到达顶点3,过程如下:第一次滑石迷:1→2→3→4,第二次滑石迷:4 →1→2→3。这是所需要的最小滑石迷次数。

3 3
1 2
2 3
3 1
1 2
-1

样例解释

无论多少次滑石迷,Ken都会回到顶点 1,所以他不能到达顶点2,尽管他可以在一次滑石迷中经过顶点2。

2 0
1 2
-1

样例解释

顶点S和顶点TT可能不连通。

6 8
1 2
2 3
3 4
4 5
5 1
1 4
1 5
4 6
1 6
2

提示

2N105 2 \leq N \leq 10^5

0MMin(105,N(N1))0 \leq M \leq Min(10^5,N(N-1))

1ui,viN(1iM)1 \leq u_i,v_i \leq N(1 \leq i \leq M)

uivi(1iM)u_i \neq v_i(1 \leq i \leq M)

如果iji \neq j,(ui,vi)(uj,vj)(u_i,v_i) \neq (u_j,v_j)

1S,TN 1\leq S,T \leq N

ST S \neq T