#include <bits/stdc++.h>
using namespace std;
struct vec {
  long long x, y;
  vec() {}
  vec(long long x, long long y) : x(x), y(y) {}
  bool operator<(vec const &b) const { return x == b.x ? y < b.y : x < b.x; }
  long long operator^(vec const &b) const { return x * b.y - y * b.x; }
  vec operator-(vec const &b) const { return vec(x - b.x, y - b.y); }
};
void convexHull(vec p[], int N, vec s[], int &m) {
  sort(p, p + N);
  m = 0;
  for (int i = 0; i < N; i++) {
    while ((m > 1) && ((p[i] - s[m]) ^ (s[m - 1] - s[m])) <= 0) m--;
    s[++m] = p[i];
  }
  for (int i = N - 2; i >= 0; i--) {
    while (((p[i] - s[m]) ^ (s[m - 1] - s[m])) <= 0) m--;
    s[++m] = p[i];
  }
}
vec p[(int)4e5 + 1], s[(int)4e5 + 1];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    int x, y;
    scanf("%d %d", &x, &y);
    p[i * 4] = vec(x + 1, y);
    p[i * 4 + 1] = vec(x - 1, y);
    p[i * 4 + 2] = vec(x, y + 1);
    p[i * 4 + 3] = vec(x, y - 1);
  }
  int m;
  convexHull(p, 4 * n, s, m);
  long long ans = 0;
  for (int i = 2; i <= m; i++)
    ans += max(abs(s[i].x - s[i - 1].x), abs(s[i].y - s[i - 1].y));
  cout << ans << "\n";
}
