D. Кратчайший путь по карте
3000 мс · 256 МБ · всё или ничего
Дана карта из символов . (проходимо) и # (стена). Найдите длину кратчайшего пути из левой верхней клетки в правую нижнюю, двигаясь по проходимым клеткам вверх, вниз, влево и вправо.
Длина пути — количество шагов. Если стартовая или конечная клетка занята стеной, пути нет.
На прошлом занятии похожая задача решалась обходом в глубину — но там спрашивалось только, есть ли путь. Как только спросили про длину, обход в глубину перестаёт годиться.
Формат ввода
Первая строка содержит числа и ().
Далее идут строк по символов.
Формат вывода
Одно число — длина кратчайшего пути или .
Примеры
ввод
3 3 ... .#. ...
вывод
4
ввод
2 2 .# #.
вывод
-1
Войдите, чтобы отправлять решения.