Контест Middle Задачи на Kotlin спрашивают часто обновлено

Кратчайший путь в лабиринте (BFS)

Условие

Лабиринт n × m: . свободно, # стена, S старт, F финиш. За шаг можно сдвинуться на соседнюю по стороне свободную клетку. Найди минимальное число шагов от S до F.

Ввод. n m (1 ≤ n, m ≤ 200), затем n строк по m символов. S и F встречаются ровно по разу.

Вывод. Число шагов или -1, если финиш недостижим.

Как подойти

Подсказки: 2
  1. Невзвешенный граф: какой обход даёт кратчайшие пути?
  2. Отмечай клетку при добавлении в очередь.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.