#include <iostream>
#include <vector>
#include <set>
using namespace std;
set<pair<int, int>> visitedCells;
vector<int> t;
int dx[] = {0, -1, 1};
int dy[] = {1, 1, 1};
void simulate(int x, int y, int level, int direction) {
if (level == t.size()) return;
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() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
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;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c2V0PgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnNldDxwYWlyPGludCwgaW50Pj4gdmlzaXRlZENlbGxzOwp2ZWN0b3I8aW50PiB0OwoKaW50IGR4W10gPSB7MCwgLTEsIDF9OwppbnQgZHlbXSA9IHsxLCAxLCAxfTsKCnZvaWQgc2ltdWxhdGUoaW50IHgsIGludCB5LCBpbnQgbGV2ZWwsIGludCBkaXJlY3Rpb24pIHsKICAgIGlmIChsZXZlbCA9PSB0LnNpemUoKSkgcmV0dXJuOwogICAgCiAgICBmb3IgKGludCBpID0gMDsgaSA8IHRbbGV2ZWxdOyArK2kpIHsKICAgICAgICB4ICs9IGR4W2RpcmVjdGlvbl07CiAgICAgICAgeSArPSBkeVtkaXJlY3Rpb25dOwogICAgICAgIHZpc2l0ZWRDZWxscy5pbnNlcnQoe3gsIHl9KTsKICAgIH0KICAgIAogICAgc2ltdWxhdGUoeCwgeSwgbGV2ZWwgKyAxLCAxKTsgCiAgICBzaW11bGF0ZSh4LCB5LCBsZXZlbCArIDEsIDIpOyAKfQoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgCiAgICBpbnQgbjsKICAgIGNpbiA+PiBuOwogICAgdC5yZXNpemUobik7CiAgICAKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAgICAgY2luID4+IHRbaV07CiAgICB9CiAgICAKICAgIHZpc2l0ZWRDZWxscy5pbnNlcnQoezAsIDB9KTsKICAgIHNpbXVsYXRlKDAsIDAsIDAsIDApOwogICAgCiAgICBjb3V0IDw8IHZpc2l0ZWRDZWxscy5zaXplKCkgPDwgIlxuIjsKICAgIHJldHVybiAwOwp9