/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/python/lab-1122-005/main.py
22 строки
810 B
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
from collections import deque def bfs(grid, sr, sc): rows, cols = len(grid), len(grid[0]) q = deque([(sr, sc, 0)]) # очередь: (строка, столбец, расстояние) seen = {(sr, sc)} while q: r, c, dist = q.popleft() if grid[r][c] == "G": # цель — клетка 'G' return dist for dr, dc in ((1, 0), (-1, 0), (0, 1), (0, -1)): nr, nc = r + dr, c + dc if 0 <= nr < rows and 0 <= nc < cols and grid[nr][nc] != "#": if (nr, nc) not in seen: seen.add((nr, nc)) q.append((nr, nc, dist + 1)) return -1 rows, cols = map(int, inputsplit()) grid = [inputstrip() for _ in range(rows)] sr, sc = map(int, inputsplit()) print(bfs(grid, sr - 1, sc - 1))