Алгоритм
Чтобы найти положение точки опоры в непустом списке числовых значений, уравновешивающей веса по обе стороны от нее, для каждого индекса в списке алгоритм определяет совокупный вес по обе стороны и возвращает индекс, в котором точка опоры сохраняет баланс (т. е. когда сумма весов по левую сторону равна сумме весов по правую сторону). Если такой позиции не существует, алгоритм возвращает –1.
Ниже подробно описаны шаги, выполняемые алгоритмом.
1. Получает список чисел weights.
2. Использует цикл for с функцией range для перебора индексов во входном списке.
3. Для каждого индекса i вычисляется сумма весов слева от точки опоры (сумма значений элементов с индексами меньше i), дополнительно при подсчете суммы значение каждого элемента умножается на его расстояние от точки опоры (т. е. i – j). Аналогично определяется сумма весов справа от точки опоры (сумма значений элементов с индексами больше i).
4. Если суммы весов слева и справа равны (т. е. точка опоры сбалансирована), то возвращается текущий индекс i.
5. Если позиция, удовлетворяющая условиям задачи, не найдена, то возвращается –1.
Следуя этим шагам, алгоритм может определить положение точки опо- ры, уравновешивающей веса во входном списке.