Ctrl K

Группы без близнецов

Сложная
Даны список items и число group_count. Все элементы нужно разложить ровно на group_count групп одинакового размера так, чтобы ни в одной группе не оказалось двух равных чисел. Разброс группы — разность её наибольшего и наименьшего элемента. Верните наименьшую возможную сумму разбросов всех групп или -1, если разложить элементы по правилам нельзя.
Пример 1
items=[3, 1, 3, 2], group_count=2 → 3

Две тройки должны оказаться в разных группах. Группы [1, 3] и [2, 3] дают 2 + 1 = 3, а вариант [1, 2] и [3, 3] запрещён.

Пример 2
items=[2, 2, 2, 1], group_count=2 → -1

Три двойки нельзя разложить по двум группам так, чтобы в каждой была не больше одной двойки.

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

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