#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e5 + 10, mod = 1e9 + 7, INF = 0x3f3f3f3f;
const double eps = 1e-8;
struct P {
  double x, y;
  P() {}
  P(double _x, double _y) : x(_x), y(_y) {}
  P operator-(const P& t) { return P(x - t.x, y - t.y); }
};
inline int sign(double x) { return (x > eps) - (x < -eps); }
inline double cross(P a, P b) { return a.x * b.y - a.y * b.x; }
inline double cross(P a, P b, P c) {
  return (b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x);
}
inline double dis(P a, P b) {
  return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
P p[maxn], hull[maxn];
bool cmp(const P& b, const P& c) {
  double tmp = cross(b, c, p[0]);
  if (tmp > eps) return 1;
  if (fabs(tmp) < eps && dis(b, p[0]) < dis(c, p[0])) return 1;
  return 0;
}
int graham(P* hull, P* p, int n) {
  int k = 0;
  for (int i = 1; i < n; ++i)
    if (sign(p[k].y - p[i].y) > 0 ||
        (!sign(p[i].y - p[k].y) && sign(p[k].x - p[i].x) > 0))
      k = i;
  swap(p[0], p[k]);
  sort(p + 1, p + n, cmp);
  for (int i = 0; i < 3; ++i) hull[i] = p[i];
  if (n < 3) return n;
  int top = 3;
  for (int i = 3; i < n; ++i) {
    while (top >= 2 && cross(hull[top - 2], hull[top - 1], p[i]) < eps) --top;
    hull[top++] = p[i];
  }
  return top;
}
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; ++i) scanf("%lf%lf", &p[i].x, &p[i].y);
  n = graham(hull, p, n);
  hull[n] = hull[0];
  long long ans = 0;
  for (int i = 0; i < n; ++i)
    ans += max(abs(int(hull[i].x) - int(hull[i + 1].x)),
               abs(int(hull[i].y) - int(hull[i + 1].y)));
  cout << ans + 4;
  return 0;
}
