Dado un laberinto en stdin y un punto de entrada, escriba un programa que imprima una ruta a la salida en stdout. Cualquier ruta es aceptable, siempre que su programa no genere la ruta trivial (pasando por cada punto del laberinto) para cada laberinto.
En la entrada, las paredes están marcadas por a #
y el punto de entrada por a @
. Puedes usar cualquier personaje para dibujar el laberinto y la ruta en la salida, siempre que sean distintos.
Puede suponer que:
- Los puntos de entrada y salida están en los bordes de la entrada.
- Cada línea de la entrada tiene la misma longitud
- El laberinto es solucionable y no tiene ciclos.
- Solo hay un punto de salida
La solución más corta por recuento de caracteres (Unicode) gana.
Ejemplos
(tenga en cuenta que las entradas están rellenadas con espacios)
####
# #
@ #####
# #
#
#######
####
# #
@*#####
#* #
#******
#######
### ###################
### # #
## ######### # #
# ##### #
############### #@##
###*###################
###*********#*********#
## *#########* # *#
# *********** #####**#
############### #@##