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

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

음모

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

요약
n명 사이의 상호 아는 관계 그래프가 주어질 때, 모든 사람을 공집합이 아닌 독립 집합(공모자)과 공집합이 아닌 클리크(지원단)로 나누는 방법의 수를 센다.
난이도

보통10점 중 7점

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

문제

적대국 비토티아가 바이트오티아를 기습 공격해 영토의 상당 부분을 점령했다. 바이트오티아의 왕 바이트아사르는 점령지에서 저항 운동을 조직하려 한다. 그는 먼저 저항 운동의 핵심이 될 사람들을 골랐고, 이들을 두 그룹으로 나누려고 한다.

  • 음모자 그룹: 점령지 안에서 직접 활동한다.
  • 지원 그룹: 자유 바이트오티아 안에서 활동한다.

이 분할은 다음 조건을 모두 만족해야 한다.

  • 지원 그룹에 속한 두 사람은 서로 반드시 아는 사이여야 한다. 그래야 그룹이 효율적으로 협력할 수 있다.
  • 음모자 그룹에 속한 두 사람은 서로 아는 사이가 아니어야 한다.
  • 두 그룹 모두 비어 있으면 안 된다. 즉 음모자와 지원 그룹 구성원이 각각 최소 한 명은 있어야 한다.

바이트아사르는 고른 사람들을 이 두 그룹으로 나누는 방법이 몇 가지인지, 그리고 무엇보다 그러한 분할이 가능하기는 한지 알고 싶어 한다. 그를 도와 이 수를 구하라.

입력

첫째 줄에 저항 운동에 참여하는 사람 수를 나타내는 정수 nn (2≤n≤50002 \le n \le 5000)이 주어진다. 사람들은 11번부터 nn번까지 번호가 매겨져 있다.

이어지는 nn개의 줄은 각 사람이 아는 사람을 설명한다. 그중 ii번째 줄은 먼저 사람 ii가 아는 사람의 수 kik_i (0≤ki≤n−10 \le k_i \le n-1)로 시작하고, 이어서 그 사람들의 번호 ai,1,ai,2,…,ai,kia_{i,1}, a_{i,2}, \dots, a_{i,k_i}가 오름차순으로 주어진다 (1≤ai,j≤n1 \le a_{i,j} \le n, ai,j≠ia_{i,j} \ne i).

아는 관계는 상호적이다. 즉 사람 xx가 사람 ii의 목록에 있으면, 사람 ii도 사람 xx의 목록에 있다.

출력

위 조건을 모두 만족하도록 고른 사람들을 음모자 그룹과 지원 그룹으로 나누는 방법의 수를 정수 하나로 출력한다. 조건을 만족하는 분할이 하나도 없으면 00을 출력한다.

힌트

위 예시에서는 유효한 분할이 세 가지 있다. 음모자 그룹은 11번과 44번, 22번과 44번, 또는 44번 한 명이 될 수 있다.

예제3

  1. 예제 1

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

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

    입력
    2
    0
    0
    
    예상 출력
    2