Ctrl K

Убежать от потопа

Сложная
Местность задана прямоугольной картой terrain из символов: - "S" — клетка, где вы стоите сейчас (ровно одна); - "D" — клетка, куда нужно попасть (ровно одна); - "." — сухая проходимая клетка; - "X" — скала, на неё вставать нельзя; - "*" — затопленная клетка. Каждую секунду происходят две вещи одновременно: вы переходите в одну из соседних по стороне клеток, а вода разливается — каждая сухая клетка ("." или "S"), соседняя по стороне с затопленной, тоже становится затопленной. Скалы и клетка D никогда не затапливаются. На затопленную клетку вставать нельзя, в том числе если она затапливается в ту же секунду, когда вы на неё шагаете. Стоять на месте тоже нельзя — каждую секунду нужно сделать шаг. Верните наименьшее число секунд, за которое можно добраться до D, или -1, если это невозможно.
Пример 1
terrain=[['S', '.', '*'], ['.', 'X', '.'], ['.', '.', 'D']] → 4

Путь вправо идёт через клетки рядом с водой: после первой секунды вода занимает (0, 1) и (1, 2), и этот путь отрезан. Обход слева вниз занимает 4 секунды, и вода туда не успевает.

Пример 2
terrain=[['S', '.', '.'], ['*', '.', '.'], ['.', '.', 'D']] → -1

Через секунду вода заливает (0, 0), (1, 1) и (2, 0). Остаётся только шаг вправо в (0, 1), затем в (0, 2). Но к этому моменту вода уже заняла (0, 1) и (1, 2), идти дальше некуда, и до D не добраться.

Пример 3
terrain=[['D', 'S'], ['X', '*']] → 1

Цель рядом: один шаг влево, 1 секунда.

Ограничения
  • 2 ≤ число строк, число столбцов ≤ 100
  • Каждая клетка — один из символов S, D, ., *, X
  • Клетка S ровно одна, клетка D ровно одна
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРамка вокруг кляксы СложнаяУчасток для дома рядом со всеми зданиями СложнаяСамый длинный подъём по карте СложнаяЛужи на рельефной карте СложнаяШарик и лунка Сложная
загружаем Python…
Вход
terrain=[['S', '.', '*'], ['.', 'X', '.'], ['.', '.', 'D']]
Ожидается
4

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 88 тестов на сервере, включая скрытые.