Ctrl K

Капли на рельефе

Средняя
Рельеф задан массивом ground: ground[i] — высота земли в столбце i, ширина каждого столбца равна 1. Слева и справа от массива стоят бесконечно высокие стены. Уровень столбца — это высота земли плюс вода, которая уже в нём скопилась. На столбец spot по очереди падают drops капель. Каждая капля сначала оказывается на верху столбца spot, а потом движется так: - если, двигаясь влево по столбцам не выше текущего, она в итоге может спуститься на уровень ниже, чем был у spot, она уходит влево; - иначе, если такой спуск возможен вправо, она уходит вправо; - иначе остаётся в spot. Уходя в сторону, капля оседает в ближайшем к spot столбце с самым низким уровнем из тех, до которых можно дойти, ни разу не поднимаясь. Каждая капля целиком занимает один столбец и поднимает его уровень на 1. Верните массив уровней после того, как упадут все капли.
Пример 1
ground=[3, 0, 2, 2, 1], drops=3, spot=2 → [3, 2, 2, 2, 2]

Первая капля стекает влево в ямку на позиции 1. Вторая снова видит слева спуск и тоже оседает в позиции 1. Теперь слева ровно (уровень 2 до самой стены), поэтому третья капля уходит вправо и оседает в позиции 4.

Пример 2
ground=[2, 2, 2], drops=2, spot=1 → [3, 3, 2]

Вокруг ровно, спуска нет ни в одну сторону — первая капля остаётся на месте. После этого позиция 1 выше соседей, и вторая капля скатывается влево.

Пример 3
ground=[5], drops=4, spot=0 → [9]
Ограничения
  • 1 ≤ len(ground) ≤ 100
  • 0 ≤ ground[i] ≤ 99
  • 0 ≤ drops ≤ 2000
  • 0 ≤ spot < len(ground)
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЧтение по спирали СредняяКвадрат, пронумерованный по спирали СредняяСледующий шаг колонии клеток СредняяЗигзаг по диагоналям СредняяТри в ряд до упора Средняя
загружаем Python…
Вход
ground=[3, 0, 2, 2, 1], drops=3, spot=2
Ожидается
[3, 2, 2, 2, 2]

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