Ctrl K

Равные разрезы после одной замены

Сложная
Дан массив целых чисел weights длины n. **Разрез** после первых c элементов (1 ≤ c ≤ n − 1) называется равным, если сумма первых c элементов совпадает с суммой остальных. Перед подсчётом можно заменить **не больше одного** элемента массива числом spare (или ничего не менять). Верните наибольшее возможное количество равных разрезов.
Пример 1
weights=[3, 1, 2, 4], spare=6 → 1

Без замены: суммы частей при разрезах 3|7, 4|6, 6|4 — ни одного равенства. Заменим 4 на 6: массив [3, 1, 2, 6], разрез 3 + 1 + 2 | 6 даёт 6 = 6. Больше одного равного разреза получить нельзя.

Пример 2
weights=[2, -2, 2, -2, 0], spare=9 → 2

Сумма массива 0. Разрезы после второго и после четвёртого элемента дают 0 = 0 — это 2, и замена здесь не помогает.

Пример 3
weights=[5, 5], spare=1 → 1

Единственный разрез 5 | 5 уже равный.

Ограничения
  • 2 ≤ n ≤ 10⁵
  • -10⁵ ≤ weights[i], spare ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЧисла-близнецы на два обмена СложнаяПиковая высота штоков насоса СложнаяНОД пар по номеру в сортировке СложнаяОдинаковые края на отрезках СредняяПростые числа на лучах сетки Средняя
загружаем Python…
Вход
weights=[3, 1, 2, 4], spare=6
Ожидается
1

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