Ctrl K

Площадь башен из кубиков

Лёгкая
На квадратном поле n × n из единичных клеток стоят башни из кубиков 1 × 1 × 1. Значение heights[i][j] — сколько кубиков поставлено друг на друга в клетке (i, j) (0 — клетка пустая). Все соприкасающиеся кубики склеили между собой, и получилось несколько фигур. Их снаружи целиком покрасят, включая нижние грани, которые стоят на поле. Верните суммарную площадь поверхности всех фигур. Грани, которыми два кубика прижаты друг к другу, в площадь не входят.
Пример 1
heights=[[2, 0], [0, 1]] → 16

Две отдельные башни. Башня из 2 кубиков: 4·2 боковых грани + верх + низ = 10. Одиночный кубик: 6. Всего 16.

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

Отдельно башни дали бы 14 + 6 = 20, но они стоят вплотную: по одной грани у каждой касается соседа, и 2 грани пропадают. Ответ 18.

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

Кубиков нет, площадь 0.

Ограничения
  • 1 ≤ n ≤ 50
  • len(heights) = len(heights[i]) = n
  • 0 ≤ heights[i][j] ≤ 50
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиТени башен из кубиков ЛёгкаяКак расходится слух ЛёгкаяСамый большой треугольник на доске ЛёгкаяТри колышка не на одной прямой ЛёгкаяСтолбы на одной прямой Лёгкая
загружаем Python…
Вход
heights=[[2, 0], [0, 1]]
Ожидается
16

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