#include <bits/stdc++.h>
using namespace std;
int t[35], mp[400][400], n;
void dfs(int step, int x, int y, int dir) {
  if (step > n) return;
  if (dir == 0) {
    dfs(step + 1, x, y + t[step], 1 - dir);
    for (int i = 0; i < 400; i++)
      for (int j = 0; j < 400; j++)
        if (mp[i][j]) {
          mp[i][j] = mp[x * 2 - i][j] = 1;
        }
    for (int i = 1; i <= t[step]; i++) mp[x][y + i] = 1;
  } else {
    dfs(step + 1, x + t[step], y + t[step], 1 - dir);
    int b = y - x;
    for (int i = 0; i < 400; i++)
      for (int j = 0; j < 400; j++)
        if (mp[i][j]) {
          mp[i][j] = mp[j - b][i + b] = 1;
        }
    for (int i = 1; i <= t[step]; i++) {
      mp[x + i][y + i] = 1;
    }
  }
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d", t + i);
  memset(mp, 0, sizeof(mp));
  dfs(1, 200, 199, 0);
  int ans = 0;
  for (int i = 0; i < 400; i++)
    for (int j = 0; j < 400; j++)
      if (mp[i][j]) ans++;
  cout << ans << endl;
  return 0;
}
