Ctrl K

Постаматы вдоль дороги

Сложная
Дома стоят вдоль прямой дороги, homes[i] — координата i-го дома (все координаты разные). Нужно поставить на дорогу lockers постаматов, в любые точки. Житель каждого дома ходит к ближайшему постамату. Расставьте постаматы так, чтобы сумма расстояний от всех домов до ближайших к ним постаматов была минимальной, и верните эту сумму.
Пример 1
homes=[2, 7, 9, 15], lockers=2 → 7

Один постамат ставим у дома 7: жителям домов 2, 7 и 9 идти 5 + 0 + 2 = 7. Второй — у дома 15, оттуда идти 0. Итого 7.

Пример 2
homes=[6, 1, 3], lockers=3 → 0

Постаматов столько же, сколько домов: ставим по одному у каждого.

Пример 3
homes=[1, 10, 20, 40, 41], lockers=2 → 20
Ограничения
  • 1 ≤ lockers ≤ len(homes) ≤ 100
  • 1 ≤ homes[i] ≤ 10⁴
  • Все homes[i] различны
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиНаибольшее число, кратное трём СложнаяСуммарная сила отрядов СложнаяЦепочка кратных СредняяНаборы без заданной разницы СредняяНаборы без заданного разрыва Средняя
загружаем Python…
Вход
homes=[2, 7, 9, 15], lockers=2
Ожидается
7

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