atcoder#ARC072A. [ABC059C] Sequence

[ABC059C] Sequence

题目描述

長さ N N の数列があり、i i 番目の数は ai a_i です。 あなたは 1 1 回の操作でどれか 1 1 つの項の値を 1 1 だけ増やすか減らすことができます。

以下の条件を満たすために必要な操作回数の最小値を求めてください。

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

输入格式

入力は以下の形式で標準入力から与えられる。

n n a1 a_1 a2 a_2 ... ... an a_n

输出格式

必要な操作回数の最小値を出力せよ。

题目大意

给定一个长度为 NN 的序列 AA,每次操作可以选择一个 ii 使得 AiA_i 大小减 11 或加 11

Si=j=1iAjS_i = \sum\limits_{j = 1} ^ i A_j,求最少的操作次数使得:

  • i[1,n],Si0\forall i \in [1, n], S_i \ne 0

  • i[1,n1],Si×Si+1<0\forall i \in [1, n - 1], S_i \times S_{i + 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 2≦\ n\ ≦\ 10^5
  • ai  109 |a_i|\ ≦\ 10^9
  • ai a_i は整数

Sample Explanation 1

例えば、数列を 1, 2, 2, 2 1,\ -2,\ 2,\ -2 4 4 回の操作で変更することができます。この数列は 1, 2, 3, 4 1,\ 2,\ 3,\ 4 項までの和がそれぞれ 1, 1, 1, 1 1,\ -1,\ 1,\ -1 であるため、条件を満たしています。

Sample Explanation 2

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