#include <bits/stdc++.h>
using namespace std;
const int MOD(1000000007);
const int INF((1 << 30) - 1);
const int MAXN(110);
int a[MAXN];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  if (n == 1 || n % 2 == 0) {
    printf("-1");
    return 0;
  }
  int i = n / 2, cnt = 0;
  while (i >= 1) {
    while (a[2 * i] || a[2 * i + 1]) {
      if (a[i]) a[i]--;
      if (a[2 * i]) a[2 * i]--;
      if (a[2 * i + 1]) a[2 * i + 1]--;
      cnt++;
    }
    i--;
  }
  i = 1;
  while (2 * i + 1 <= n) {
    while (a[i]) {
      a[i]--;
      if (a[2 * i]) a[2 * i]--;
      if (a[2 * i + 1]) a[2 * i + 1]--;
      cnt++;
    }
    i++;
  }
  printf("%d", cnt);
}
