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