func_code_string: #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;   }   