만드는 중입니다

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

Living Subgraph

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

요약
유도 부분 그래프가 연결되어 있고 어떤 한 정점을 지워도 연결 상태가 유지되는 최소 크기의 정점 집합을 찾는다.
난이도

어려움10점 중 8점

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

문제

이 문제에서는 ∣V∣=N|V| = N개의 정점과 ∣E∣=M|E| = M개의 간선을 가진 단순 무향 그래프 G=(V,E)G = (V, E)가 주어진다. GG의 유도 부분그래프란 GG의 정점 부분집합과, 양 끝점이 모두 그 부분집합에 속하는 간선들로 이루어진 그래프를 말한다.

W⊆VW \subseteq V이고 G[W]G[W]를 정점 집합 WW를 가지는 GG의 유도 부분그래프라 하자. G[W]G[W]가 living subgraph라는 것은 다음 조건을 모두 만족한다는 뜻이다. (1) 정점이 3개 이상이다. (2) 연결되어 있다. (3) 모든 u∈Wu \in W에 대해 G[W∖u]G[W \setminus u]가 연결되어 있다. 그래프가 연결되어 있다는 것은 그래프의 임의의 정점에서 모든 정점에 도달할 수 있다는 뜻이다. W∖uW \setminus u는 WW에서 uu를 제거한 집합을 나타낸다.

G[W]G[W]가 living subgraph가 되는 최소 크기의 집합 WW를 찾아, 정점의 개수만 출력하라. GG에 living subgraph가 존재하지 않으면 −1-1을 출력한다.

입력

입력의 첫 줄에는 두 정수 NN MM이 주어진다. (1≤N≤200001 \le N \le 20000; 0≤M≤200000 \le M \le 20000) NN은 그래프의 정점 수, MM은 간선 수이다. 다음 MM개의 줄에는 각각 두 정수 uu vv가 주어진다. (1≤u<v≤N1 \le u < v \le N) 이는 정점 uu와 vv를 잇는 간선을 나타낸다. 같은 간선은 주어진 목록에 최대 한 번만 나타난다.

출력

유도 부분그래프가 living subgraph가 되는 최소 정점 수를 한 줄에 출력한다. 주어진 그래프에 living subgraph가 존재하지 않으면 −1-1을 출력한다.

예제3

  1. 예제 1

    입력
    5 6
    1 2
    1 3
    1 5
    2 3
    3 4
    4 5
    
    예상 출력
    3
    
  2. 예제 2

    입력
    4 3
    1 2
    1 3
    3 4
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    7 8
    1 2
    1 3
    1 6
    2 4
    2 7
    3 5
    4 5
    5 7
    
    예상 출력
    4