도로 건설

면접 대비

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

요약
연결된 무방향 그래프가 주어질 때, 어떤 간선 하나를 제거해도 그래프가 연결 상태를 유지하도록 최소 개수의 간선을 추가하는 문제입니다.
난이도

보통10점 중 7점

유형
그래프, DFS, 그리디, 구현
정답자
아직 제출이 없습니다

문제

이제 곧 여름, 곧 여름 도로 공사철이 다가온다! 올해 열대 섬 낙원 리모트 섬(Remote Island)의 도로를 책임지는 사람들은 섬의 여러 관광 명소를 잇는 도로들을 보수하고 개량하려 한다.

이 도로들에는 흥미로운 점이 있다. 섬의 독특한 관습 때문에 도로는 교차로에서 만나지 않고, 다리와 터널을 이용해 서로 위아래로 지나간다. 따라서 각 도로는 두 관광 명소를 직접 잇기만 하며, 관광객이 길을 잃는 일이 없다.

그런데 보수·개량 공사의 특성상, 공사 업체가 어떤 도로를 작업하는 동안에는 그 도로를 양방향 모두 이용할 수 없다. 업체가 한 번에 도로 하나만 작업하더라도, 그 때문에 두 명소 사이를 오갈 수 없게 된다면 문제가 된다.

이를 막기 위해 도로부는 새 도로를 몇 개 건설하기로 했다. 최종 구성에서 어떤 도로 하나가 공사 중이더라도 남은 도로만으로 임의의 두 명소 사이를 오갈 수 있어야 한다. 새로 건설해야 하는 도로의 최소 개수를 구하여라.

입력

첫째 줄에 공백으로 구분된 두 양의 정수 nn과 rr이 주어진다. 여기서 3≤n≤10003 \le n \le 1000은 섬의 관광 명소 수이고, 2≤r≤10002 \le r \le 1000은 도로 수이다. 관광 명소는 11부터 nn까지 번호가 매겨져 있다.

다음 rr개의 줄에는 각각 공백으로 구분된 두 정수 vv와 ww가 주어지며, 이는 명소 vv와 ww 사이에 도로가 있음을 뜻한다. 각 도로는 양방향으로 통행할 수 있고, 임의의 두 명소 사이에는 도로가 최대 하나만 직접 존재한다. 또한 현재 구성에서 임의의 두 명소 사이를 오갈 수 있음이 보장된다.

출력

추가해야 하는 도로의 최소 개수를 나타내는 정수 하나를 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    10 12
    1 2
    1 3
    1 4
    2 5
    2 6
    5 6
    3 7
    3 8
    7 8
    4 9
    4 10
    9 10
    
    예상 출력
    2
    
  2. 예제 2

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