Ctrl K

Тройки с точной суммой

Средняя
Дан массив неотрицательных целых чисел values и число total. Посчитайте, сколько есть троек индексов i < j < k, для которых values[i] + values[j] + values[k] == total. Тройки различаются индексами, поэтому одинаковые значения на разных позициях считаются отдельно. Ответ может быть большим — верните его остаток от деления на 10⁹ + 7.
Пример 1
values=[2, 4, 2, 4, 6], total=10 → 3

Сумму 10 дают значения (2, 2, 6) — один способ выбрать обе двойки — и (2, 4, 4) — две двойки на выбор, четвёрки обе: ещё 2 способа. Итого 3.

Пример 2
values=[5, 5, 5, 5, 5], total=15 → 10

Любые три из пяти пятёрок: 5 · 4 · 3 / 6 = 10 троек.

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

Единственная тройка даёт 3, а не 4.

Ограничения
  • 3 ≤ len(values) ≤ 3000
  • 0 ≤ values[i] ≤ 100
  • 0 ≤ total ≤ 300
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЗаклинания без соседей СредняяБольше трети голосов СредняяСамые частые значения СредняяПодпоследовательность только одного слова СредняяПары с заданной разницей Средняя
загружаем Python…
Вход
values=[2, 4, 2, 4, 6], total=10
Ожидается
3

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