6977.Graph Girth

Time Limit: 1s Memory Limit: 512MB

Given an undirected graph, your task is to determine its girth , i.e., the length of its shortest cycle.

Input Format(From the terminal/stdin)

The first input line has two integers $n$ and $m$ : the number of nodes and edges. The nodes are numbered $1,2,\dots,n$ .

After this, there are $m$ lines describing the edges. Each line has two integers $a$ and $b$ : there is an edge between nodes $a$ and $b$ .

You may assume that there is at most one edge between each two nodes.

  • $1 \le n \le 2500$
  • $1 \le m \le 5000$

Output Format(To the terminal/stdout)

Print one integer: the girth of the graph. If there are no cycles, print $-1$ .

Sample Input

Copy
5 6
1 2
1 3
2 4
2 5
3 4
4 5
 · \n
 · \n
 · \n
 · \n
 · \n
 · \n
 · \n

Sample Output

Copy
3
 \n
Source: CSES, Advanced Graph Problems, 1707

Submit

请先 登录

© 2025 FAQs