Problem E
Connectedness
You are given an undirected graph $G=(V,E)$.
If you are drawing in the edges one by one, how many edges did you add when the graph becomes connected for the first time.
If the graph never becomes connected after drawing all the edges, output -1.
Here are some useful definitions:
-
A graph is connected if between any two vertices $u,v \in V$, you can reach $u$ from $v$ along a path of edges.
-
A graph is undirected if every edge from a vertex $u$ to a vertex $v$ allows travel from vertex $v$ to vertex $u$ as well.
Input
The input line of input contains two space-separated integers $N$ $(1 \leq N \leq 10^6)$ and $M$ $(0 \leq M \leq \min (10^6, \binom {N}{2}))$, the number of vertices and edges in the graph.
Each of the remaining $M$ lines contains two space-separated integers $u_i$ and $v_i$ $(1 \leq u_i, v_i \leq N)$, denoting an undirected edge from node $u_i$ to node $v_i$. No edge connects a node to itself, and there is at most one edge between any pair of nodes.
Output
Print either the number of edges that you added the first time graph becomes connected and -1 otherwise.
Sample Input 1 | Sample Output 1 |
---|---|
2 0 |
-1 |
Sample Input 2 | Sample Output 2 |
---|---|
1 0 |
0 |
Sample Input 3 | Sample Output 3 |
---|---|
7 11 1 4 1 5 1 6 1 7 2 3 3 4 3 5 3 6 4 7 5 6 6 7 |
6 |