Ctrl K

Два ряда лампочек

Средняя
Табло состоит из двух рядов лампочек по n штук; каждая лампочка либо горит (1), либо нет (0). Сама картинка потерялась, остались только счётчики: - top — сколько ламп горит в верхнем ряду; - bottom — сколько ламп горит в нижнем ряду; - column_lit[j] — сколько ламп горит в столбце j (от 0 до 2). Восстановите табло и верните его как список из двух строк: сначала верхний ряд, потом нижний. Если счётчики противоречат друг другу, верните пустой список. Гарантируется, что подходящее табло либо единственное, либо его нет вовсе.
Пример 1
top=3, bottom=1, column_lit=[1, 2, 0, 1] → [[1, 1, 0, 1], [0, 1, 0, 0]]

Столбец 1 горит целиком — это одна лампа сверху и одна снизу. Нижнему ряду больше ничего не положено, поэтому одиночные лампы в столбцах 0 и 3 стоят в верхнем ряду.

Пример 2
top=1, bottom=1, column_lit=[2, 1] → []

Всего горит 3 лампы, а рядам положено 1 + 1 = 2. Такого табло не бывает — ответ пустой.

Пример 3
top=0, bottom=2, column_lit=[0, 1, 1] → [[0, 0, 0], [0, 1, 1]]
Ограничения
  • 1 ≤ len(column_lit) ≤ 10⁵
  • 0 ≤ top, bottom ≤ len(column_lit)
  • column_lit[j] ∈ {0, 1, 2}
  • Подходящих табло не больше одного
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПодрастить башни, не трогая силуэт СредняяМаксимум двоичных строк после переворотов СредняяСтроки под диагональю СредняяТаблица по итогам строк и столбцов СредняяБлок единиц после перестановки столбцов Средняя
загружаем Python…
Вход
top=3, bottom=1, column_lit=[1, 2, 0, 1]
Ожидается
[[1, 1, 0, 1], [0, 1, 0, 0]]

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