Ctrl K

Лужи на рельефной карте

Сложная
Рельеф местности задан таблицей heights размером m × n: heights[i][j] — высота клетки. Прошёл сильный дождь. Вода переливается между клетками, соседними по стороне, и стекает за пределы карты через её края, поэтому над клетками на краю таблицы вода не держится. Верните суммарный объём воды, оставшейся на карте, — сумму по всем клеткам разности между уровнем воды над клеткой и её высотой.
Пример 1
heights=[[4, 4, 4, 4], [4, 1, 2, 4], [4, 4, 3, 4]] → 3

Ниже всего бортик из клетки с высотой 3 в нижнем ряду, поэтому вода поднимается до уровня 3: над клеткой высоты 1 стоит 2 единицы, над клеткой высоты 2 — ещё 1. Итого 3.

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

Ямка глубиной 0 соседствует с краем высоты 1, через него вода и уходит. Остаётся 1 единица.

Пример 3
heights=[[5, 3, 5]] → 0

Все клетки лежат на краю карты, удержать воду нечем.

Ограничения
  • 1 ≤ m, n ≤ 200
  • 0 ≤ heights[i][j] ≤ 2·10⁴
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиШарик и лунка СложнаяПодрезать кусты по росту СложнаяПереправа в прилив СложнаяЯщик на складе СложнаяПерекрасить стрелки до выхода Сложная
загружаем Python…
Вход
heights=[[4, 4, 4, 4], [4, 1, 2, 4], [4, 4, 3, 4]]
Ожидается
3

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