Ctrl K

Массив по суммам подмножеств

Сложная
Кто-то задумал массив из size целых чисел (они могут быть отрицательными и могут повторяться) и выписал суммы всех его подмножеств — всего 2^size чисел, в произвольном порядке. Подмножество получается вычёркиванием любых элементов, в том числе всех сразу: сумма пустого подмножества равна 0. Одинаковые суммы разных подмножеств выписаны столько раз, сколько встречаются. По списку totals восстановите задуманный массив. Порядок элементов в ответе любой. Гарантируется, что totals действительно получен из какого-то массива и что этот массив определяется однозначно с точностью до порядка элементов.
Пример 1
size=2, totals=[0, 7, 3, 4] → [3, 4]

Массив [3, 4]: пустой набор даёт 0, по одному — 3 и 4, оба вместе — 7.

Пример 2
size=3, totals=[3, -2, 8, 0, 6, 1, 5, 3] → [-2, 3, 5]

Это суммы подмножеств массива [5, -2, 3]: 0, 5, -2, 3, 5 + (-2) = 3, 5 + 3 = 8, -2 + 3 = 1 и 5 + (-2) + 3 = 6. Сумма 3 выписана дважды, потому что её дают два разных подмножества.

Пример 3
size=1, totals=[0, -6] → [-6]
Ограничения
  • 1 ≤ size ≤ 15
  • len(totals) == 2^size
  • -10⁴ ≤ totals[i] ≤ 10⁴
  • Ответ существует и единственен с точностью до порядка
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиОбщая медиана двух массивов СложнаяКонтур городской застройки СложнаяМеньшие справа СложнаяСуммы отрезков в заданной полосе СложнаяПары с крутым спадом Сложная
загружаем Python…
Вход
size=2, totals=[0, 7, 3, 4]
Ожидается
[3, 4]

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