#include <bits/stdc++.h>
using namespace std;
struct punto {
  long long x, y;
  punto(long long a, long long b) {
    x = a;
    y = b;
  }
  bool operator<(punto P) const {
    if (x != P.x) return x < P.x;
    return y < P.y;
  }
};
long long dist(punto P, punto Q) { return max(abs(P.x - Q.x), abs(P.y - Q.y)); }
long long area(punto &A, punto &B, punto &C) {
  return A.x * B.y + B.x * C.y + C.x * A.y - A.y * B.x - B.y * C.x - C.y * A.x;
}
int n;
vector<punto> v;
vector<punto> H;
void Hull() {
  H.clear();
  H.resize(v.size() * 2, punto(0, 0));
  int k = 0;
  sort(v.begin(), v.end());
  for (int i = 0; i < v.size(); i++) {
    while (k >= 2 && area(H[k - 2], H[k - 1], v[i]) <= 0) k--;
    H[k++] = v[i];
  }
  for (int i = v.size() - 2, t = k + 1; i >= 0; i--) {
    while (k >= t && area(H[k - 2], H[k - 1], v[i]) <= 0) k--;
    H[k++] = v[i];
  }
  H.resize(k, punto(0, 0));
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    int a, b;
    scanf("%d%d", &a, &b);
    v.push_back(punto(a - 1, b));
    v.push_back(punto(a + 1, b));
    v.push_back(punto(a, b - 1));
    v.push_back(punto(a, b + 1));
  }
  Hull();
  long long res = 0;
  for (int i = 0; i < H.size(); i++) {
    int j = (i ? i - 1 : H.size() - 1);
    res += dist(H[i], H[j]);
  }
  cout << res << endl;
}
