#include <bits/stdc++.h>
using namespace std;
int mod = (int)1e9 + 7;
const double EPS = 1e-9;
const double PI = acos(-1.0);
const int oo = (int)1e9;
const int MAX = 100009;
int n;
int t[MAX];
int di[8] = {0, -1, -1, -1, 0, 1, 1, 1};
int dj[8] = {1, 1, 0, -1, -1, -1, 0, 1};
struct cell {
  int i, j;
  int dir;
  cell() {}
  cell(int _i, int _j, int _dir) : i(_i), j(_j), dir(_dir) {}
};
int main() {
  ios::sync_with_stdio(false);
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> t[i];
  }
  int gg = 1000;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  gg++;
  gg--;
  map<pair<int, int>, int> M;
  queue<cell> Q;
  Q.push(cell(0, 0, 2));
  int sz = 1;
  for (int tt = 0; tt < n; tt++) {
    int act = t[tt];
    vector<cell> temp;
    map<pair<pair<int, int>, int>, int> ex;
    int cnt = 0;
    while (sz--) {
      cell c = Q.front();
      Q.pop();
      int i = c.i;
      int j = c.j;
      int d = c.dir;
      for (int k = 0; k < act; k++) {
        M[make_pair(i, j)] = 1;
        if (k != act - 1) {
          i += di[d];
          j += dj[d];
        }
      }
      int d1 = (d + 1) % 8;
      int d2 = (d + 7) % 8;
      int ii = i + di[d1];
      int jj = j + dj[d1];
      if (!ex.count(make_pair(make_pair(ii, jj), d1))) {
        Q.push(cell(ii, jj, d1));
        ++cnt;
        ex[make_pair(make_pair(ii, jj), d1)] = 1;
      }
      ii = i + di[d2];
      jj = j + dj[d2];
      if (!ex.count(make_pair(make_pair(ii, jj), d2))) {
        Q.push(cell(ii, jj, d2));
        ++cnt;
        ex[make_pair(make_pair(ii, jj), d2)] = 1;
      }
    }
    sz = cnt;
  }
  cout << M.size() << endl;
  return 0;
}
