Ctrl K

Разрез через меньше всего кирпичей

Средняя
Кирпичная стена состоит из горизонтальных рядов одинаковой высоты. Ряд rows[i] перечисляет ширины кирпичей слева направо; общая ширина у всех рядов одинаковая. Стену нужно разрезать одной вертикальной линией сверху донизу. Если линия проходит по шву между двумя кирпичами, кирпичи этого ряда не повреждаются; иначе разрезается кирпич, через который она проходит. Резать по левому или правому краю стены нельзя. Верните наименьшее число кирпичей, которые придётся разрезать.
Пример 1
rows=[[2, 3, 1], [4, 2], [2, 2, 2], [1, 1, 4]] → 1

Отметка 2 — шов в рядах 0, 2 и 3. Разрез по ней задевает только кирпич шириной 4 в ряду 1.

Пример 2
rows=[[5], [5]] → 2

В каждом ряду один кирпич на всю ширину, швов внутри нет — любой разрез пересекает оба.

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

Отметка 3 — шов во всех трёх рядах, разрез по ней не задевает ни одного кирпича.

Ограничения
  • 1 ≤ len(rows) ≤ 10⁴
  • 1 ≤ len(rows[i]) ≤ 10⁴
  • Всего кирпичей не больше 5·10⁴
  • 1 ≤ rows[i][j] ≤ 2³¹ − 1
  • Сумма ширин во всех рядах одинаковая
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСудоку без конфликтов СредняяРазложить анаграммы по группам СредняяНулевые кресты СредняяДерево по прямому и симметричному обходам СредняяДерево по симметричному и обратному обходам Средняя
загружаем Python…
Вход
rows=[[2, 3, 1], [4, 2], [2, 2, 2], [1, 1, 4]]
Ожидается
1

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