실행 시간 제한 | 메모리 제한 |
---|---|
2 초 | 512 MB |
베시와 그 친구 엘시는 '동물 맞추기'라는 게임을 좋아합니다.
처음에, 베시는 어떤 동물을 생각합니다(대부분의 경우, 이 동물은 암소로 게임이 다소 지루해지면 베시는 창의적으로 다른 것을 생각합니다). 그 후 엘시가 일련의 질문을 통해 베시가 선택한 동물이 무엇인지 알아내기 위해 진행합니다. 각 질문은 동물이 특정한 특성을 가지고 있는지 묻고, 베시는 각 질문에 '예' 또는 '아니요'로 대답합니다. 예를 들면:
Elsie: "Does the animal fly?"
Bessie: "No"
Elsie: "Does the animal eat grass?"
Bessie: "Yes"
Elsie: "Does the animal make milk?"
Bessie: "Yes"
Elsie: "Does the animal go moo?"
Bessie: "Yes"
Elsie: "In that case I think the animal is a cow."
Bessie: "Correct!"
우리가 엘시의 질문들로 지금까지 생각해본 동물들의 특성과 일치하는 모든 동물들의 집합을 '가능한 집합'이라고 부른다면, 엘시는 가능한 집합에 딱 하나의 동물만 남을 때까지 질문을 계속합니다. 그리고 그때 그 동물을 그녀의 답으로 발표합니다. 각 질문에서, 엘시는 가능한 집합에 있는 어떤 동물의 특성을 선정해 질문합니다(그 특성이 그녀가 가능한 집합을 더 좁혀나가는 데 도움이 되지 않을지라도). 그녀는 같은 특성에 대해 두 번 질문하지 않습니다.
베시와 엘시가 알고 있는 모든 동물들과 그들의 특성을 고려하면, 엘시가 올바른 동물을 알아내기 전에 받을 수 있는 '예' 응답의 최대 수를 결정해 주십시오.
입력의 첫 줄에는 동물의 수, ()이 주어집니다. 다음 줄 각각은 동물을 설명합니다. 줄은 동물의 이름으로 시작하고, 그 다음에는 정수 (), 그 다음에는 그 동물의 가지 특성이 따릅니다. 동물의 이름과 특성은 최대 20개의 소문자(a..z)로 이루어진 문자열입니다. 두 동물이 정확히 같은 특성을 갖는 경우는 없습니다.
게임이 끝나기 전에 엘시가 받을 수 있는 '예' 응답의 최대 수를 출력해 주십시오.
4 bird 2 flies eatsworms cow 4 eatsgrass isawesome makesmilk goesmoo sheep 1 eatsgrass goat 2 makesmilk eatsgrass
3
이 예시에서, 엘시가 위에서 언급한 3개의 '예' 응답을 생성할 수 있으며, 이보다 많은 '예' 응답을 생성할 수 없습니다.
출처: USACO 2019 January Contest, Bronze Problem 3. Guess the Animal