문제
첫 번째 국제 거위 컨퍼런스가 막 끝났다. 행복한 행사여야 했지만, 씁쓸함이 남았다. 주최 측이 오리들의 침투 계획이 자세히 적힌 문서를 발견했기 때문이다. 이제 그들은 참석자들 중 침투한 무리를 찾아내려 한다.
발견된 문서에는 정수 3개로 이루어진
오리와 거위는 모두 최대 속도가 초당 1미터이다.
즉, 어떤 참석자가 시간
문서가 발견된 뒤, 그들은 오리들을 찾아내기 위해 질의응답 시간을 가졌다.
그 시간 동안 참석자들은 차례대로 진술을 하나씩 했다.
발표된 순서대로 j번째 진술은 참석자
거위의 진술은 항상 참이지만, 오리는 거짓말을 할 수 있다. 또한 오리들은 누가 오리이고 누가 거위인지 알고 있다. 쉽게 들키지 않기 위해, 오리들은 이전에 거위들이 했던 모든 진술과 양립할 수 있는 진술만 한다. 거위가 한 진술들은 모든 오리가 모든 오리 모임에 참석했다는 사실과도 양립함에 유의하라.
주어진 정보만으로 모든 오리를 확정할 수 없을 수도 있다. 하지만 오리의 최소 인원수라도 알 수 있다면, 오리 활동 수준에 대한 하한을 얻을 수 있다. 적어도 한 마리 이상의 오리가 있었음은 보장된다. 가능한 가설들 중 오리의 최소 인원수를 구하라.
형식적으로, 가설
- 모든
H -오리는 모든 오리 모임에 참석했고, S 안의 각 진술이 시간T 에 점P 에서A 가B 를 보았다고 주장한다면,A 와B 의 경로는 모두 시간T 에 점P 를 지난다.
가설
H -오리 집합이 비어 있지 않다 (즉, 적어도 한 마리 이상의 오리가 있었다),S 중에서H -거위가 한 진술들의 부분집합은H 와 일관적이다 (즉, 거위의 진술은 항상 참이다), 그리고H -오리가 한 각 진술s \in S 에 대해,P \subseteq S 를s 보다 먼저 나온H -거위의 진술들의 집합이라고 하자. 그러면 어떤 가설H' (이는H 와 같을 수도 있고 아닐 수도 있다)가 존재하여\{ s \} \cup P 가H' 와 일관적이다 (즉, 오리는 이전에 나온 거위의 진술을 모순시키지 않는다).
모든 참석자를
가능한 모든 가설
입력
입력의 첫 줄에는 테스트 케이스 수
출력
각 테스트 케이스마다 Case # 형식의 한 줄을 출력하라.
여기서
예제
2
2 1 2
1 2 3
1 2 1 1 1
2 1 2 2 2
4 2 4
4 3 10
-4 -3 20
1 3 4 3 11
2 4 0 0 16
3 1 6 3 9
4 2 0 0 16
Case #1: 1
Case #2: 2