C - Sequence

Time Limit: 2 sec / Memory Limit: 256 MB

問題文

• すべてのi (1≦i≦n) に対し、第 1 項から第 i 項までの和は 0 でない
• すべてのi (1≦i≦n-1) に対し、i 項までの和と i+1 項までの和の符号が異なる

• 2≦ n ≦ 10^5
• |a_i| ≦ 10^9
• a_i は整数

入力

n
a_1 a_2 ... a_n


入力例 1

4
1 -3 1 0


出力例 1

4


入力例 2

5
3 -6 4 -5 7


出力例 2

0


はじめから条件を満たしています。

入力例 3

6
-1 4 3 2 -5 4


出力例 3

8


Score : 300 points

Problem Statement

You are given an integer sequence of length N. The i-th term in the sequence is a_i. In one operation, you can select a term and either increment or decrement it by one.

At least how many operations are necessary to satisfy the following conditions?

• For every i (1≤i≤n), the sum of the terms from the 1-st through i-th term is not zero.
• For every i (1≤i≤n-1), the sign of the sum of the terms from the 1-st through i-th term, is different from the sign of the sum of the terms from the 1-st through (i+1)-th term.

Constraints

• 2 ≤ n ≤ 10^5
• |a_i| ≤ 10^9
• Each a_i is an integer.

Input

Input is given from Standard Input in the following format:

n
a_1 a_2 ... a_n


Output

Print the minimum necessary count of operations.

Sample Input 1

4
1 -3 1 0


Sample Output 1

4


For example, the given sequence can be transformed into 1, -2, 2, -2 by four operations. The sums of the first one, two, three and four terms are 1, -1, 1 and -1, respectively, which satisfy the conditions.

Sample Input 2

5
3 -6 4 -5 7


Sample Output 2

0


The given sequence already satisfies the conditions.

Sample Input 3

6
-1 4 3 2 -5 4


Sample Output 3

8