Ctrl K

Вода между стенами

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

Уровень воды над столбцами 1–3 ограничен левой стеной высоты 3: над ними соберётся 3 + 1 + 3 = 7 единиц.

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

Профиль сначала растёт, потом убывает — ямы нет, вода стечёт.

Пример 3
walls=[5, 1, 1, 6, 2, 3] → 9

Между стенами 5 и 6 стоит вода уровнем 5: по 4 единицы над двумя столбцами. Между 6 и 3 над столбцом высоты 2 — ещё 1. Итого 9.

Ограничения
  • 1 ≤ длина walls ≤ 2 · 10⁴
  • 0 ≤ walls[i] ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый большой горящий блок СложнаяНаибольшее число из двух рядов СложнаяЛягушка на столбиках СложнаяПодъём отрезками СложнаяШирокий отрезок забора вокруг метки Сложная
загружаем Python…
Вход
walls=[3, 0, 2, 0, 4]
Ожидается
7

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