#include <bits/stdc++.h>
using namespace std;
struct point {
  double x, y;
  double angle;
} a[1200000], chs[1200000];
bool cmp1(point a, point b) {
  if (a.y == b.y)
    return a.x < b.x;
  else
    return a.y < b.y;
}
bool cmp2(point a, point b) {
  if (a.angle == b.angle)
    return a.x < b.x;
  else
    return a.angle < b.angle;
}
double get_angle(point a0, point a1) {
  return atan2((a1.y - a0.y), (a1.x - a0.x));
}
double get_dis(point a1, point a2) {
  return sqrt((a1.x - a2.x) * (a1.x - a2.x) + (a1.y - a2.y) * (a1.y - a2.y));
}
bool line(point a, point b, point c) {
  double kk;
  kk = a.x * b.y + c.x * a.y + b.x * c.y - c.x * b.y - a.x * c.y - b.x * a.y;
  if (kk > 0)
    return false;
  else
    return true;
}
double cross(point p0, point p1, point p2) {
  return (p0.x - p2.x) * (p1.y - p2.y) - (p1.x - p2.x) * (p0.y - p2.y);
}
int main() {
  int n, r, i;
  while (scanf("%d", &n) != EOF) {
    for (i = 0; i < 4 * n; i = i + 4) {
      scanf("%lf%lf", &a[i].x, &a[i].y);
      a[i].x = a[i].x - 1;
      a[i].y = a[i].y;
      a[i + 1].x = a[i].x + 1;
      a[i + 1].y = a[i].y;
      a[i + 2].x = a[i].x;
      a[i + 2].y = a[i].y - 1;
      a[i + 3].x = a[i].x;
      a[i + 3].y = a[i].y + 1;
    }
    sort(a, a + 4 * n, cmp1);
    for (i = 1; i < 4 * n; i++) a[i].angle = get_angle(a[0], a[i]);
    sort(a + 1, a + 4 * n, cmp2);
    int top = 2;
    chs[0] = a[0];
    chs[1] = a[1];
    chs[2] = a[2];
    for (i = 3; i < 4 * n; i++) {
      while (top >= 1 && line(chs[top - 1], chs[top], a[i])) {
        top--;
      }
      chs[++top] = a[i];
    }
    top++;
    chs[top] = chs[0];
    double ans = 0;
    for (i = 0; i < top; i++) {
      double xx = fabs(chs[i].x - chs[i + 1].x);
      double yy = fabs(chs[i].y - chs[i + 1].y);
      if (xx > yy)
        ans += xx;
      else
        ans += yy;
    }
    printf("%.0lf\n", ans);
  }
}
