Ctrl K

Выровнять банки

Средняя
На полке стоят банки с конфетами: в jars[i] лежит jars[i] конфет. Хочется, чтобы во всех непустых банках конфет было поровну. Конфеты можно только вынимать (из любой банки и сколько угодно, в том числе все), но не перекладывать и не добавлять. Верните наименьшее число конфет, которое придётся вынуть.
Пример 1
jars=[3, 8, 2, 7] → 6

Оставим по 7 конфет: из банки с 8 убираем 1, банки с 3 и 2 опустошаем. Всего убрано 1 + 3 + 2 = 6.

Пример 2
jars=[5, 5, 1] → 1

Достаточно опустошить банку с одной конфетой.

Пример 3
jars=[4, 6, 6, 6] → 4

Опустошить банку с 4 конфетами (вынуть 4) выгоднее, чем срезать все шестёрки до 4 (вынуть 2 + 2 + 2 = 6).

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

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