func_code_string: #include <bits/stdc++.h>   int n;   int a[(200010) << 1], b[(200010) << 1];   int pa[(200010) << 1], sa[(200010) << 1];   int pb[(200010) << 1], sb[(200010) << 1];   struct node {     int x, y;   } p[(200010)];   long long solve(int t) {     memset(a, 0, sizeof(a));     memset(b, 0, sizeof(b));     memset(pa, 0, sizeof(pa));     memset(pb, 0, sizeof(pb));     memset(sa, 0, sizeof(sa));     memset(sb, 0, sizeof(sb));     for (int i = 0; i < (200010) << 1; ++i) {       b[i] = ((200010) << 1) - 1;     }     for (int i = 0; i < n; ++i) {       if ((p[i].x & 1) ^ t) continue;       a[p[i].x] = std::max(a[p[i].x], p[i].y);       b[p[i].x] = std::min(b[p[i].x], p[i].y);     }     pb[0] = sb[((200010) << 1) - 1] = ((200010) << 1) - 1;     for (int i = 1; i < (200010) << 1; ++i) {       pa[i] = std::max(pa[i - 1], a[i]);       pb[i] = std::min(pb[i - 1], b[i]);     }     for (int i = ((200010) << 1) - 2; ~i; --i) {       sa[i] = std::max(sa[i + 1], a[i]);       sb[i] = std::min(sb[i + 1], b[i]);     }     long long ret = 0;     for (int i = 1 + t; i < ((200010) << 1) - 1; i += 2) {       int l = std::min(pa[i - 1], sa[i + 1]);       int r = std::max(pb[i - 1], sb[i + 1]);       if (l <= r) {         ret += (200010);         continue;       }       if ((l ^ i) & 1) ++l;       if ((r ^ i) & 1) --r;       ret += ((((200010) << 1) - 1 - l) >> 1) + 1;       ret += (r >> 1) + 1;     }     return ret;   }   int main() {     scanf( %d , &n);     for (int i = 0; i < n; ++i) {       int x, y;       scanf( %d%d , &x, &y);       p[i] = {x + y + (200010), x - y + (200010)};     }     long long ans =         1ll * ((200010) << 1) * (((200010) << 1) - 2) / 2 - solve(0) - solve(1);     printf( %I64d n , ans);     return 0;   }   