O desafio
O menor código por contagem de caracteres para ajudar o Robot a encontrar o gatinho com o menor número de etapas possível.
Golfistas, este é um momento de crise - Kitten desapareceu e é trabalho do Robot encontrá-lo! O robô precisa alcançar o Kitten no caminho mais curto possível. No entanto, existem muitos obstáculos no caminho de Robot, e ele precisa que você programe uma solução para ele.
O Robot costumava ter um programa fazendo isso por ele, mas esse programa foi perdido e o Robot não tem backup :(.
O tempo de execução do robô não é o melhor, e o mínimo de caracteres que o robô precisa ler do código-fonte, o menor tempo gasto no processamento e isso significa que o Kitten será encontrado mais rapidamente!
A memória do robô contém um mapa da localização em que ele está atualmente, com a parte superior representando o norte, a parte inferior representando o sul, a direita representando o leste e a esquerda representando o oeste. O robô está sempre em uma sala retangular de tamanho desconhecido, cercada por paredes, representada por #
em seu mapa de radar. Áreas em que o robô pode entrar são representadas por um espaço .
O radar do robô também procura muitos obstáculos na sala e os marca em várias letras ASCII. O robô não pode atravessar esses obstáculos. O radar marcará Kitten como o caractere ASCII especial K
, enquanto a localização do robô é marcada com R
.
O sistema de navegação do robô funciona da seguinte maneira: ele pode entender uma dupla de direção e número de unidades de movimento para onde deve viajar - por exemplo, N 3
significa 'ir para o norte 3 unidades de movimento'. O mapa de radar do robô é feito de modo que uma unidade de movimento seja um caractere ASCII. O robô só pode ir em 4 direções e não pode viajar na diagonal.
Sua tarefa, valente protetor do Kitten, é ler o mapa do radar do Robot uma vez e emitir a menor quantidade de direções, com a menor distância de deslocamento da unidade de movimento. É garantido que o robô tenha pelo menos um caminho para o Kitten.
Para garantir que o Robot não perca tempo executando um programa com defeito que não ajudará o Robot a encontrar o Kitten, encorajo você, corajoso protetor do Kitten, a usar essa saída do programa anterior do Robot para garantir que não seja desperdiçado tempo em encontrar o Kitten!
Casos de teste
Input:
######################
# d 3 Kj #
# #
# R #
# q #
######################
Output:
E 13
N 2
Input:
######################
# d r 3 Kj #
# p p #
# T X #
# q s t #
# #
# R o d W #
# #
# g t U #
# #
######################
Output:
N 1
E 10
N 4
E 2
Input:
######################
# spdfmsdlwe9mw WEK3#
# we hi #
# rdf fsszr#
# sdfg gjkti #
# fc d g i #
# dfg sdd #
# g zfg #
# df df #
# xcf R#
######################
Output:
N 1
W 9
N 5
E 4
N 1
E 4
N 1
A contagem de códigos inclui entrada / saída (ou seja, programa completo).