description: <image>
  
  William has a favorite bracket sequence. Since his favorite sequence is quite big he provided it to you as a sequence of positive integers c_1, c_2, ..., c_n where c_i is the number of consecutive brackets "(" if i is an odd number or the number of consecutive brackets ")" if i is an even number.
  
  For example for a bracket sequence "((())()))" a corresponding sequence of numbers is [3, 2, 1, 3].
  
  You need to find the total number of continuous subsequences (subsegments) [l, r] (l ≤ r) of the original bracket sequence, which are regular bracket sequences.
  
  A bracket sequence is called regular if it is possible to obtain correct arithmetic expression by inserting characters "+" and "1" into this sequence. For example, sequences "(())()", "()" and "(()(()))" are regular, while ")(", "(()" and "(()))(" are not.
  
  Input
  
  The first line contains a single integer n (1 ≤ n ≤ 1000), the size of the compressed sequence.
  
  The second line contains a sequence of integers c_1, c_2, ..., c_n (1 ≤ c_i ≤ 10^9), the compressed sequence.
  
  Output
  
  Output a single integer — the total number of subsegments of the original bracket sequence, which are regular bracket sequences.
  
  It can be proved that the answer fits in the signed 64-bit integer data type.
  
  Examples
  
  Input
  
  
  5
  4 1 2 3 1
  
  
  Output
  
  
  5
  
  
  Input
  
  
  6
  1 3 2 1 2 4
  
  
  Output
  
  
  6
  
  
  Input
  
  
  6
  1 1 1 1 2 2
  
  
  Output
  
  
  7
  
  Note
  
  In the first example a sequence (((()(()))( is described. This bracket sequence contains 5 subsegments which form regular bracket sequences:
  
    1. Subsequence from the 3rd to 10th character: (()(()))
    2. Subsequence from the 4th to 5th character: ()
    3. Subsequence from the 4th to 9th character: ()(())
    4. Subsequence from the 6th to 9th character: (())
    5. Subsequence from the 7th to 8th character: ()
  
  
  
  In the second example a sequence ()))(()(()))) is described.
  
  In the third example a sequence ()()(()) is described.
solution: import sys
  
  input = sys.stdin.readline
  
  
  # def sv1(ls, start):
  #     sample = []
  #     for _ in ls:
  #         sample.append(start)
  #         start = 1 - start
  #     memo = []
  #     for i in range(len(ls)):
  #         if ls[i] != sample[i]:
  #             memo.append(i)
  #     if not memo:
  #         return 0
  #     if len(memo) % 2 != 0:
  #         raise RuntimeError
  #     ret = 0
  #     for i in range(0, len(memo), 2):
  #         ret += abs(memo[i] - memo[i + 1])
  #     return ret
  #
  #
  # def sv(ls):
  #     ls = [1 if i % 2 == 1 else 0 for i in ls]
  #     odd = sum(ls)
  #     even = len(ls) - odd
  #     if abs(odd - even) > 1:
  #         return -1
  #     if odd > even:
  #         return sv1(ls, 1)
  #     elif odd < even:
  #         return sv1(ls, 0)
  #     else:
  #         return min(sv1(ls, 0), sv1(ls, 1))
  
  
  # def main():
  #     for _ in range(int(input())):
  #         input()
  #         ls = list(map(int, input().split()))
  #         print(sv(ls))
  
  def sv(ls):
      ret = 0
      deep = 0
      stack = []
      for i in range(len(ls)):
          v = ls[i]
          if i % 2 == 0:
              deep += v
          else:
              append = True
              if v > deep:
                  append = False
              v = min(v, deep)
              ret += v
              deep -= v
              memo = None
              while stack:
                  depth, vv = stack[-1]
                  if depth < deep:
                      break
                  depth, vv = stack.pop()
                  if append and depth == deep:
                      memo = [depth, vv + 1]
                  ret += vv
              if append:
                  if memo:
                      stack.append(memo)
                  else:
                      stack.append([deep, 1])
      return ret
  
  
  def main():
      input()
      a = list(map(int, input().split()))
      print(sv(a))
  
  
  main()
  