Ctrl K

Равные пары на турнир

Средняя
Тренер готовит команду к турниру по парному настольному теннису. Уровень каждого игрока записан в массиве levels, игроков чётное число. Нужно разбить всех на пары так, чтобы суммарный уровень у каждой пары был одинаковым. Сыгранность пары — это произведение уровней двух её игроков. Верните сумму сыгранностей всех пар при таком разбиении. Если разбить игроков на пары с равной суммой нельзя, верните -1.
Пример 1
levels=[6, 2, 4, 4, 1, 7] → 35

Пары (1, 7), (2, 6), (4, 4) — в каждой сумма 8. Сыгранность: 7 + 12 + 16 = 35.

Пример 2
levels=[5, 9] → 45

Два игрока — одна пара, её сыгранность 5 · 9 = 45.

Пример 3
levels=[1, 2, 2, 4] → -1

Самый слабый (1) должен играть с самым сильным (4), сумма 5, но тогда 2 + 2 = 4 ≠ 5.

Ограничения
  • 2 ≤ len(levels) ≤ 10⁵
  • len(levels) чётно
  • 1 ≤ levels[i] ≤ 1000
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПодпоследовательность только одного слова СредняяПары с заданной разницей СредняяТройки с точной суммой СредняяСлово растёт по букве СредняяУбрать пары с заданной суммой Средняя
загружаем Python…
Вход
levels=[6, 2, 4, 4, 1, 7]
Ожидается
35

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