Antes da descoberta de impressões digitais e testes de DNA, a polícia britânica usou um sistema antropométrico para identificar reincidentes. Certas partes dos corpos dos criminosos foram medidas e armazenadas em registros - presume-se que essas partes do corpo não mudem de tamanho após a idade adulta. Este sistema era conhecido como bertillonnage .
O diagrama abaixo mostra um sistema de arquivamento usado pela polícia para acessar esses registros rapidamente.
Diagrama 1: Um sistema de arquivamento com gavetas numeradas.
Nota: se você não conseguir ver a imagem, tente o espelho imgur ou compile você mesmo .
O armário de arquivos é composto por 81 gavetas numeradas. Cada gaveta contém cartões e cada cartão tem medidas de partes específicas do corpo de um criminoso:
- O comprimento da cabeça (
H
) - A largura de suas cabeças (
B
) - A largura da orelha direita (
E
) - O comprimento do dedo indicador (
F
)
Cada medida é classificada como pequena, média ou grande.
Por exemplo, a gaveta 56 contém placas com as seguintes características: H pequeno, grande B, meio E, e pequena F. Isto pode ser simbolizada usando as letras S
, M
e L
em lugar de pequeno, médio e grande:
SH,LB,ME,SF
Observe que a letra do tamanho vai primeiro, depois qual é a medida. Além disso, um ponto de exclamação !
pode ser colocado na frente para causar um resultado negativo:
!SH,LB,!ME,SF
Isso indica cartões com as seguintes características: não pequeno H, grande B, não médio E e pequeno F. Existem quatro gavetas que contêm cartões com essas características - 58, 60, 61 e 63.
Sua tarefa é escrever um programa que, ao receber uma sequência notando algumas características, produza todas as gavetas que contêm cartões com essas características. Se não houver gavetas que contenham cartões com as características especificadas, produza 0
.
Aqui estão algumas entradas e saídas de amostra.
- Entrada:
SH,LB,ME,SF
Saída:56
- Entrada:
!SH,LB,!ME,SF
Saída:58,60,61,63
- Entrada:
SB,!MF,!LF
Saída:1,2,3,4,5,6,7,8,9
- Entrada:
MH,!MH
Saída:0
Isso é código de golfe, portanto a entrada mais curta vence. Faça perguntas nos comentários se a especificação não estiver clara.