Dado um labirinto em stdin e um ponto de entrada, escreva um programa que imprima um caminho para a saída em stdout. Qualquer caminho é aceitável, desde que o seu programa não gere o caminho trivial (passando por todos os pontos do labirinto) para cada labirinto.
Na entrada, as paredes são marcadas por a #
e o ponto de entrada por a @
. Você pode usar qualquer caractere para desenhar o labirinto e o caminho na saída, desde que todos sejam distintos.
Você pode assumir que:
- Os pontos de entrada e saída estão nas bordas da entrada
- Cada linha da entrada tem o mesmo comprimento
- O labirinto é solucionável e não tem ciclos
- Existe apenas um ponto de saída
A solução mais curta por contagem de caracteres (Unicode) vence.
Exemplos
(observe que as entradas são preenchidas com espaços)
####
# #
@ #####
# #
#
#######
####
# #
@*#####
#* #
#******
#######
### ###################
### # #
## ######### # #
# ##### #
############### #@##
###*###################
###*********#*********#
## *#########* # *#
# *********** #####**#
############### #@##