안전 등급

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

요약
다중 간선을 가진 그래프에서 연결되어 있지 않거나 정점이 0,1개면 0이고 아니면 최소 절단 간선 수(엣지 연결도)를 구하는 문제입니다.
난이도

보통10점 중 6점

유형
그래프, 수학
정답자
아직 제출이 없습니다

문제

케이블 네트워크의 여러 지점(site)이 케이블로 서로 연결되어 있습니다. 하나의 케이블은 서로 다른 두 지점을 연결하며, 같은 두 지점 사이에 여러 개의 케이블이 있을 수도 있습니다. 네트워크 안의 임의의 두 지점이 직접 또는 간접적으로 연결되어 있으면 그 네트워크는 연결되어 있다고 하고, 그렇지 않으면 분리되어 있다고 합니다. 네트워크의 안전 등급 SS 는 다음과 같이 정의됩니다.

  • 네트워크가 분리되어 있거나 지점의 수가 00개 또는 11개이면 S=0S = 0 입니다.
  • 지점의 수가 11보다 크면, SS 는 제거했을 때 네트워크를 분리시키는 케이블의 최소 개수입니다. 즉, 어떤 S−1S-1개의 케이블을 제거해도 네트워크는 연결된 상태로 남지만, 적절한 SS개의 케이블을 제거하면 네트워크가 분리됩니다.

예를 들어, 지점 0,…,40, \dots, 4 로 이루어지고 케이블이 (0,1)(0,1)(두 개), (1,3)(1,3), (2,3)(2,3)(두 개), (0,2)(0,2), (2,4)(2,4)(두 개)인 네트워크를 생각해 봅시다. 이 네트워크는 어떤 케이블 하나를 제거해도 연결된 상태를 유지하지만, 케이블 (0,2)(0,2)와 (1,3)(1,3)을 제거하면 분리됩니다. 또 다른 방법으로는 (2,4)(2,4) 케이블 두 개를 모두 제거하는 것이 있습니다. 따라서 이 네트워크의 안전 등급은 S=2S = 2 입니다.

여러 개의 데이터 집합을 읽어 각 데이터 집합이 나타내는 케이블 네트워크의 안전 등급을 계산하는 프로그램을 작성하세요.

입력

각 데이터 집합은 두 정수로 시작합니다. 네트워크의 지점 수 0≤n≤1000 \le n \le 100 과 케이블 수 0≤m≤10000 \le m \le 1000 입니다. 이어서 mm개의 데이터 쌍 (u,v)(u, v) 가 주어지며, u<vu < v 이고 uu와 vv는 지점 번호(00부터 n−1n-1까지의 정수)입니다. 쌍 (u,v)(u, v)는 지점 uu와 vv를 연결하는 케이블을 나타냅니다. 쌍은 임의의 순서로 나타날 수 있습니다. 공백을 포함하지 않는 (u,v)(u, v) 쌍을 제외하면, 입력의 어디에나 공백이 자유롭게 나타날 수 있습니다. 입력은 파일의 끝(EOF)에서 종료되며, 입력 데이터는 항상 올바릅니다.

출력

각 데이터 집합에 대해, 인코딩된 네트워크의 안전 등급을 한 줄의 시작 위치에 출력하세요.

힌트

예시에서 첫 번째 데이터 집합은 빈 네트워크를, 두 번째는 지점 2개와 케이블 1개로 이루어진 네트워크를, 세 번째는 지점 2개로 이루어진 분리된 네트워크를, 네 번째는 위에서 설명한 다섯 지점짜리 네트워크를 나타냅니다.

예제5

  1. 예제 1

    입력
    0 0
    2 1 (0,1)
    2 0
    5 8 (0,1) (1,3) (2,3) (0,2) (0,1) (2,3) (2,4) (2,4)
    
    예상 출력
    0
    1
    0
    2
    
  2. 예제 2

    입력
    3 3 (0,1) (1,2) (0,2)
    
    예상 출력
    2
    
  3. 예제 3

    입력
    3 2 (0,1) (1,2)
    
    예상 출력
    1
    
  4. 예제 4

    입력
    1 0
    
    예상 출력
    0
    
  5. 예제 5

    입력
    0 0
    
    예상 출력
    0