Ctrl K

Партии с самым ровным составом

Средняя
Шахматный клуб устраивает вечер быстрых партий. Рейтинги игроков записаны в массиве ratings, и нужно провести ровно matches партий. Каждая партия — это пара разных игроков, и один игрок может сыграть не больше одной партии. Часть игроков может остаться без пары. Разница в партии — это модуль разности рейтингов двух её участников. Организатор хочет, чтобы даже самая неравная партия была как можно ровнее. Верните наименьшее возможное значение максимальной разницы среди всех matches партий. Если matches равно 0, ответ 0.
Пример 1
ratings=[15, 4, 9, 12, 5, 20], matches=2 → 3

Пара 4 и 5 даёт разницу 1, пара 9 и 12 — разницу 3. Худшая из двух — 3, лучше не получится.

Пример 2
ratings=[8, 3, 8], matches=1 → 0

Сводим двух игроков с рейтингом 8 — разница 0.

Пример 3
ratings=[1, 100], matches=0 → 0

Партий не нужно, а худшая разница по пустому набору считается нулём.

Ограничения
  • 1 ≤ len(ratings) ≤ 10⁵
  • 0 ≤ ratings[i] ≤ 10⁹
  • 0 ≤ matches ≤ len(ratings) / 2 (с округлением вниз)
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиТройки палочек для треугольника СредняяСамая выгодная подработка для каждого СредняяПлан осушения прудов СредняяЦена тает с каждой продажей СредняяПодравнять числа прибавлением Средняя
загружаем Python…
Вход
ratings=[15, 4, 9, 12, 5, 20], matches=2
Ожидается
3

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