已结束 GESP巅峰赛#34

A7374 | 午枫的城市路线

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

在一座城市中,有 $N$ 个路口,编号为 $1 \sim N$。
城市中共有 $M$ 条单向道路,每条道路 $(a_i, b_i)$ 表示可以从路口 $a_i$ 直接前往路口 $b_i$。

这些道路构成了一张有向图。现在,小午从路口 $1$ 出发,他想知道:是否存在一条路径,能够从路口 $1$ 出发,沿着道路前进,最终又回到路口 $1$?这样的路径称为一个回环路线(即起点和终点相同的路径)。

如果存在这样的回环路线,请你输出所有包含路口 $1$ 的回环中,边数最少的那一条的长度;
如果不存在这样的回环,则输出 $-1$。

输入格式

第一行输入两个整数 $N, M$,表示路口数量和道路数量;

接下来 $M$ 行,每行两个整数 $a_i, b_i$,表示一条从路口 $a_i$ 指向路口 $b_i$ 的单向道路。

输出格式

如果存在包含路口 $1$ 的回环,输出其最少边数;否则输出 $-1$。

输入输出样例

输入 #1
3 3
1 2
2 3
3 1
输出 #1
3
C++ 编辑器
输入
输出