El reto
El código más corto por recuento de caracteres para ayudar al robot a encontrar al gatito en la menor cantidad de pasos posible.
Golfistas, este es un momento de crisis: ¡Gatito desapareció y es el trabajo de Robot encontrarlo! El robot necesita llegar a Kitten por el camino más corto posible. Sin embargo, hay muchos obstáculos en el camino de Robot, y él necesita que le programes una solución.
Robot solía tener un programa que lo hiciera por él, pero ese programa se perdió y Robot no tiene respaldo :(.
El tiempo de ejecución de Robot no es el mejor, y la menor cantidad de caracteres que Robot debe leer del código fuente, el menor tiempo que pasará procesando, ¡y eso significa que Kitten se encontrará más rápido!
La memoria del robot contiene un mapa de la ubicación en la que se encuentra actualmente con la parte superior que representa el norte, la inferior que representa el sur, la derecha que representa el este y la izquierda que representa el oeste. El robot siempre está en una habitación rectangular de un tamaño desconocido rodeado de paredes, representado #
en su mapa de radar. Las áreas en las que el robot puede caminar están representadas por un espacio .
El radar del robot también busca muchos obstáculos en la habitación y los marca en varias letras ASCII. El robot no puede cruzar esos obstáculos. El radar marcará a Kitten como el personaje ASCII especial K
, mientras que la ubicación del Robot está marcada con R
.
El sistema de navegación del robot funciona de esta manera: puede comprender un dúo de dirección y número de unidades de movimiento a las que debe viajar, por ejemplo, N 3
significa 'ir al norte 3 unidades de movimiento'. El mapa de radar del robot está hecho de tal manera que una unidad de movimiento es un personaje ASCII. El robot solo puede ir en 4 direcciones y no puede viajar en diagonal.
Su tarea, valiente protector de gatitos, es leer el mapa de radar de Robot una vez, y generar la menor cantidad de direcciones, con la menor distancia de desplazamiento de la unidad de movimiento. Se garantiza que el robot tendrá al menos un camino hacia Kitten.
Para garantizar que Robot no pierda el tiempo ejecutando un programa que no funciona correctamente y que no ayudará a Robot a encontrar a Kitten, ¡le recomiendo, valiente protector de Kitten, que use esta salida del programa anterior de Robot para asegurarse de que no se pierda el tiempo en encontrar Kitten!
Casos de prueba
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
El recuento de código incluye entrada / salida (es decir, programa completo).