#include <bits/stdc++.h>
using namespace std;
int n;
struct pt {
  int x, y;
  pt(int x, int y) : x(x), y(y) {}
  pt() {}
};
vector<pt> a;
long long dist(const pt& a, const pt& b) {
  return 1ll * (b.x - a.x) * (b.x - a.x) + 1ll * (b.y - a.y) * (b.y - a.y);
}
long long vect(const pt& a, const pt& b, const pt& c) {
  return 1ll * (b.x - a.x) * (c.y - a.y) - 1ll * (b.y - a.y) * (c.x - a.x);
}
bool operator<(const pt& a, const pt& b) {
  if (a.x != b.x) return a.x < b.x;
  return a.y < b.y;
}
pt center;
bool cmp(const pt& a, const pt& b) {
  if (vect(center, a, b) != 0) return vect(center, a, b) > 0;
  return dist(center, a) < dist(center, b);
}
int main() {
  cin >> n;
  a.resize(n * 4);
  for (int i = 0; i < (int)n; i++) {
    pt p;
    cin >> p.x >> p.y;
    a[i * 4] = pt(p.x, p.y + 1);
    a[i * 4 + 1] = pt(p.x, p.y - 1);
    a[i * 4 + 2] = pt(p.x - 1, p.y);
    a[i * 4 + 3] = pt(p.x + 1, p.y);
  }
  int min_pos = 0;
  for (int i = 0; i < (int)n * 4; i++)
    if (a[i] < a[min_pos]) min_pos = i;
  swap(a[0], a[min_pos]);
  center = a[0];
  sort((a).begin(), (a).end(), cmp);
  vector<pt> b;
  for (int i = 0; i < (int)(int)(a).size(); i++) {
    while ((int)(b).size() > 1 &&
           vect(b[(int)(b).size() - 2], b.back(), a[i]) <= 0)
      b.pop_back();
    b.push_back(a[i]);
  }
  int res = 0;
  for (int i = 0; i < (int)(int)(b).size(); i++) {
    int dx = abs(b[i].x - b[(i + 1) % (int)(b).size()].x);
    int dy = abs(b[i].y - b[(i + 1) % (int)(b).size()].y);
    res += max(dx, dy);
  }
  cout << res;
}
