Ctrl K

Подтянуть или опустить

Средняя
Монтажник выравнивает ряд стоек. Высоты стоек заданы массивом целых чисел heights, а каждую стойку можно переставить ровно на shift вверх или ровно на shift вниз — это обязательно, оставить стойку на месте нельзя (если shift не равен нулю). Разброс ряда — разность между самой высокой и самой низкой стойкой. Верните наименьший разброс, который можно получить после перестановки всех стоек.
Пример 1
heights=[2, 9, 5], shift=3 → 3

Поднимаем 2 и 5, опускаем 9: получаем 5, 6, 8. Разброс 8 - 5 = 3, меньше не выйдет.

Пример 2
heights=[4], shift=7 → 0

Одна стойка — разброс всегда 0.

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

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