Avant la découverte des empreintes digitales et des tests ADN, la police britannique a utilisé un système anthropométrique pour identifier les récidivistes. Certaines parties du corps des criminels ont été mesurées et stockées dans des dossiers - ces parties du corps ne devaient pas changer de taille après l'âge adulte. Ce système était connu sous le nom de bertillonnage .
Le diagramme ci-dessous montre un système de classement utilisé par la police pour accéder rapidement à ces dossiers.
Schéma 1: Un système de classement avec tiroirs numérotés.
Remarque: si vous ne pouvez pas voir l'image, essayez le miroir imgur ou compilez-le vous-même .
Le classeur se compose de 81 tiroirs numérotés. Chaque tiroir contient des cartes, et chaque carte a des mesures de parties particulières du corps d'un criminel:
- La longueur de leur tête (
H) - L'étendue de leur tête (
B) - La largeur de leur oreille droite (
E) - La longueur de leur index (
F)
Chaque mesure est classée comme petite, moyenne ou grande.
Par exemple, le tiroir 56 contient des cartes avec les caractéristiques suivantes: petite H, un grand B, E moyen et petit F. Cela peut être transcrite en utilisant les lettres S, Met Là la place des petites, moyennes et grandes:
SH,LB,ME,SF
Notez que la lettre de taille va d'abord, puis quelle est la mesure. De plus, un point d'exclamation !peut être placé devant pour provoquer un négatif:
!SH,LB,!ME,SF
Cela indique des cartes qui ont les caractéristiques suivantes: pas petit H, grand B, pas moyen E et petit F. Il y a quatre tiroirs qui contiennent des cartes avec ces caractéristiques - 58, 60, 61 et 63.
Votre tâche consiste à écrire un programme qui, lorsqu'il reçoit une chaîne notant certaines caractéristiques, génère tous les tiroirs contenant des cartes avec ces caractéristiques. S'il n'y a pas de tiroirs contenant des cartes avec les caractéristiques données, sortez 0.
Voici quelques exemples d'entrées et de sorties.
- Entrée:
SH,LB,ME,SF
Sortie:56 - Entrée:
!SH,LB,!ME,SF
Sortie:58,60,61,63 - Entrée:
SB,!MF,!LF
Sortie:1,2,3,4,5,6,7,8,9 - Entrée:
MH,!MH
Sortie:0
C'est le golf de code, donc l'entrée la plus courte gagne. Posez des questions dans les commentaires si la spécification n'est pas claire.