output_description: Print the answer.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      s
attempt: # D
  N = int(input())
  s = list(map(int, list(input())))
  
  res = 0
  i = 0
  
  
  
  L = 0
  for i in range(N):
      if s[i] == 1:
          L = i
          break
  for i in range(N):
      if s[i] == 1:
          M = i        
  
          
  def calc_add(temp_list):
      return sum(temp_list)
  def calc_add_2(temp_list)
      if len(temp_list) <= 1:
          return 0
      else:
          res = 0
          # use 101 for left
          dp_l = [0]*len(temp_list)
          # use 101 for right 
          dp_r = [0]*len(temp_list)
          # do not use 101
          dp_c = [0]*len(temp_list)
          for i in range(len(temp_list) - 1):
              if temp_list[i] > 1:
                  dp_l[i+1] = max(dp_l[i] + temp_list[i] - 1, dp_c[i] + temp_list[i])
              else:
                  dp_l[i+1] = dp_c[i] + temp_list[i]
              if temp_list[i] > 1:
                  dp_r[i+1] = max(dp_l[i] + temp_list[i+1], dp_c[i] + temp_list[i+1], dp_r[i] + temp_list[i+1] - 1)
              else:
                  dp_r[i+1] = dp_c[i] + temp_list[i+1]
              dp_c[i+1] = max(dp_l[i], dp_r[i], dp_c[i])
          
          return max(dp_l[-1], dp_r[-1], dp_c[-1])
      
  
  cont0 = 1
  cont00 = 1
  temp_list = []
  
  for i in range(L, M+1):
      if s[i] == 1:
          if cont0 == 1:
              temp_list.append(1)
              cont0 = 0
              cont00 = 0
          else:
              temp_list[-1] += 1
      else:
          if cont00 == 1:
              pass
          elif cont0 == 1:
              cont00 = 1
              res += calc_add(temp_list)
              temp_list = []
          else:
              cont0 = 1
              
      if i == M:
          res += calc_add(temp_list)
          temp_list = []
          
  print(res)
problem_description: Statement
  
  N cells are arranged in a row. Some of them may contain tokens. You are given
  a string s that consists of `0`s and `1`s. If the i-th character of s is `1`,
  the i-th cell (from left) contains a token. Otherwise, it doesn't contain a
  token.
  
  Snuke wants to perform the following operation as many times as possible. In
  each operation, he chooses three consecutive cells. Let's call the cells X, Y,
  Z from left to right. In order for the operation to be valid, both X and Z
  must contain tokens and Y must not contain a token. Then, he removes these two
  tokens and puts a new token on Y.
  
  How many operations can he perform if he performs operations in the optimal
  way?
samples: [{"input": "7\n    1010101", "output": "2\n    \n\nFor example, he can perform two operations in the following way:\n\n  * Perform an operation on the last three cells. Now the string that represents tokens becomes `1010010`.\n  * Perform an operation on the first three cells. Now the string that represents tokens becomes `0100010`.\n\nNote that the choice of operations matters. For example, if he chooses three\ncells in the middle first, he can perform no more operations.\n\n* * *"}, {"input": "50\n    10101000010011011110001001111110000101010111100110", "output": "10"}]