Wooksin-ness of A Graph
면접 대비시간 제한1초메모리 제한1024 MB
단순 무방향 그래프가 주어질 때 사이클이 생기도록 추가해야 하는 최소 간선 수를 구하고, 간선을 더 넣을 수 없으면 -1을 출력한다.
문제
At the headquarters of algospot.com, Toivoa “the chairman” has been pestering Astein “the slave” for a new graph problem for so long. So Astein came up with the following problem.
Wooksin-ness(욱신함) of an undirected graph is defined as the minimum number of additional edges in order to have a cycle in the graph. Stated formally, you can write it as:
and has at least one cycle
However, loops (edges that start and end at the same vertex) and multiple edges between a single pair of vertices are not allowed.
Write a program that calculates Wooksin-ness of given graph.
입력
The input consists of test cases. The number of test cases is given in the first line of the input.
The first line of each test case contains two integers and (, ), where represents the number of vertices in the graph, and represents the number of edges. The vertices are numbered from to . The following lines will each contain two integers, which are the number of two vertices connected by an edge.
There will be no loops in the input data. There will be at most one edge between a pair of vertices.
출력
Print exactly one line for each test case. The line should contain an integer indicating the minimum number of additional edges we need to add to the graph to get a cycle. If this is impossible, print -1 instead.