Vous combattez un vaste réseau d' espions ennemis . Vous savez que chaque espion a au moins une (parfois plusieurs) fausses identités qu’ils aiment utiliser. Vous aimeriez vraiment savoir à combien d'espions vous avez réellement affaire.
Heureusement, vos agents de contre-espionnage font leur travail et peuvent parfois déterminer si deux fausses identités sont réellement contrôlées par le même espion ennemi.
C'est-à-dire:
- Vos agents ne savent pas toujours quand deux fausses identités ont le même espion derrière elles, cependant
- Si un agent vous dit que deux fausses identités sont contrôlées par le même espion, vous avez l’impression qu’elles ont raison.
Messages de l'agent
Les agents vous envoient des messages cryptés vous indiquant quelles identités ont le même espion derrière elles. Un exemple:
Vous avez 2 agents et 5 fausses identités à traiter.
Le premier agent vous envoie un message:
Red Red Blue Orange Orange
Cela signifie qu'ils pensent qu'il y a 3 espions:
- le premier (en rouge) contrôle les identités 1 et 2
- le second (bleu) contrôle l'identité 3
- le troisième (Orange) contrôle les identités 4 et 5
Le deuxième agent vous envoie un message:
cat dog dog bird fly
Cela signifie qu'ils pensent qu'il y a 4 espions:
- le premier (chat) contrôle l'identité 1
- le second (chien) contrôle les identités 2 et 3
- le troisième (oiseau) contrôle l'identité 4
- le quatrième (mouche) contrôle l'identité 5
En compilant les informations, nous voyons:
Identities: id1 id2 id3 id4 id5
Agent 1: |--same-spy--| |--same-spy--|
Agent 2: |--same-spy--|
Conclusion: |-----same-spy------||--same-spy--|
Cela signifie qu'il y a au plus 2 espions .
Remarques
Les identités appartenant au même espion ne doivent pas nécessairement être consécutives, c’est-à-dire un message du type:
dog cat dog
est valable.
En outre, le même mot peut être utilisé par deux agents différents - cela ne veut rien dire, c'est juste une coïncidence, par exemple:
Agent 1: Steam Water Ice
Agent 2: Ice Ice Baby
La glace est utilisée par les deux agents - l’ Ice
utilisation par le premier agent n’est pas liée aux deux occurrences de celle Ice
utilisée par le deuxième agent.
Défi
Compilez l'intelligence de tous vos agents et déterminez le nombre d'espions ennemis. (Pour être plus précis, obtenez la limite supérieure la plus basse compte tenu des informations limitées dont vous disposez.)
Le code le plus court en octets gagne.
Spécifications d'entrée et de sortie
L'entrée est une liste de n lignes, qui représentent n messages des agents. Chaque ligne est composée de k jetons séparés par des espaces, le même k pour toutes les lignes. Les jetons sont alphanumériques, de longueur arbitraire. L'affaire compte.
Le résultat devrait être un nombre unique, représentant le nombre d'espions distincts, basé sur les informations de vos agents.
Exemples
Exemple 1
Contribution:
Angel Devil Angel Joker Thief Thief
Ra Ra Ras Pu Ti N
say sea c c see cee
Sortie:
2
Exemple 2
Contribution:
Blossom Bubbles Buttercup
Ed Edd Eddy
Sortie:
3
Exemple 3
Contribution:
Botswana Botswana Botswana
Left Middle Right
Sortie:
1
Exemple 4
Contribution:
Black White
White Black
Sortie:
2
Exemple 5
Contribution:
Foo Bar Foo
Foo Bar Bar
Sortie:
1
Exemple 6
Contribution:
A B C D
A A C D
A B C C
A B B D
Sortie:
1
Exemple 7
Contribution:
A B A C
Sortie:
3
Exemple 8
Contribution:
A
B
C
Sortie:
1
Exemple 9
Contribution:
X
Sortie:
1