Войти Регистрация
Алгоритмы

204. День, который делит расходы поровну

Лёгкая

В аналитике расходов Альфа‑Банка spent[i] — траты клиента за i-й день месяца в рублях; возвраты дают отрицательные значения.

Найдите самый ранний день i, для которого сумма трат во все дни до него равна сумме трат во все дни после него (сам день i не считается ни туда, ни сюда). Если такого дня нет, верните −1.

В работе: Экран «середина месяца по деньгам» отмечает день, до и после которого клиент потратил поровну. Расчёт идёт ночью по всем клиентам, у части из них история за год — 365 дней, и квадратичный пересчёт сумм не влезает в окно выгрузки.

Пример 1

Ввод
spent = [1200, 300, 800, 4000, 500, 1800]
Вывод
3

До 3-го дня 2300, после — 2300.

Пример 2

Ввод
spent = [0]
Вывод
0

Слева и справа пусто — обе суммы 0.

Ограничения

  • 1 ≤ n ≤ 10⁵
  • −10⁶ ≤ spent[i] ≤ 10⁶
  • Лимит — 2 с на тест (1500 мс).
Как вызывается ваш код Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула. print() и console.log() уходят в консоль.
def balance_day(spent):
Префиксные суммыМассивцельO(n)

Источник: наша задача на данных Альфа-Банка. Условие пересказано своими словами.