你可能知道在漫畫《阿斯特里克斯和首領之盾》(Asterix and the Chieftain’s Shield) 中,日爾戈維亞 (Gergovia) 有一條街,且街上的居民都是紅酒推銷員。你想知道這個城鎮的經濟是怎麼運作的?很簡單:每個人向城鎮的其他居民買紅酒就行啦。每一天,每個居民都會決定要買或賣多少紅酒,有趣的是,需求和供給量總會是一樣的,因此每位居民都會得到他想要的。
這裡有一個問題:將紅酒從一間房子送到另外一間是很費力的,因為所有的酒品質都很好,日爾戈維亞的居民並不在意跟誰交易,他們只關注買了或賣了多少酒,因此他們會用聰明的腦袋來找出花費最少力氣來運送這些紅酒的方法。
所以在這問題中,你被請求去重建日爾戈維亞一天的貿易,為了簡化問題,我們假設街上相鄰兩棟房子之間的距離是一樣的,從一棟房子運送一瓶紅酒到相鄰的房子需花費一單位的力氣。
Input Specification
輸入包含數組測試資料。每組測試資料一開始為 n ($2\leq{n}\leq{100000}$),街下來的一行有 n 個整數 $a_i$ ($-1000\leq{a_i}\leq{1000}$),如果 $a_i\geq{0}$,代表住在第 i 棟房子的居民想要買 $a_i$ 瓶紅酒,否則如果 $a_i < 0$,則想賣 $-a_i$ 瓶。你可以假設所有 $a_i$ 的總和為 0。
最後一組測試資料只有包含 0
的一行。
Output Specification
對於每組測資,印出滿足每位居民需求所花費的最小力氣。你可以假設這個數字可以用 64 位元有號整數 (sign 64-bit integer) 表示。(在 C/C++ 中,你可以用 long long
;在 JAVA 則用 long
)
Sample Input
5
5 -4 1 -3 1
6
-1000 -1000 -1000 1000 1000 1000
0
Sample Output
9
9000