아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

논리학자

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

요약
노드 n개와 간선 n개로 이루어진 연결 무방향 그래프에서 모든 노드가 집합 안의 이웃을 정확히 하나만 갖도록 하는 최소 크기 노드 집합을 구하고, 없으면 -1을 출력한다.
난이도

보통10점 중 7점

유형
그래프, 동적 계획법, 트리, 그리디
정답자
아직 제출이 없습니다

문제

완벽한 논리학자 무리가 다시 새로운 논리 퍼즐의 주인공이 되어 달라는 요청을 받았다. 이번에는 그들 중 어떤 nn명이 참가할지 정해야 한다.

이번 논리 퍼즐은 nn개의 노드와 nn개의 간선을 가진 무방향 그래프에서 펼쳐진다. 각 간선은 서로 다른 두 노드를 연결하며, 어느 두 노드 사이에도 간선은 많아야 하나뿐이다. 또한 그래프는 연결되어 있다. 즉, 간선을 따라가면 어떤 노드에서든 다른 어떤 노드로도 갈 수 있다. 각 노드에는 논리학자 한 명이 위치하며, 각 논리학자는 자신의 노드와 간선으로 연결된 노드에 있는 논리학자만을 볼 수 있다.

그들은 이미 함정이 눈 색깔과 관련되어 있을 것이라고 짐작하고, 각 논리학자가 눈이 파란 사람을 정확히 한 명 보도록 배치하기로 했다. 늘 그렇듯 논리학자는 자신의 눈 색깔을 볼 수 없으므로, 눈이 파란 논리학자도 눈이 파란 사람을 정확히 한 명 보아야 한다.

요구되는 배치를 만들기 위해 필요한 눈이 파란 논리학자의 최소 수는 얼마인가?

입력

첫째 줄에 그래프의 노드 수이자 논리학자의 수인 정수 nn이 주어진다.

다음 nn개 줄에는 그래프의 간선을 나타내는 정수 쌍이 주어진다. 각 간선은 서로 다른 두 노드를 연결하며, 같은 간선이 입력에 두 번 나오지 않는다.

출력

요구되는 배치가 존재하지 않으면 첫째 줄에 -1을 출력한다.

그렇지 않으면 첫째 줄에 필요한 눈이 파란 논리학자의 최소 수를 출력한다.

제한

모든 부분문제에서 3≤n≤100 0003 \le n \le 100\,000이다.

힌트

첫 번째 예제 해설: 눈이 파란 논리학자는 예를 들어 노드 1과 2에 있는 사람일 수 있다.

두 번째 예제 해설: 논리학자 한 명만 눈이 파랗다면 그 사람은 눈이 파란 다른 사람을 볼 수 없다. 눈이 파란 사람이 둘 이상이라면 누군가는 눈이 파란 사람을 둘 이상 보게 된다.

예제3

  1. 예제 1

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

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

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