#ABC132E. 跳房子

跳房子

跳房子

题目描述

Ken 君非常喜欢跳房子。今天他决定在有向图 GG 上跳房子。

GG 有编号为 11NNNN 个顶点和 MM 条边,第 ii 条边从顶点 uiu_i 连到顶点 viv_i

Ken 君一开始在顶点 SS,想通过跳房子移动到顶点 TT

一次跳房子是指:「从自己当前所在顶点出发的边中选 1 条,沿着这条边移动到它所连接的顶点」这个操作连续进行正好 3 次。

请回答 Ken 君能否移动到顶点 TT,如果能,最少需要多少次跳房子才能移动到顶点 TT

注意:即使在跳房子操作的途中经过顶点 TT,也不算作「移动到了顶点 TT」。

输入格式

输入按以下格式从标准输入给出:

NN MM
u1u_1 v1v_1
::
uMu_M vMv_M
SS TT

输出格式

如果无论重复多少次跳房子都无法从顶点 SS 移动到顶点 TT,则输出 1-1

如果能够移动,则输出移动到顶点 TT 所需的最少跳房子次数。

样例

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

第 1 次跳房子按 12341 \rightarrow 2 \rightarrow 3 \rightarrow 4,第 2 次跳房子按 41234 \rightarrow 1 \rightarrow 2 \rightarrow 3 移动,可以到达顶点 33,这是最少的次数。


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

无论重复多少次跳房子,最终都会到达顶点 11,所以无法移动到顶点 22

虽然跳房子途中可以经过顶点 22,但这不算作移动到了顶点 22

2 0
1 2
-1

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

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

数据范围

  • 2N1052 \le N \le 10^5
  • 0Mmin(105,N(N1))0 \le M \le \min(10^5, N (N-1))
  • 1ui,viN1 \le u_i, v_i \le N (1iM)(1 \le i \le M)
  • uiviu_i \neq v_i (1iM)(1 \le i \le M)
  • iji \neq j,则 (ui,vi)(uj,vj)(u_i, v_i) \neq (u_j, v_j)
  • 1S,TN1 \le S, T \le N
  • STS \neq T
难度 提高
通过率 100%
尝试 1
已通过 1
ID
1738
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签