#include <bits/stdc++.h>
using namespace std;
int cmp(double a, double b = 0.0) { return a + 1e-9 < b ? -1 : a - 1e-9 > b; }
struct Point {
  long long x, y;
  Point(long long a = 0.0, long long b = 0.0) { x = a, y = b; }
  Point operator+(const Point &P) const { return Point(x + P.x, y + P.y); }
  Point operator-(const Point &P) const { return Point(x - P.x, y - P.y); }
  double operator!() const { return sqrt(x * x + y * y); }
  bool operator==(const Point &p) const { return !cmp(x, p.x) && !cmp(y, p.y); }
  bool operator<(const Point &p) const {
    if (cmp(x, p.x)) return cmp(x, p.x) < 0;
    return cmp(y, p.y) < 0;
  }
};
Point pmin;
long long cross(Point A, Point B) { return A.x * B.y - B.x * A.y; }
bool lessThan(Point A, Point B) {
  if (cmp(cross(A - pmin, B - pmin))) return cmp(cross(A - pmin, B - pmin)) > 0;
  return cmp(!(pmin - A), !(pmin - B)) < 0;
}
int sort(vector<Point> &p) {
  int imin = 0, i, j, n = p.size();
  for (i = 1; i < p.size(); i++) {
    if (p[i] < p[imin]) imin = i;
  }
  swap(p[0], p[imin]);
  pmin = p[0];
  sort(p.begin() + 1, p.end(), lessThan);
  for (i = n - 1; i > 0 && !cmp(cross(p[i] - p[0], p[i - 1] - p[0])); i--)
    ;
  if (i == 0) return 1;
  for (j = 0; j < (n - i) / 2; j++) swap(p[i + j], p[n - j - 1]);
  return 0;
}
vector<Point> convex_hull(vector<Point> &p) {
  int hs = 2, n = p.size();
  vector<Point> hull;
  if (p.size() <= 3) {
    return p;
  }
  int isline = sort(p);
  hull.push_back(p[0]), hull.push_back(p[1]);
  for (int i = 2; i <= n - isline; i++) {
    while (hull.size() > 1 && cmp(cross(p[i % n] - hull[hs - 1],
                                        hull[hs - 2] - hull[hs - 1])) <= 0) {
      hull.pop_back(), hs--;
    }
    if (i < n) hull.push_back(p[i]), hs++;
  }
  return hull;
}
long long dist(Point a, Point b) {
  long long dx = abs(a.x - b.x);
  long long dy = abs(a.y - b.y);
  return max(dx, dy);
}
int main() {
  int n;
  while (cin >> n) {
    vector<Point> p;
    int x, y;
    for (int i = 0; i < n; i++) {
      cin >> x >> y;
      p.push_back(Point(x, y));
    }
    vector<Point> v = convex_hull(p);
    for (int i = 0; i < v.size(); i++) {
      x = v[i].x, y = v[i].y;
      v[i].x = y + x, v[i].y = y - x;
    }
    long long d = v[0].y - 1, u = v[0].y + 1, l = v[0].x - 1, r = v[0].x + 1;
    for (int i = 1; i < v.size(); i++) {
      d = min(d, v[i].y - 1);
      u = max(u, v[i].y + 1);
      l = min(l, v[i].x - 1);
      r = max(r, v[i].x + 1);
    }
    cout << (u - d + r - l) << endl;
  }
  return 0;
}
