Войти
или
Зарегистрироваться
Маркетплейс
Курсы
Учебник
Учебник 2.0
ЕГЭ
ОГЭ
Олимпиады
Рубрикатор
Компилятор
Онлайн Компилятор
Компилятор Python с отладкой
Питон - Черепашка
Редактор HTML Code
SQLite Studio - работа с БД
Статья Автор:
Федотова Анна
5
import sys # Увеличим лимит рекурсии на случай больших лабиринтов sys.setrecursionlimit(2000) def solve(): # Чтение размера лабиринта try: line = sys.stdin.readline() if not line: return n = int(line.strip()) except ValueError: return # Чтение лабиринта grid = [] for _ in range(n): grid.append(list(sys.stdin.readline().strip())) # Чтение стартовых координат (переводим в 0-индексацию) try: r, c = map(int, sys.stdin.readline().split()) r -= 1 c -= 1 except ValueError: return visited = set() def dfs(y, x): # Проверка границ и того, что клетка — пустая и не посещена if 0 <= y < n and 0 <= x < n and grid[y][x] == '.' and (y, x) not in visited: visited.add((y, x)) # Рекурсивно идем в 4 стороны dfs(y + 1, x) dfs(y - 1, x) dfs(y, x + 1) dfs(y, x - 1) # Запускаем обход dfs(r, c) # Результат — количество уникальных посещенных клеток print(len(visited)) if __name__ == "__main__": solve()
×
Загрузка...
Чтобы оставить комментарий, необходимо авторизоваться
💬
Пока нет комментариев. Будьте первым!
Печать