Ctrl K

Высоты суши вокруг воды

Средняя
Карта terrain — прямоугольная сетка: 1 — клетка воды, 0 — клетка суши. Каждой клетке нужно назначить целую высоту по правилам: - высоты неотрицательны; - у воды высота 0; - у клеток, соседних по стороне, высоты отличаются не больше чем на 1. При таких правилах каждую клетку можно поднять до некоторого предела, и все пределы достижимы одновременно. Верните сетку высот, где каждая клетка поднята как можно выше.
Пример 1
terrain=[[1, 0, 0], [0, 0, 0]] → [[0, 1, 2], [1, 2, 3]]

Вода только в углу. Каждая клетка суши может подняться ровно на расстояние до неё по шагам: соседи 1, дальше 2, самый дальний угол — 3.

Пример 2
terrain=[[0, 0, 0, 0], [1, 0, 0, 1]] → [[1, 2, 2, 1], [0, 1, 1, 0]]

Два источника воды по краям нижнего ряда, середина сверху оказывается дальше всего — высота 2.

Ограничения
  • 1 ≤ m, n ≤ 1000, где m и n — число строк и столбцов
  • Каждая клетка — 0 или 1
  • Хотя бы одна клетка — вода
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиОсушение замкнутых прудов СредняяУчастки суши на карте СредняяШаги до ближайшего выхода СредняяДождь стекает в оба моря СредняяОстановится ли шарик в цели Средняя
загружаем Python…
Вход
terrain=[[1, 0, 0], [0, 0, 0]]
Ожидается
[[0, 1, 2], [1, 2, 3]]

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