output_description: Print the minimum necessary count of operations.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      n
      a_1 a_2 ... a_n
attempt: # -*- coding: utf-8 -*-
  import sys
  import math
  import os
  import itertools
  import string
  import heapq
  import _collections
  from collections import Counter
  from collections import defaultdict
  from functools import lru_cache
  import bisect
  import re
  import queue
  
  
  class Scanner:
      @staticmethod
      def int():
          return int(sys.stdin.readline().rstrip())
  
      @staticmethod
      def string():
          return sys.stdin.readline().rstrip()
  
      @staticmethod
      def map_int():
          return [int(x) for x in Scanner.string().split()]
  
      @staticmethod
      def string_list(n):
          return [input() for i in range(n)]
  
      @staticmethod
      def int_list_list(n):
          return [Scanner.map_int() for i in range(n)]
  
      @staticmethod
      def int_cols_list(n):
          return [int(input()) for i in range(n)]
  
  
  class Math:
      @staticmethod
      def gcd(a, b):
          if b == 0:
              return a
          return Math.gcd(b, a % b)
  
      @staticmethod
      def lcm(a, b):
          return (a * b) // Math.gcd(a, b)
  
      @staticmethod
      def roundUp(a, b):
          return -(-a // b)
  
      @staticmethod
      def toUpperMultiple(a, x):
          return Math.roundUp(a, x) * x
  
      @staticmethod
      def toLowerMultiple(a, x):
          return (a // x) * x
  
      @staticmethod
      def nearPow2(n):
          if n <= 0:
              return 0
          if n & (n - 1) == 0:
              return n
          ret = 1
          while n > 0:
              ret <<= 1
              n >>= 1
          return ret
  
      @staticmethod
      def sign(n):
          if n == 0:
              return 0
          if n < 0:
              return -1
          return 1
  
      @staticmethod
      def isPrime(n):
          if n < 2:
              return False
          if n == 2:
              return True
          if n % 2 == 0:
              return False
          d = int(n**0.5) + 1
          for i in range(3, d + 1, 2):
              if n % i == 0:
                  return False
          return True
  
  
  class PriorityQueue:
      def __init__(self, l=[]):
          self.__q = l
          heapq.heapify(self.__q)
          return
  
      def push(self, n):
          heapq.heappush(self.__q, n)
          return
  
      def pop(self):
          return heapq.heappop(self.__q)
  
  
  MOD = int(1e09) + 7
  INF = int(1e15)
  
  
  def main():
      # sys.stdin = open("sample.txt")
      N = Scanner.int()
      A = Scanner.map_int()
      s1, s2 = 0, 0
      c1, c2 = 0, 0
      for i in range(N):
          if i % 2 == 0:
              if s1 + A[i] > 0:
                  s1 += A[i]
              else:
                  c1 += abs(s1 + A[i]) + 1
                  s1 = 1
              if s2 + A[i] < 0:
                  s2 += A[i]
              else:
                  c2 += abs(s2 + A[i]) + 1
                  s2 = -1
          else:
              if s1 + A[i] < 0:
                  s1 += A[i]
              else:
                  c1 += abs(s1 + A[i]) + 1
                  s1 = -1
              if s2 + A[i] > 0:
                  s2 += A[i]
              else:
                  c2 += abs(s2 + A[i]) + 1
                  s2 = 1
      print(min(c1, c2))
      return
  
  
  if __name__ == "__main__":
      main()
  
problem_description: 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.
samples: [{"input": "4\n    1 -3 1 0", "output": "4\n    \n\nFor example, the given sequence can be transformed into 1, -2, 2, -2 by four\noperations. The sums of the first one, two, three and four terms are 1, -1, 1\nand -1, respectively, which satisfy the conditions.\n\n* * *"}, {"input": "5\n    3 -6 4 -5 7", "output": "0\n    \n\nThe given sequence already satisfies the conditions.\n\n* * *"}, {"input": "6\n    -1 4 3 2 -5 4", "output": "8"}]