Ctrl K

Прибавки ради произведения

Средняя
Дан массив неотрицательных целых чисел values и число raises. За один шаг можно выбрать любой элемент и увеличить его на 1. Всего можно сделать не больше raises шагов, и один элемент разрешено увеличивать много раз. Верните наибольшее произведение всех элементов, которого можно добиться. Ответ бывает огромным, поэтому верните его остаток от деления на 10⁹ + 7. Максимизируйте настоящее произведение, а остаток берите только в конце.
Пример 1
values=[1, 7], raises=4 → 35

Все четыре прибавления отдаём единице: [5, 7], произведение 35. Если делить иначе, например [3, 9], выйдет только 27.

Пример 2
values=[2, 0, 3], raises=3 → 18

Ноль поднимаем до 2, а одну единицу отдаём одной из двоек: [3, 2, 3] или [2, 3, 3], произведение 18.

Пример 3
values=[4], raises=6 → 10
Ограничения
  • 1 ≤ len(values) ≤ 10⁵
  • 1 ≤ raises ≤ 10⁵
  • 0 ≤ values[i] ≤ 10⁶
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСтудии для записи СредняяЗадания с перерывом на остывание СредняяСерии подряд идущих чисел СредняяМетки вразнобой СредняяСращивание верёвок Средняя
загружаем Python…
Вход
values=[1, 7], raises=4
Ожидается
35

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