Como você provavelmente agora, existem 2339 soluções para o quebra-cabeça pentomino em uma grade 6x10. Existem diferentes esquemas de rotulagem para os 12 pentominós, dois deles são mostrados na imagem abaixo:
Crédito de imagem: Wikipedia
Para os propósitos da tarefa atual, diremos que uma solução pentomino normalizada é uma solução que utiliza o segundo esquema de rotulagem (de Conway).
Exemplo:
O O O O O S S S Z Z
P P R R S S W W Z V
P P P R R W W Z Z V
U U X R T W Y V V V
U X X X T Y Y Y Y Q
U U X T T T Q Q Q Q
A peça com 5 quadrados seguidos é indicada por letras O
, de acordo com o esquema. O mesmo vale para todas as peças.
Tarefa:
Dada uma solução para o pentomino 6x10 no qual as peças são rotuladas com um sheme aleatório, normalize-a para que todas as peças sejam rotuladas no esquema de rotulagem de Conway. Você precisa reconhecer as peças e marcar cada quadrado de uma peça em particular com o símbolo da peça.
Entrada:
A solução a ser normalizada, em qualquer formato que seja conveniente para você, por exemplo:
Uma sequência multilinha
Uma lista de strings
Uma lista de listas de caracteres
e assim por diante
Resultado:
A mesma solução (todas as posições e orientação das peças preservadas), mas cada peça é rotulada de acordo com o esquema de rotulagem de Conway. Nota: A saída DEVE SER IMPRESSA como uma grade 6x10 de caracteres. Novas linhas e espaços à esquerda e à direita são permitidos. Você também pode imprimir um espaço entre os caracteres (mas não as linhas vazias), como no exemplo acima.
Casos de teste:
1. Entrada:
6623338888
6222344478
66A234BB70
1AAA94B770
11A99BB700
1199555550
Resultado:
UURTTTQQQQ
URRRTVVVSQ
UUXRTVZZSY
PXXXWVZSSY
PPXWWZZSYY
PPWWOOOOOY
2. Entrada:
45ookkkk00
455ooogk00
4a55gggdd0
4aaa3gnnd.
4am333ndd.
mmmm3nn...
Resultado:
OWSSQQQQPP
OWWSSSRQPP
OTWWRRRUUP
OTTTXRZZUV
OTYXXXZUUV
YYYYXZZVVV
Critérios de vitória:
A solução mais curta em bytes em cada idioma vence. Não desanime pelas línguas do golfe. Explicações sobre algoritmos e implementações são bem-vindas.