← вернуться к уроку · Обходы: в глубину и в ширину
Кратчайший путь в лабиринте
8000 мс · 512 МБ · всё или ничего
Дан лабиринт: точка — свободная клетка, решётка — стена, S — старт, F — финиш.
За сколько шагов можно добраться от старта до финиша, двигаясь по свободным клеткам вверх, вниз, влево и вправо? Если добраться нельзя, выведите -1.
Формат ввода
В первой строке числа и от до . В следующих строках по символов. Символы S и F встречаются ровно по одному разу.
Формат вывода
Одно число.
Примеры
ввод
1 2 SF
вывод
1
Примечание
Клетка — это вершина, соседство по стороне — ребро. Обход в ширину работает точно так же, только вместо списка смежности берутся четыре смещения, а расстояния хранятся в таблице по размеру поля.
Войдите, чтобы отправлять решения.