#include <bits/stdc++.h>
const long double pi = acos(-1.0);
const long double eps = 1e-9;
using namespace std;
struct pt {
  long double x, y;
};
bool cmp(pt a, pt b) { return a.x < b.x || a.x == b.x && a.y < b.y; }
bool cw(pt a, pt b, pt c) {
  return a.x * (b.y - c.y) + b.x * (c.y - a.y) + c.x * (a.y - b.y) < 0;
}
bool ccw(pt a, pt b, pt c) {
  return a.x * (b.y - c.y) + b.x * (c.y - a.y) + c.x * (a.y - b.y) > 0;
}
void convex_hull(vector<pt>& a) {
  if (a.size() == 1) return;
  sort(a.begin(), a.end(), &cmp);
  pt p1 = a[0], p2 = a.back();
  vector<pt> up, down;
  up.push_back(p1);
  down.push_back(p1);
  for (size_t i = 1; i < a.size(); ++i) {
    if (i == a.size() - 1 || cw(p1, a[i], p2)) {
      while (up.size() >= 2 && !cw(up[up.size() - 2], up[up.size() - 1], a[i]))
        up.pop_back();
      up.push_back(a[i]);
    }
    if (i == a.size() - 1 || ccw(p1, a[i], p2)) {
      while (down.size() >= 2 &&
             !ccw(down[down.size() - 2], down[down.size() - 1], a[i]))
        down.pop_back();
      down.push_back(a[i]);
    }
  }
  a.clear();
  for (size_t i = 0; i < up.size(); ++i) a.push_back(up[i]);
  for (size_t i = down.size() - 2; i > 0; --i) a.push_back(down[i]);
}
void solve() {
  int n;
  vector<pt> a;
  cin >> n;
  for (int i = 0; i < n; i++) {
    pt p;
    cin >> p.x >> p.y;
    p.x--;
    a.push_back(p);
    p.x++;
    p.x++;
    a.push_back(p);
    p.x--;
    p.y--;
    a.push_back(p);
    p.y++;
    p.y++;
    a.push_back(p);
    p.y--;
  }
  convex_hull(a);
  n = a.size();
  long long ans = 0;
  for (int i = 0; i < n; i++) {
    ans += max(abs(a[i].x - a[(i + 1) % n].x), abs(a[i].y - a[(i + 1) % n].y));
  }
  cout << ans << endl;
}
int main() {
  ios::sync_with_stdio(NULL), cin.tie(0), cout.tie(0);
  cout.setf(ios::fixed), cout.precision(10);
  int step;
  step = 1;
  for (int i = 1; i <= step; i++) {
    solve();
  }
}
