output_description: Print the answer as an integer.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      A_0 A_1 A_2 \cdots A_N
attempt: def check(d, nums):
  
      if d > 0 and not (nums[0] == 0):
          return "-1"
  
      if d == 0 and nums[0] == 0:
          return "-1"
  
      for i in range(len(nums)):
          if nums[i] > 2**i:
              return "-1"
  
      fullnode = 2 ** (d + 1) - 1
      lostnode = 0
      for i, n in enumerate(nums):
          lostnode += n * (2 ** (d + 1 - i) - 2)
          print(lostnode)
      return str(fullnode - lostnode)
  
  
  """
  def recTree(d,nums,children):
    if d==0 and len(nums) == 1 and nums[0]==0:
      return 1
    if d > 0 and len(nums) == d+1:
      print(d,":",((children+1)//2) ,"+", nums[-1])
      return ((children+1)//2) + nums[-1] + recTree(d-1, nums[:-1], nums[-1])
    
  """
  d = int(input())
  nums = list(map(int, input().split(" ")))
  print(check(d, nums))
  
problem_description: Statement
  
  Given is an integer sequence of length N+1: A_0, A_1, A_2, \ldots, A_N. Is
  there a binary tree of depth N such that, for each d = 0, 1, \ldots, N, there
  are exactly A_d leaves at depth d? If such a tree exists, print the maximum
  possible number of vertices in such a tree; otherwise, print -1.
samples: [{"input": "3\n    0 1 1 2", "output": "7\n    \n\nBelow is the tree with the maximum possible number of vertices. It has seven\nvertices, so we should print 7.\n\n![0d8d99d13df036f23b0c9fcec52b842b.png](https://img.atcoder.jp/nomura2020/0d8d99d13df036f23b0c9fcec52b842b.png)\n\n* * *"}, {"input": "4\n    0 0 1 0 2", "output": "10\n    \n\n* * *"}, {"input": "2\n    0 3 1", "output": "-1\n    \n\n* * *"}, {"input": "1\n    1 1", "output": "-1\n    \n\n* * *"}, {"input": "10\n    0 0 1 1 2 3 5 8 13 21 34", "output": "264"}]