Ctrl K

Подвинуть числа навстречу

Средняя
Дан массив целых чисел values и два числа: reach и moves. Нужно выполнить ровно moves ходов. За один ход выбирается элемент, которого ещё не касались, и к нему прибавляется любое целое число от -reach до reach включительно (можно и 0). Каждый элемент меняется не больше одного раза. Верните наибольшее число одинаковых элементов, которого можно добиться в массиве после всех ходов.
Пример 1
values=[2, 9, 6, 12], reach=3, moves=2 → 3

Подвигаем 6 на +3 и 12 на −3: получаем [2, 9, 9, 9], три девятки.

Пример 2
values=[5, 5, 20], reach=4, moves=1 → 2

До 20 от пятёрок не дотянуться (нужно 15, а можно максимум 4), так что лучше всего оставить две пятёрки.

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

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