Étant donné un labyrinthe sur stdin et un point d'entrée, écrivez un programme qui imprime un chemin d'accès à la sortie sur stdout. Tout chemin est acceptable, tant que votre programme ne génère pas le chemin trivial (passant par chaque point du labyrinthe) pour chaque labyrinthe.
Dans l'entrée, les murs sont marqués par un #
et le point d'entrée par un @
. Vous pouvez utiliser n'importe quel caractère pour dessiner le labyrinthe et le chemin dans la sortie, tant qu'ils sont tous distincts.
Vous pouvez supposer que:
- Les points d'entrée et de sortie sont sur les bords de l'entrée
- Chaque ligne de l'entrée a la même longueur
- Le labyrinthe est soluble et n'a pas de cycles
- Il n'y a qu'un seul point de sortie
La solution la plus courte par le nombre de caractères (Unicode) gagne.
Exemples
(notez que les entrées sont remplies d'espaces)
####
# #
@ #####
# #
#
#######
####
# #
@*#####
#* #
#******
#######
### ###################
### # #
## ######### # #
# ##### #
############### #@##
###*###################
###*********#*********#
## *#########* # *#
# *********** #####**#
############### #@##