Ctrl K

Пары блюд с суммой — степенью двойки

Средняя
В меню есть блюда, flavors[i] — оценка вкуса i-го блюда. Удачный ужин — это два разных блюда, сумма оценок которых равна степени двойки (1, 2, 4, 8, …). Верните, сколькими способами можно составить удачный ужин. Блюда с разными индексами считаются разными, даже если их оценки совпадают. Ответ может быть большим — верните его по модулю 10⁹ + 7.
Пример 1
flavors=[2, 6, 14, 2] → 5

Подходят пары 2+6 = 8 (двойку можно взять двумя способами), 2+14 = 16 (тоже двумя) и 2+2 = 4. Итого 5.

Пример 2
flavors=[0, 1, 1] → 3

0+1 = 1 = 2⁰ — два способа, 1+1 = 2 — один. Итого 3.

Пример 3
flavors=[0, 0, 5] → 0
Ограничения
  • 1 ≤ len(flavors) ≤ 10⁵
  • 0 ≤ flavors[i] ≤ 2²⁰
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСудоку без конфликтов СредняяРазложить анаграммы по группам СредняяНулевые кресты СредняяДерево по прямому и симметричному обходам СредняяДерево по симметричному и обратному обходам Средняя
загружаем Python…
Вход
flavors=[2, 6, 14, 2]
Ожидается
5

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