Ctrl K

Подвинуть и сравнять

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

Сдвигаем 9 на -2 и 6 на +1: получаем [2, 7, 7, 7] — три одинаковых числа.

Пример 2
values=[3, 3, 10, 14], reach=4, moves=1 → 2

Две тройки уже равны, а остальные числа дальше 4 от них. Одним ходом можно сравнять 10 и 14 — тоже пара. Ответ 2.

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

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