あなたは敵のスパイの大規模なネットワークと戦っています。各スパイには、使用したい偽のIDが少なくとも1つ(場合によっては複数)あることがわかっています。実際に何人のスパイを扱っているのか知りたいのです。
幸いなことに、あなたの反知能エージェントは仕事をしていて、2つの偽のアイデンティティが実際に同じ敵スパイによって実際に制御されていることを把握できる場合があります。
それは言うことです:
- エージェントは、2つの偽のIDの背後に同じスパイがあることを常に把握しているわけではありませんが、
- 2つの偽のIDが同じスパイによって制御されているとエージェントから言われた場合、あなたはそれらが正しいと信じます。
エージェントメッセージ
エージェントは、どのIDが同じスパイを背後に持っているかを伝える不可解なメッセージを送信します。例:
あなたは持っている2つのエージェントと5つの偽のIDをに対処します。
最初のエージェントがメッセージを送信します:
Red Red Blue Orange Orange
これは、3つのスパイがいると考えることを意味します。
- 最初の(赤)はID 1と2を制御します
- 2番目(青)はID 3を制御します
- 3番目(オレンジ)はID 4と5を制御します
2番目のエージェントがメッセージを送信します。
cat dog dog bird fly
これは、4人のスパイがいると考えることを意味します。
- 最初の1つ(猫)がIDを制御します1
- 2番目(犬)はID 2と3を制御します
- 3番目(鳥)はID 4を制御します
- 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
有効です。
また、同じ単語が2つの異なるエージェントによって使用される可能性があります-それは何も意味せず、単なる偶然です、例えば:
Agent 1: Steam Water Ice
Agent 2: Ice Ice Baby
氷は両方のエージェントによって使用されます- Ice
最初のエージェントIce
によって使用されることは、2番目のエージェントによって使用される2つの発生とは無関係です。
チャレンジ
すべてのエージェントのインテルをコンパイルし、実際に存在する敵スパイの数を把握します。(より正確には、情報が限られていることを前提に、最低の上限を取得します。)
バイト単位の最短コードが優先されます。
入出力仕様
入力は、エージェントからの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