Имея лабиринт на stdin и точку входа, напишите программу, которая печатает путь к выходу на stdout. Любой путь является приемлемым, если ваша программа не генерирует тривиальный путь (проходящий через каждую точку в лабиринте) для каждого лабиринта.
На входе стены отмечены символом a, #
а точка входа - символом a @
. Вы можете использовать любые символы для рисования лабиринта и пути в выводе, если они все различны.
Вы можете предположить, что:
- Точки входа и выхода находятся по краям ввода
- Каждая строка ввода имеет одинаковую длину
- Лабиринт разрешим и не имеет циклов
- Есть только одна точка выхода
Кратчайшее решение по количеству символов (Unicode) побеждает.
Примеры
(обратите внимание, что входы дополняются пробелами)
####
# #
@ #####
# #
#
#######
####
# #
@*#####
#* #
#******
#######
### ###################
### # #
## ######### # #
# ##### #
############### #@##
###*###################
###*********#*********#
## *#########* # *#
# *********** #####**#
############### #@##