Uma forma é quiral se nenhuma quantidade de rotação puder parecer com a imagem no espelho. Neste quebra-cabeça, estaremos escrevendo programas de computador quirais.
Para este quebra-cabeça, pensaremos em um programa como uma matriz retangular de caracteres. Como tal, todas as soluções para esse desafio devem ser retangulares (ou seja, todas as linhas devem ter o mesmo comprimento). Podemos rotacionar esses programas em incrementos de um quarto de volta. Por exemplo, o programa
The quickish fish
lept deftly
rightwards
Quando girado um quarto de volta no sentido horário, parece
T
h
r e
i
glq
heu
tpi
wtc
a k
rdi
des
sfh
t
lf
yi
s
h
Também podemos refletir esses programas. Aqui está o mesmo programa refletido em um eixo vertical:
hsif hsikciuq ehT
yltfed tpel
sdrawthgir
Um programa quiral é um programa que, quando girado qualquer número de vezes, sempre gera " left
". No entanto, quando refletido, produz um programa que " right
" produz, não importa quantas vezes ele é rotacionado.
Sua tarefa é escrever um programa quiral no menor número de bytes possível.
Regras adicionais
A saída não diferencia maiúsculas de minúsculas, mas deve ser consistente. (por exemplo, você pode imprimir "
LEFT
" e "rIgHt
", mas esta caixa deve ser consistente em rotações)As linhas devem ser divididas em uma nova linha ou em uma nova linha e em um avanço de linha.
Seu programa deve ser um retângulo, você pode preenchê-lo com espaços ou comentários, mas cada linha deve ter o mesmo comprimento.
Opcionalmente, você pode ter uma nova linha à direita (ou nova linha e avanço de linha) em todos os seus programas, se desejar.
:set virtualedit=all
modo de bloco do Vim . A Bool
saída inicial verifica se a entrada é igual à sua própria rotação, o que simplifica as coisas. Removendo o {-
faz imprimir a entrada refletida.