题目描述
長さ N の数列があり、i 番目の数は ai です。 あなたは 1 回の操作でどれか 1 つの項の値を 1 だけ増やすか減らすことができます。
以下の条件を満たすために必要な操作回数の最小値を求めてください。
- すべてのi (1≦i≦n) に対し、第 1 項から第 i 項までの和は 0 でない
- すべてのi (1≦i≦n−1) に対し、i 項までの和と i+1 項までの和の符号が異なる
输入格式
入力は以下の形式で標準入力から与えられる。
n a1 a2 ... an
输出格式
必要な操作回数の最小値を出力せよ。
题目大意
给定一个长度为 N 的序列 A,每次操作可以选择一个 i 使得 Ai 大小减 1 或加 1。
记 Si=j=1∑iAj,求最少的操作次数使得:
-
∀i∈[1,n],Si=0
-
∀i∈[1,n−1],Si×Si+1<0
4
1 -3 1 0
4
5
3 -6 4 -5 7
0
6
-1 4 3 2 -5 4
8
提示
制約
- 2≦ n ≦ 105
- ∣ai∣ ≦ 109
- ai は整数
Sample Explanation 1
例えば、数列を 1, −2, 2, −2 に 4 回の操作で変更することができます。この数列は 1, 2, 3, 4 項までの和がそれぞれ 1, −1, 1, −1 であるため、条件を満たしています。
Sample Explanation 2
はじめから条件を満たしています。