#include <bits/stdc++.h>
using namespace std;
const int N = 4e6 + 10;
struct point {
  long long x, y;
  point(long long x = 0, long long y = 0) : x(x), y(y) {}
  point operator-(const point &rhs) const {
    return point(x - rhs.x, y - rhs.y);
  }
  bool operator<(const point &rhs) const {
    if (x == rhs.x) return y < rhs.y;
    return x < rhs.x;
  }
  bool operator==(const point &rhs) const { return x == rhs.x && y == rhs.y; }
};
long long cross(point a, point b) { return a.x * b.y - a.y * b.x; }
int n, m, sz, ans;
point p[N], ch[N];
void convexhull() {
  for (int i = 0; i < sz; i++) {
    while (m > 1 && cross(ch[m - 1] - ch[m - 2], p[i] - ch[m - 2]) <= 0) m--;
    ch[m++] = p[i];
  }
  int k = m;
  for (int i = sz - 2; i >= 0; i--) {
    while (m > k && cross(ch[m - 1] - ch[m - 2], p[i] - ch[m - 2]) <= 0) m--;
    ch[m++] = p[i];
  }
  if (sz > 1) m--;
}
int main() {
  scanf("%d", &n);
  for (int i = 0, tx, ty; i < n; i++) {
    scanf("%d%d", &tx, &ty);
    p[4 * i] = point(tx + 1, ty);
    p[4 * i + 1] = point(tx - 1, ty);
    p[4 * i + 2] = point(tx, ty + 1);
    p[4 * i + 3] = point(tx, ty - 1);
  }
  sort(p, p + 4 * n);
  sz = unique(p, p + 4 * n) - p;
  convexhull();
  for (int i = 1; i <= m; i++) {
    int dx = abs(ch[i % m].x - ch[i - 1].x);
    int dy = abs(ch[i % m].y - ch[i - 1].y);
    ans += max(dx, dy);
  }
  cout << ans << endl;
}
