Antes del descubrimiento de las huellas digitales y las pruebas de ADN, la policía británica utilizó un sistema antropométrico para identificar a los delincuentes reincidentes. Ciertas partes de los cuerpos de los delincuentes se midieron y almacenaron en registros; se supuso que estas partes del cuerpo no cambiarían de tamaño después de la edad adulta. Este sistema se conocía como bertillonnage .
El siguiente diagrama muestra un sistema de archivo utilizado por la policía para acceder a estos registros rápidamente.
Diagrama 1: Un sistema de archivo con cajones numerados.
Nota: si no puede ver la imagen, pruebe el espejo imgur o compílelo usted mismo .
El archivador consta de 81 cajones numerados. Cada cajón contiene cartas, y cada carta tiene medidas de partes particulares del cuerpo de un criminal:
- La longitud de su cabeza (
H
) - La anchura de su cabeza (
B
) - El ancho de su oreja derecha (
E
) - La longitud de su dedo índice (
F
)
Cada medida se clasifica como pequeña, mediana o grande.
Por ejemplo, el cajón 56 contiene tarjetas con las siguientes características: pequeña H, B grandes, medio E, y pequeña F. Esto se puede notated usando las letras S
, M
y L
en lugar de pequeñas, medianas y grandes:
SH,LB,ME,SF
Tenga en cuenta que la letra de tamaño va primero, luego cuál es la medida. Además, !
se puede colocar un signo de exclamación delante para causar un negativo:
!SH,LB,!ME,SF
Esto indica cartas que tienen las siguientes características: no pequeña H, grande B, no mediana E y pequeña F. Hay cuatro cajones que contienen cartas con estas características: 58, 60, 61 y 63.
Su tarea es escribir un programa que, cuando se le da una cadena que anota algunas características, genera todos los cajones que contienen tarjetas con esas características. Si no hay cajones que contengan cartas con las características dadas, salida 0
.
Aquí hay algunas entradas y salidas de muestra.
- Entrada:
SH,LB,ME,SF
Salida:56
- Entrada:
!SH,LB,!ME,SF
Salida:58,60,61,63
- Entrada:
SB,!MF,!LF
Salida:1,2,3,4,5,6,7,8,9
- Entrada:
MH,!MH
Salida:0
Este es el código de golf, por lo que gana la entrada más corta. Haga preguntas en los comentarios si la especificación no es clara.