동물 맞히기
시간 제한2초메모리 제한512 MB
N마리 동물과 각각의 특징이 주어질 때, 질문으로 한 마리만 남을 때까지 엘시가 들을 수 있는 '예' 답변의 최댓값을 구한다.
문제
평소 하던 야바위 놀이가 지겨워진 암소 Bessie와 친구 Elsie는 "동물 맞히기"라는 또 다른 흔한 놀이를 즐긴다.
먼저 Bessie가 어떤 동물을 마음속으로 정한다(대부분은 소라서 게임이 좀 시시하지만, Bessie가 창의적으로 나서면 다른 동물일 때도 있다). 그러면 Elsie가 질문을 이어 가며 Bessie가 무엇을 골랐는지 알아낸다. 각 질문은 그 동물이 특정한 특징을 가지고 있는지 묻는 것이고, Bessie는 모든 질문에 "yes" 또는 "no"로 답한다. 예를 들어:
Elsie: "그 동물은 날아?
Bessie: "아니"
Elsie: "그 동물은 풀을 먹어?"
Bessie: "응"
Elsie: "그 동물은 우유를 만들어?"
Bessie: "응"
Elsie: "그 동물은 음매 하고 울어?"
Bessie: "응"
Elsie: "그러면 그 동물은 소인 것 같아."
Bessie: "정답!"
지금까지 Elsie의 질문과 모순되지 않는 모든 동물의 집합을 "가능 집합"이라 하면, Elsie는 가능 집합에 동물이 하나만 남을 때까지 질문을 계속하고, 그다음 그 동물을 답으로 말한다. 각 질문에서 Elsie는 가능 집합에 속한 어떤 동물의 특징 하나를 골라 묻는다(그 특징이 가능 집합을 더 좁히는 데 도움이 되지 않더라도 상관없다). 같은 특징을 두 번 묻지는 않는다.
Bessie와 Elsie가 아는 모든 동물과 그 특징이 주어질 때, Elsie가 정답을 알기 전까지 받을 수 있는 "yes" 답변의 최대 개수를 구하여라.
입력
첫째 줄에 동물의 수 이 주어진다(). 다음 개의 줄에 각각 동물 하나가 주어진다. 줄은 동물 이름으로 시작하고, 그다음 정수 (), 그다음 그 동물의 특징 개가 이어진다. 동물 이름과 특징은 길이 20 이하의 알파벳 소문자(a..z)로 이루어진 문자열이다. 특징이 완전히 같은 동물 두 마리는 없다.
출력
게임이 끝나기 전까지 Elsie가 받을 수 있는 "yes" 답변의 최대 개수를 출력하여라.
힌트
이 예에서 Elsie는 "yes" 답변이 3개인 대화 기록을 만들 수 있고(위의 예), "yes" 답변이 3개를 넘는 대화 기록은 만들 수 없다.