Ctrl K

Таблица по итогам строк и столбцов

Средняя
От таблицы неотрицательных целых чисел остались только итоги: row_totals[i] — сумма i-й строки, col_totals[j] — сумма j-го столбца. Сами числа потеряны. Восстановите таблицу размера len(row_totals) × len(col_totals) с такими итогами. Подходящих таблиц обычно много, поэтому верните одну определённую: если прочитать клетки по строкам (первая строка слева направо, затем вторая и так далее), получится последовательность, которая лексикографически больше, чем у любой другой подходящей таблицы. Проще говоря, в каждую клетку по порядку ставится как можно большее число. Суммы row_totals и col_totals совпадают, так что подходящая таблица всегда есть.
Пример 1
row_totals=[5, 6], col_totals=[2, 9] → [[2, 3], [0, 6]]

В левый верхний угол ставим максимум — min(5, 2) = 2. Остаток первой строки 3 уходит вправо, вторая строка получает 0 и 6. Итог [[2, 3], [0, 6]].

Пример 2
row_totals=[4, 0, 3], col_totals=[3, 4] → [[3, 1], [0, 0], [0, 3]]

Нулевая строка целиком из нулей; получаем [[3, 1], [0, 0], [0, 3]].

Пример 3
row_totals=[7], col_totals=[1, 2, 4] → [[1, 2, 4]]

Строка одна, так что каждая её клетка равна сумме своего столбца.

Ограничения
  • 1 ≤ len(row_totals), len(col_totals) ≤ 500
  • 0 ≤ row_totals[i], col_totals[j] ≤ 10⁸
  • sum(row_totals) == sum(col_totals)
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПодрастить башни, не трогая силуэт СредняяМаксимум двоичных строк после переворотов СредняяДва ряда лампочек СредняяСтроки под диагональю СредняяБлок единиц после перестановки столбцов Средняя
загружаем Python…
Вход
row_totals=[5, 6], col_totals=[2, 9]
Ожидается
[[2, 3], [0, 6]]

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