Ctrl K

Подрастить башни, не трогая силуэт

Средняя
Квартал — квадратная сетка heights размером n × n; heights[r][c] — высота башни в клетке (r, c), 0 означает пустую клетку. Если смотреть на квартал издалека с любой из четырёх сторон, видна линия силуэта: для каждой строки (вид с запада или востока) — её максимальная высота, для каждого столбца (вид с севера или юга) — его максимальная высота. Любую башню (и пустую клетку тоже) разрешено надстроить на любое неотрицательное число этажей, но так, чтобы силуэт ни с одной стороны не изменился. Верните наибольшую возможную суммарную надстройку.
Пример 1
heights=[[2, 5], [4, 1]] → 5

Максимумы строк: 5 и 4, столбцов: 4 и 5. Клетку 2 можно поднять до min(5, 4) = 4 (+2), клетку 1 — до min(4, 5) = 4 (+3). Остальные уже на пределе. Итого 5.

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

Только центральную башню можно поднять — до 3.

Пример 3
heights=[[0, 0], [0, 0]] → 0
Ограничения
  • 2 ≤ n ≤ 50
  • Сетка квадратная: n строк по n чисел
  • 0 ≤ heights[r][c] ≤ 100
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМаксимум двоичных строк после переворотов СредняяДва ряда лампочек СредняяСтроки под диагональю СредняяТаблица по итогам строк и столбцов СредняяБлок единиц после перестановки столбцов Средняя
загружаем Python…
Вход
heights=[[2, 5], [4, 1]]
Ожидается
5

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