Wenn Sie ein Labyrinth auf stdin und einen Einstiegspunkt haben, schreiben Sie ein Programm, das einen Pfad zum Ausgang auf stdout ausgibt. Jeder Pfad ist akzeptabel, solange Ihr Programm nicht den trivialen Pfad (der durch jeden Punkt im Labyrinth verläuft) für jedes Labyrinth generiert.
In der Eingabe sind Wände mit einem #
und der Einstiegspunkt mit einem gekennzeichnet @
. Sie können beliebige Zeichen verwenden, um das Labyrinth und den Pfad in der Ausgabe zu zeichnen, sofern sie alle unterschiedlich sind.
Sie können davon ausgehen, dass:
- Die Eintritts- und Austrittspunkte befinden sich an den Rändern der Eingabe
- Jede Zeile der Eingabe hat die gleiche Länge
- Das Labyrinth ist lösbar und hat keine Zyklen
- Es gibt nur einen Austrittspunkt
Kürzeste Lösung nach (Unicode) Zeichenzahl gewinnt.
Beispiele
(Beachten Sie, dass die Eingaben mit Leerzeichen aufgefüllt sind)
####
# #
@ #####
# #
#
#######
####
# #
@*#####
#* #
#******
#######
### ###################
### # #
## ######### # #
# ##### #
############### #@##
###*###################
###*********#*********#
## *#########* # *#
# *********** #####**#
############### #@##