Ctrl K

Одинаковые зеркальные разницы

Средняя
Дан массив values чётной длины n и число limit. Разобьём массив на зеркальные пары: первый элемент с последним, второй с предпоследним и так далее. За одну замену можно поставить на место любого элемента любое целое число от 0 до limit включительно. Нужно добиться, чтобы во всех зеркальных парах модуль разности был одним и тем же числом — то есть существует X, для которого |values[i] - values[n - 1 - i]| = X при всех i. Само X выбираете вы. Верните минимальное число замен.
Пример 1
values=[3, 1, 4, 4, 0, 2], limit=5 → 1

Зеркальные пары: (3, 2), (1, 0) и (4, 4). У первых двух разница уже 1, а в третьей достаточно заменить одну четвёрку на 5. Одна замена.

Пример 2
values=[0, 0, 1, 5, 5, 0], limit=5 → 2

Разницы в парах (0, 0), (0, 5), (1, 5) равны 0, 5 и 4 — все разные, поэтому без изменений может остаться максимум одна пара. В каждой из двух других хватает одной замены.

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

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