만드는 중입니다

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

용의자와 목격자

면접 대비

시간 제한40초메모리 제한1024 MB

요약
손님들의 증언 목록과 도둑의 최대 인원 K가 주어질 때, 모든 가능한 경우에서 결백이 증명되는 손님 수를 구합니다.
난이도

보통10점 중 6점

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

문제

Ada는 생일 파티를 위해 쿠키를 구웠다. 파티에는 N\mathbf{N}명의 손님을 초대했고, 손님에게는 11번부터 N\mathbf{N}번까지 번호가 붙어 있다. 손님이 모두 도착해 파티가 막 시작되려는 순간, 끔찍한 일이 벌어졌다. 누군가 쿠키를 훔친 것이다.

Ada는 탐정 모자를 쓰고 손님들에게 질문한다. 그녀는 "손님 y\mathbf{y}는 쿠키를 훔치지 않았다."라는 형식의 목격 진술을 M\mathbf{M}개 모았다. 진술자는 손님 x이다.

Ada는 손님이 무죄(쿠키를 훔치지 않은 경우)라면 그 손님의 모든 진술이 참이어야 한다는 것을 안다. 다만 쿠키를 훔친 손님의 진술이 맞는지는 Ada가 알 수 없다.

제보자는 쿠키를 훔친 사람이 많아야 K\mathbf{K}명이라고 알려 주었다. 이 정보를 바탕으로 무죄임을 증명할 수 있는 손님이 몇 명인지 구하라.

쿠키를 실제로 훔친 손님이 없을 수도 있다. 그저 Ada가 구운 쿠키의 개수를 잊어버렸을 뿐일 수도 있다.

입력

입력의 첫 줄에는 테스트 케이스의 개수 T\mathbf{T}가 주어진다. 이어서 T\mathbf{T}개의 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 줄에는 세 정수 N\mathbf{N}, M\mathbf{M}, K\mathbf{K}가 주어진다. 각각 손님 수, 진술 수, 쿠키를 훔친 사람의 최대 수이다.

다음 M\mathbf{M}개의 줄은 진술을 나타낸다. ii번째 줄에는 두 정수 A_i\mathbf{A\_i}와 B_i\mathbf{B\_i}가 주어지며, 이는 손님 A_i\mathbf{A\_i}의 진술 "손님 B_i\mathbf{B\_i}는 쿠키를 훔치지 않았다."를 뜻한다.

출력

각 테스트 케이스마다 Case #$x$: $y$ 형식으로 한 줄을 출력한다. 여기서 xx는 테스트 케이스 번호(1부터 시작)이고, yy는 무죄임을 증명할 수 있는 손님의 수이다.

제한

  • 1≤T≤1001 \le \mathbf{T} \le 100.
  • 2≤N≤1052 \le \mathbf{N} \le 10^5.
  • 1≤M≤1051 \le \mathbf{M} \le 10^5.
  • 모든 ii에 대해 1≤A_i≤N1 \le \mathbf{A\_i} \le \mathbf{N}.
  • 모든 ii에 대해 1≤B_i≤N1 \le \mathbf{B\_i} \le \mathbf{N}.
  • 모든 ii에 대해 A_i≠B_i\mathbf{A\_i} \neq \mathbf{B\_i}.
  • 모든 i≠ji \neq j에 대해 (A_i,B_i)≠(A_j,B_j)(\mathbf{A\_i}, \mathbf{B\_i}) \neq (\mathbf{A\_j}, \mathbf{B\_j}).

예제1

  1. 예제 1

    입력
    2
    3 2 1
    1 2
    2 3
    3 3 1
    1 2
    2 3
    3 1
    
    예상 출력
    Case #1: 2
    Case #2: 3