Ctrl K

Выбросить треть и сравнить половины

Сложная
Дан массив values из 3n целых чисел. Удалите из него ровно n любых элементов (не обязательно подряд); остальные 2n сохраняют исходный порядок. Оставшийся массив делится пополам: первые n элементов — левая половина, следующие n — правая. Разность — это сумма левой половины минус сумма правой; она может быть отрицательной. Верните минимально возможную разность.
Пример 1
values=[4, 2, 6] → -4

Здесь n = 1. Если убрать 6, останется [4, 2] и разность 4 - 2 = 2; если убрать 4 — [2, 6] и 2 - 6 = -4; если убрать 2 — [4, 6] и -2. Минимум -4.

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

n = 2. Убираем 2 и 3: остаётся [5, 1, 8, 7], разность (5 + 1) - (8 + 7) = -9. Меньше получить нельзя.

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

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