values и два числа width и count. За одну операцию можно увеличить или уменьшить любой элемент массива на 1.
Нужно добиться, чтобы в массиве нашлись хотя бы count **непересекающихся** отрезков из ровно width подряд идущих элементов, в каждом из которых все элементы равны между собой. Значения в разных отрезках могут отличаться.
Верните наименьшее число операций, которого для этого достаточно.values=[4, 10, 6, 5, 0, 2, 2, 9], width=2, count=2 → 1
Берём кусок [6, 5] (позиции 2–3) и делаем из него [5, 5] за 1 операцию, а кусок [2, 2] (позиции 5–6) уже ровный. Итого 1.
values=[1, 7, 3, 3, 8], width=3, count=1 → 4
Лучший кусок — [7, 3, 3]: опускаем 7 до 3 за 4 операции. Кусок [3, 3, 8] обошёлся бы в 5, а [1, 7, 3] — в 6.
values=[-2, 2, -2, 2], width=2, count=2 → 8
Куски не пересекаются, поэтому придётся взять [-2, 2] и [-2, 2]; каждый выравнивается за 4 операции, итого 8.
values.length ≤ 10⁵values[i] ≤ 10⁶width ≤ values.lengthcount ≤ 15width · count ≤ values.lengthvalues=[4, 10, 6, 5, 0, 2, 2, 9], width=2, count=2
1
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 80 тестов на сервере, включая скрытые.