#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
struct node {
  int x, y;
} pnt[N], res[N];
int iabs(int x) { return x > 0 ? x : -x; }
bool cmp(const node &a, const node &b) {
  return a.y != b.y ? a.y < b.y : a.x < b.x;
}
bool mult(const node &a, const node &b, const node &c) {
  return (long long)(a.x - c.x) * (long long)(b.y - c.y) >=
         (long long)(b.x - c.x) * (long long)(a.y - c.y);
}
int graham(int n, node pnt[], node res[]) {
  sort(pnt, pnt + n, cmp);
  if (n == 0) return 0;
  res[0] = pnt[0];
  if (n == 1) return 1;
  res[1] = pnt[1];
  if (n == 2) return 2;
  res[2] = pnt[2];
  int top = 1;
  for (int i = 2; i < n; i++) {
    while (top && mult(pnt[i], res[top], res[top - 1])) top--;
    res[++top] = pnt[i];
  }
  int len = top;
  res[++top] = pnt[n - 2];
  for (int i = n - 3; i >= 0; i--) {
    while (top != len && mult(pnt[i], res[top], res[top - 1])) top--;
    res[++top] = pnt[i];
  }
  return top + 1;
}
int main() {
  int n, t_cnt = 0;
  while (scanf("%d", &n) != EOF) {
    int data = 0;
    for (int i = 0; i < n; i++) scanf("%d%d", &pnt[i].x, &pnt[i].y);
    int nn = graham(n, pnt, res);
    for (int i = 0; i < nn; i++) {
      int x = iabs(res[i].x - res[(i + 1) % (nn)].x);
      int y = iabs(res[i].y - res[(i + 1) % (nn)].y);
      data += max(x, y);
    }
    printf("%d\n", data + 4);
  }
  return 0;
}
