Dato un labirinto su stdin e un punto di ingresso, scrivere un programma che stampa un percorso verso l'uscita su stdout. Qualsiasi percorso è accettabile, purché il programma non generi il percorso banale (passando attraverso ogni punto del labirinto) per ogni labirinto.
Nell'input, i muri sono contrassegnati da a #
e il punto di ingresso da a @
. Puoi usare qualsiasi personaggio per disegnare il labirinto e il percorso nell'output, purché siano tutti distinti.
Puoi presumere che:
- I punti di entrata e uscita si trovano sui bordi dell'input
- Ogni riga dell'ingresso ha la stessa lunghezza
- Il labirinto è risolvibile e non ha cicli
- C'è solo un punto di uscita
Vince la soluzione più breve per numero di caratteri (Unicode).
Esempi
(notare che gli ingressi sono riempiti con spazi)
####
# #
@ #####
# #
#
#######
####
# #
@*#####
#* #
#******
#######
### ###################
### # #
## ######### # #
# ##### #
############### #@##
###*###################
###*********#*********#
## *#########* # *#
# *********** #####**#
############### #@##