Ctrl K

Точка равновесия

Лёгкая
На длинной планке в ряд лежат грузы, их веса записаны в массиве weights (вес может быть и отрицательным — например, у воздушного шарика). Найдите индекс груза, который делит планку поровну: сумма весов строго левее него равна сумме весов строго правее. Если груз стоит с краю, сумма с пустой стороны считается равной 0. Если подходящих индексов несколько, верните самый левый; если ни одного — верните -1.
Пример 1
weights=[4, -2, 9, 5, -3] → 2

Слева от индекса 2 лежат 4 и -2 (сумма 2), справа — 5 и -3 (сумма тоже 2). У индексов 0 и 1 суммы не совпадают.

Пример 2
weights=[7, 3, -3] → 0

Слева от индекса 0 ничего нет, сумма 0; справа 3 + (-3) = 0. Это самая левая точка равновесия.

Пример 3
weights=[1, 2, 4] → -1

Ни для одного индекса суммы слева и справа не равны.

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

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