Estás luchando contra una extensa red de espías enemigos . Sabes que cada espía tiene al menos una (a veces múltiples) identidades falsas que les gusta usar. Realmente te gustaría saber con cuántos espías estás lidiando realmente.
Afortunadamente, tus agentes de contrainteligencia están haciendo su trabajo y, a veces, pueden descubrir cuándo dos identidades falsas son controladas por el mismo espía enemigo.
Es decir:
- Sin embargo, sus agentes no siempre saben cuándo dos identidades falsas tienen el mismo espía detrás de ellos.
- Si un agente le dice que dos identidades falsas están controladas por el mismo espía, usted confía en que tienen razón.
Mensajes del agente
Los agentes le envían mensajes crípticos que le dicen qué identidades tienen el mismo espía detrás de ellos. Un ejemplo:
Tienes 2 agentes y 5 identidades falsas para tratar.
El primer agente te envía un mensaje:
Red Red Blue Orange Orange
Esto significa que piensan que hay 3 espías:
- el primero (rojo) controla las identidades 1 y 2
- el segundo (Azul) controla la identidad 3
- el tercero (Naranja) controla las identidades 4 y 5
El segundo agente te envía un mensaje:
cat dog dog bird fly
Esto significa que piensan que hay 4 espías:
- el primero (gato) controla la identidad 1
- el segundo (perro) controla las identidades 2 y 3
- el tercero (pájaro) controla la identidad 4
- el cuarto (mosca) controla la identidad 5
Compilando la información que vemos:
Identities: id1 id2 id3 id4 id5
Agent 1: |--same-spy--| |--same-spy--|
Agent 2: |--same-spy--|
Conclusion: |-----same-spy------||--same-spy--|
Esto significa que hay como máximo 2 espías .
Notas
Las identidades propiedad del mismo espía no tienen que ser consecutivas, es decir, un mensaje como:
dog cat dog
es válido.
Además, dos agentes diferentes pueden usar la misma palabra; eso no significa nada, es solo una coincidencia, por ejemplo:
Agent 1: Steam Water Ice
Agent 2: Ice Ice Baby
El hielo es usado por ambos agentes: el Iceusado por el primer agente no está relacionado con las dos ocurrencias del Iceusado por el segundo agente.
Reto
Recopila la información de todos tus agentes y calcula cuántos espías enemigos hay realmente. (Para ser más precisos, obtenga el límite superior más bajo, dada la información limitada que tiene).
El código más corto en bytes gana.
Especificaciones de entrada y salida
La entrada es una lista de n líneas, que representan n mensajes de agentes. Cada línea consta de k fichas separadas por espacios, la misma k para todas las líneas. Los tokens son alfanuméricos, de longitud arbitraria. El caso importa.
El resultado debe ser un número único, que represente el número de espías distintos, según la información de sus agentes.
Ejemplos
Ejemplo 1
Entrada:
Angel Devil Angel Joker Thief Thief
Ra Ra Ras Pu Ti N
say sea c c see cee
Salida:
2
Ejemplo 2
Entrada:
Blossom Bubbles Buttercup
Ed Edd Eddy
Salida:
3
Ejemplo 3
Entrada:
Botswana Botswana Botswana
Left Middle Right
Salida:
1
Ejemplo 4
Entrada:
Black White
White Black
Salida:
2
Ejemplo 5
Entrada:
Foo Bar Foo
Foo Bar Bar
Salida:
1
Ejemplo 6
Entrada:
A B C D
A A C D
A B C C
A B B D
Salida:
1
Ejemplo 7
Entrada:
A B A C
Salida:
3
Ejemplo 8
Entrada:
A
B
C
Salida:
1
Ejemplo 9
Entrada:
X
Salida:
1