#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
long long solve(vector<int> &xp, vector<int> &yp) {
  int n = xp.size();
  if (n < 4) return 0;
  vector<int> x(n), y(n);
  for (int i = 0; i < n; ++i) {
    x[i] = xp[i] - yp[i];
    y[i] = xp[i] + yp[i];
  }
  vector<pair<int, int> > p(n);
  for (int i = 0; i < n; ++i) p[i] = pair<int, int>(x[i], y[i]);
  sort((p).begin(), (p).end());
  vector<int> mi_l(n, INF), ma_l(n, -INF), mi_r(n, INF), ma_r(n, -INF);
  for (int i = 0; i < n; ++i) {
    if (i > 0) {
      mi_l[i] = mi_l[i - 1];
      ma_l[i] = ma_l[i - 1];
    }
    mi_l[i] = min(mi_l[i], p[i].second);
    ma_l[i] = max(ma_l[i], p[i].second);
  }
  for (int i = n - 1; i >= 0; --i) {
    if (i < n - 1) {
      mi_r[i] = mi_r[i + 1];
      ma_r[i] = ma_r[i + 1];
    }
    mi_r[i] = min(mi_r[i], p[i].second);
    ma_r[i] = max(ma_r[i], p[i].second);
  }
  long long ret = 0;
  for (int i = 1; i <= n - 3; ++i) {
    long long w = (p[i + 1].first - p[i].first) / 2;
    long long h = (min(ma_l[i], ma_r[i + 1]) - max(mi_l[i], mi_r[i + 1])) / 2;
    if (h > 0) ret += w * h;
  }
  return ret;
}
int main() {
  int n;
  cin >> n;
  vector<int> x(n), y(n), x_e, y_e, x_o, y_o;
  for (int i = 0; i < n; ++i) {
    scanf("%d %d", &x[i], &y[i]);
    if (abs(x[i] + y[i]) % 2) {
      x_o.push_back(x[i]);
      y_o.push_back(y[i]);
    } else {
      x_e.push_back(x[i]);
      y_e.push_back(y[i]);
    }
  }
  cout << solve(x_o, y_o) + solve(x_e, y_e) << endl;
  return 0;
}
