#include <iostream>
#include <vector>
#include <set>
using namespace std;
set<pair<int, int>> visitedCells;
vector<int> t;
void simulate(int x, int y, int level, int direction) {
if (level == t.size()) return;
int dx[] = {0, -1, 1, -1, 1};
int dy[] = {1, 1, 1, 0, 0};
for (int i = 0; i < t[level]; ++i) {
x += dx[direction];
y += dy[direction];
visitedCells.insert({x, y});
}
simulate(x, y, level + 1, 1);
simulate(x, y, level + 1, 2);
}
int main() {
int n;
cin >> n;
t.resize(n);
for (int i = 0; i < n; ++i) {
cin >> t[i];
}
visitedCells.insert({0, 0});
simulate(0, 0, 0, 0);
cout << visitedCells.size() << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c2V0PgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnNldDxwYWlyPGludCwgaW50Pj4gdmlzaXRlZENlbGxzOwp2ZWN0b3I8aW50PiB0OwoKdm9pZCBzaW11bGF0ZShpbnQgeCwgaW50IHksIGludCBsZXZlbCwgaW50IGRpcmVjdGlvbikgewogICAgaWYgKGxldmVsID09IHQuc2l6ZSgpKSByZXR1cm47CiAgICAKICAgIGludCBkeFtdID0gezAsIC0xLCAxLCAtMSwgMX07IAogICAgaW50IGR5W10gPSB7MSwgMSwgMSwgMCwgMH07CiAgICAKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdFtsZXZlbF07ICsraSkgewogICAgICAgIHggKz0gZHhbZGlyZWN0aW9uXTsKICAgICAgICB5ICs9IGR5W2RpcmVjdGlvbl07CiAgICAgICAgdmlzaXRlZENlbGxzLmluc2VydCh7eCwgeX0pOwogICAgfQogICAgCiAgICBzaW11bGF0ZSh4LCB5LCBsZXZlbCArIDEsIDEpOyAKICAgIHNpbXVsYXRlKHgsIHksIGxldmVsICsgMSwgMik7IAp9CgppbnQgbWFpbigpIHsKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICB0LnJlc2l6ZShuKTsKICAgIAogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBjaW4gPj4gdFtpXTsKICAgIH0KICAgIAogICAgdmlzaXRlZENlbGxzLmluc2VydCh7MCwgMH0pOwogICAgc2ltdWxhdGUoMCwgMCwgMCwgMCk7CiAgICAKICAgIGNvdXQgPDwgdmlzaXRlZENlbGxzLnNpemUoKSA8PCAiXG4iOwogICAgcmV0dXJuIDA7Cn0=