printЗанятие 10

printD. Путь спелеолога

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Пещера представлена кубом, разбитым на `N` частей по каждому измерению (то есть на `N^3` кубических клеток). Каждая клетка может быть или пустой, или полностью заполненной камнем. Исходя из положения спелеолога в пещере, требуется найти, какое минимальное количество перемещений по клеткам ему требуется, чтобы выбраться на поверхность. Переходить из клетки в клетку можно, только если они обе свободны и имеют общую грань.
Ввод
В первой строке содержится число `N\ (1\ ≤\ N\ ≤\ 30)`. Далее следует `N` блоков. Блок состоит из пустой строки и `N` строк по `N` символов: # — обозначает клетку, заполненную камнями, точка — свободную клетку. Начальное положение спелеолога обозначено заглавной буквой S. Первый блок представляет верхний уровень пещеры, достижение любой свободной его клетки означает выход на поверхность. Выход на поверхность всегда возможен.
Вывод
Вывести одно число – длину пути до поверхности.

Пример ввода

3

###
###
.##

.#.
.#S
.#.

###
...
###

Пример вывода

6
Пояснение: Нужно спуститься на уровень вниз, сделать два движения на запад, подняться на уровень вверх, сделать движение на юг, подняться на уровень вверх.
Источник: Всероссийская студенческая олимпиада, Воронеж, 2003, Меньшиков
loading