Ctrl K

Разбить на пары с кратной суммой

Средняя
Дан массив целых чисел values чётной длины и число divisor. Нужно разбить все элементы на пары (каждый элемент ровно в одной паре) так, чтобы сумма каждой пары делилась на divisor без остатка. Верните True, если такое разбиение существует, и False иначе.
Пример 1
values=[7, 2, 9, 4, 1, 1], divisor=4 → False

Остатки от деления на 4: 3, 2, 1, 0, 1, 1. Остаток 2 и остаток 0 встречаются по одному разу — их не с чем спарить.

Пример 2
values=[5, -2, 8, 1, 3, 10], divisor=3 → False

Остатки от деления на 3: 2, 1, 2, 1, 0, 1. Число с остатком 0 только одно — пары для него нет.

Пример 3
values=[6, 14, -3, 3], divisor=10 → True

(6, 14) даёт 20, (-3, 3) даёт 0 — обе суммы делятся на 10.

Ограничения
  • 2 ≤ len(values) ≤ 10⁵, длина чётная
  • -10⁹ ≤ values[i] ≤ 10⁹
  • 1 ≤ divisor ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиБольше трети голосов СредняяСамые частые значения СредняяЗадания с перерывом на остывание СредняяСамые частые запросы СредняяСводка заходов по доменам Средняя
загружаем Python…
Вход
values=[7, 2, 9, 4, 1, 1], divisor=4
Ожидается
False

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