Ctrl K

Расставить плюсы и минусы

Средняя
Дан массив целых неотрицательных чисел values и число goal. Перед каждым числом нужно поставить знак + или - и сложить получившиеся слагаемые по порядку. Сколько существует расстановок знаков, при которых сумма равна goal? Расстановки различаются, если хотя бы перед одним элементом стоит другой знак (даже если этот элемент равен нулю).
Пример 1
values=[2, 3, 5], goal=0 → 2

Подходят +2 +3 -5 и -2 -3 +5.

Пример 2
values=[4, 0, 1], goal=3 → 2

Нужно +4 -1; перед нулём можно поставить любой знак, так что вариантов два.

Пример 3
values=[6], goal=4 → 0
Ограничения
  • 1 ≤ len(values) ≤ 20
  • 0 ≤ values[i] ≤ 1000
  • sum(values) ≤ 1000
  • -1000 ≤ goal ≤ 1000
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКвадратная рамка из палочек СредняяРассадка с делимостью СредняяСамая дешёвая корзина с наборами СредняяГруппы с равными суммами СредняяМеньше всего пешком до самокатов Средняя
загружаем Python…
Вход
values=[2, 3, 5], goal=0
Ожидается
2

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