«Не будь ни заёмщиком, ни кредитором». Как Bessie жалеет, что не послушалась! Она брала или давала деньги каждому из $N$ друзей, $(1 \le N \le 100,000)$, с номерами $1,\ldots,N$.
Настал день расчёта. Ей должны больше, чем она должна другим. Коровы в ряд, корова $i$ в $i$ метрах от сарая. Bessie соберёт свои деньги и вернёт долги.
Идя вдоль ряда, она может попросить любого должника вернуть деньги. Когда хватает на часть или все долги, может выплатить только что полученные деньги кредиторам. Корова $i$ должна Bessie $D_{i}$, $(-1,000 \le D_{i} \le 1,000; D_{i} \ne 0)$. Отрицательное значение значит обратный долг: должна Bessie.
Она начинает у сарая, в позиции 0. Каково минимальное расстояние для сбора всех денег и возврата всех долгов? Завершить нужно в конце ряда.
Входные данные
- Строка 1: целое $N$.
- Строки $2,\ldots,N+1$: строка $i+1$ содержит целое $D_{i}$.
Выходные данные
- Строка 1: целое, суммарное расстояние в метрах для расчёта с каждой коровой.
Примеры
Входные данные 1
5 100 -200 250 -200 200
Выходные данные 1
9
Примечание
Три коровы должны Bessie, она должна двум. В конце у неё 150 денег.
100 -200 250 -200 200
| | | | | |
***>**+**>*****>**+
* < У Bessie 350
-**<***
* < У Bessie 150
***>****>****>**+
* < У Bessie 350
-**<***
*
***>*** < Bessie заканчивает с 150*Слева сарай.
Автор задачи: Jarrah Lacko, 2009