Ctrl K

Три равных отрезка

Лёгкая
Кассир записал в массив amounts изменения выручки за день по порядку. Он хочет разрезать день на три непустых непрерывных отрезка — утро, день и вечер — так, чтобы сумма чисел в каждом отрезке была одинаковой. Верните True, если такое разбиение существует, и False иначе. Переставлять элементы нельзя, каждый элемент попадает ровно в один отрезок.
Пример 1
amounts=[4, -1, 2, 5, 0, 3, 2] → True

Подходит разбиение [4, -1, 2] = 5, [5] = 5, [0, 3, 2] = 5.

Пример 2
amounts=[1, 2, 3, 3] → True

Сумма 9, каждый кусок должен давать 3: [1, 2] = 3, [3] = 3, [3] = 3.

Пример 3
amounts=[2, 2, 2, -3, 3] → True

Сумма 6, нужны куски по 2. Например: [2], [2], [2, -3, 3].

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

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