Ctrl K

Смены знака ради большей суммы

Лёгкая
Дан массив целых чисел values и число flips. Одна операция — выбрать любой индекс i и заменить values[i] на -values[i]. Нужно выполнить ровно flips операций; один и тот же индекс разрешено выбирать сколько угодно раз. Верните наибольшую сумму элементов массива, которую можно получить после всех операций.
Пример 1
values=[-6, 2, -1, 4], flips=2 → 13

Меняем знак у -6 и -1: массив [6, 2, 1, 4], сумма 13.

Пример 2
values=[3, 5, 1], flips=3 → 7

Отрицательных нет, и нечётное число смен знака придётся потратить на одно число. Выгоднее всего — на 1: [3, 5, -1], сумма 7.

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

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