만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

그래프의 욱신함

면접 대비

시간 제한1초메모리 제한1024 MB

요약
무방향 그래프가 주어질 때 사이클이 생기도록 추가해야 하는 최소 간선 수를 구하고, 불가능하면 -1을 출력합니다.
난이도

쉬움10점 중 3점

유형
그래프, 유니온 파인드, 구현
정답자
아직 제출이 없습니다

문제

문제

algospot.com 본부에서 Toivoa "the chairman"이 Astein "the slave"에게 새로운 그래프 문제를 오랫동안 졸라 왔다. 그래서 Astein이 다음 문제를 냈다.

무방향 그래프 G(V,E)G(V, E)의 욱신함(Wooksin-ness)은 그래프에 사이클이 생기도록 추가해야 하는 간선의 최소 개수이다. 형식으로 쓰면 다음과 같다.

min⁡∣E′−E∣s.t.E′⊇E 이고 G′(V,E′)에는 사이클이 하나 이상 있다\min |E' - E| \quad \text{s.t.} \quad E' \supseteq E \text{ 이고 } G'(V, E') \text{에는 사이클이 하나 이상 있다}

단, 루프(시작점과 끝점이 같은 간선)와 같은 두 정점 사이의 중복 간선은 허용되지 않는다.

주어진 그래프의 욱신함을 계산하는 프로그램을 작성하라.

입력

입력

입력은 TT개의 테스트 케이스로 이루어진다. 첫 줄에 테스트 케이스의 개수 TT가 주어진다.

각 테스트 케이스의 첫 줄에는 두 정수 VV와 EE가 주어진다(1≤V≤1001 \le V \le 100, 0≤E≤10000 \le E \le 1000). VV는 정점의 개수이고 EE는 간선의 개수이다. 정점은 0부터 V−1V - 1까지 번호가 매겨져 있다. 이어지는 EE개의 줄에는 간선으로 연결된 두 정점의 번호가 각각 주어진다.

입력에는 루프가 없다. 두 정점 사이의 간선은 최대 하나이다.

출력

출력

각 테스트 케이스마다 한 줄에, 그래프에 사이클이 생기도록 추가해야 하는 간선의 최소 개수를 출력한다. 불가능하면 −1-1을 출력한다.

예제1

  1. 예제 1

    입력
    2
    3 2
    0 1
    2 0
    3 3
    0 1
    1 2
    2 0
    
    예상 출력
    1
    0