Базовая задача без подводных камней на один из основных алгоритмов теории графов - поиск в ширину. Читаем условие: Поиск в ширину (волновой алгоритм, BFS) - один из способов обхода графа. Применяется для определения всех вершин, доступных из стартовой (например для нахождения компонент связности), и расстояния до них в невзвешенных графах. Часто алгоритм называют волновым, потому что схема его работы похожа на расширение кругов на воде: В алгоритмической реализации нет необходимости явно выделять слои из вершин с одинаковым расстоянием, единственное правило - рассматривать вершины в строгом порядке увеличения расстояния до стартовой. Поэтому можно использовать структуру данных очередь. Или в Python для простоты будем добавлять элементы в список. Для начала считаем данные: размер таблицы, двумерный массив и стартовую и финишную вершины: Заведём массив d размера n, в котором будем хранить расстояние до стартовой, и заполним его значениями -1 (можно было бы положить туда что-нибудь большо