당신은 광범위한 적 스파이 네트워크를 싸우고 있습니다. 각 스파이에는 사용하기를 원하는 하나 이상의 가짜 신원이 있을 수 있습니다. 당신은 실제로 얼마나 많은 스파이를 상대하고 있는지 알고 싶습니다.
운 좋게도, 당신의 반 지능 요원 들이 그들의 일을하고 있고 때로는 두 명의 가짜 신원이 실제로 같은 적 스파이에 의해 통제되는 시점을 알아낼 수 있습니다 .
즉 말하자면:
- 에이전트는 두 명의 가짜 신원이 그들 뒤에 동일한 스파이를 가지고 있는지 항상 알지 못합니다.
- 에이전트가 두 명의 가짜 신원이 동일한 스파이에 의해 제어된다고 말하면 그들이 옳다는 것을 믿습니다.
에이전트 메시지
에이전트는 비밀 메시지를 보내 어떤 스파이어와 동일한 스파이를 가지고 있는지 알려줍니다. 예를 들면 :
당신은 이 에이전트 와 5 명 가짜 신원 을 처리 할 수 있습니다.
첫 번째 상담원이 메시지를 보냅니다.
Red Red Blue Orange Orange
이것은 그들이 3 명의 스파이가 있다고 생각한다는 것을 의미합니다 :
- 첫 번째 (빨간색)는 ID 1과 2를 제어합니다.
- 두 번째 (파란색)는 ID 3을 제어합니다.
- 세 번째 (주황색)는 ID 4와 5를 제어합니다.
두 번째 에이전트는 다음과 같은 메시지를 보냅니다.
cat dog dog bird fly
즉, 그들은 4 명의 스파이가 있다고 생각합니다.
- 첫 번째 (고양이)는 정체성을 제어 1
- 두 번째 (개)는 신원 2와 3을 통제합니다
- 세 번째 (조류)는 정체성을 통제한다 4
- 네 번째 (비행)는 정체성 5를 통제한다
인텔을 컴파일하면 다음과 같습니다.
Identities: id1 id2 id3 id4 id5
Agent 1: |--same-spy--| |--same-spy--|
Agent 2: |--same-spy--|
Conclusion: |-----same-spy------||--same-spy--|
이것은 최대 2 명의 스파이 가 있음을 의미 합니다.
노트
동일한 스파이가 소유 한 ID는 연속적 일 필요는 없습니다.
dog cat dog
유효합니다.
또한 동일한 단어가 두 개의 다른 에이전트에 의해 사용될 수 있습니다. 즉, 아무 의미도 없으며, 우연의 일치입니다.
Agent 1: Steam Water Ice
Agent 2: Ice Ice Baby
얼음은 두 요원이 Ice사용합니다. 첫 번째 요원이 Ice사용한 것은 두 번째 요원 이 사용한 두 가지 발생과 관련이 없습니다 .
도전
모든 요원의 정보를 수집하고 얼마나 많은 적 스파이가 있는지 알아 내십시오. (정확한 정보를 얻으려면 가장 정확한 상한을 얻으십시오.)
바이트 단위의 가장 짧은 코드가 이깁니다.
입력 및 출력 사양
입력은 에이전트의 n 메시지를 나타내는 n 줄의 목록입니다. 각 줄은 공백으로 구분 된 k 개의 토큰으로 구성되며 모든 줄에 대해 같은 k입니다. 토큰은 영숫자, 임의 길이입니다. 사건이 중요합니다.
출력은 에이전트의 인텔을 기준으로 고유 한 스파이 수를 나타내는 단일 숫자 여야합니다.
예
실시 예 1
입력:
Angel Devil Angel Joker Thief Thief
Ra Ra Ras Pu Ti N
say sea c c see cee
산출:
2
실시 예 2
입력:
Blossom Bubbles Buttercup
Ed Edd Eddy
산출:
3
실시 예 3
입력:
Botswana Botswana Botswana
Left Middle Right
산출:
1
실시 예 4
입력:
Black White
White Black
산출:
2
실시 예 5
입력:
Foo Bar Foo
Foo Bar Bar
산출:
1
실시 예 6
입력:
A B C D
A A C D
A B C C
A B B D
산출:
1
실시 예 7
입력:
A B A C
산출:
3
실시 예 8
입력:
A
B
C
산출:
1
실시 예 9
입력:
X
산출:
1