#include <bits/stdc++.h>
using namespace std;
long long n, i, j, ans;
pair<double, pair<long long, long long> > ar[101000];
map<pair<long long, long long>, bool> mp;
stack<long long> q;
vector<long long> p;
long long k1, k2, k3;
bool cross(pair<long long, long long> a, pair<long long, long long> b,
           pair<long long, long long> c) {
  long long a1, a2, b1, b2;
  a1 = b.first - a.first;
  b1 = b.second - a.second;
  a2 = c.first - a.first;
  b2 = c.second - a.second;
  long long ret = a1 * b2 - a2 * b1;
  if (ret >= 0)
    return 1;
  else
    return 0;
}
int main() {
  scanf("%I64d", &n);
  for (i = 0; i < n; i++) {
    scanf("%I64d%I64d", &ar[i].second.second, &ar[i].second.first);
    ar[i].first = 0;
    if (mp.count(ar[i].second) == 0)
      mp[ar[i].second] = 1;
    else {
      i--;
      n--;
    }
  }
  sort(ar, ar + n);
  for (i = 0; i < n; i++) swap(ar[i].second.first, ar[i].second.second);
  for (i = 1; i < n; i++) {
    long long a1, a2, b1, b2;
    a1 = ar[0].second.first;
    b1 = ar[0].second.second;
    a2 = ar[i].second.first;
    b2 = ar[i].second.second;
    ar[i].first = acos((double)(a2 - a1) /
                       (sqrt((a2 - a1) * (a2 - a1) + (b2 - b1) * (b2 - b1))));
  }
  ans = 4;
  sort(ar + 1, ar + n);
  if (n > 2) {
    q.push(0);
    q.push(1);
    i = 2;
    while (!q.empty()) {
      i %= n;
      k3 = i;
      k2 = q.top();
      q.pop();
      k1 = q.top();
      if (cross(ar[k1].second, ar[k2].second, ar[k3].second)) {
        q.push(k2);
        q.push(k3);
        i++;
        if (k3 == 0) break;
      }
    }
    while (!q.empty()) {
      p.push_back(q.top());
      q.pop();
    }
  } else {
    for (i = 0; i < n; i++) p.push_back(i);
    p.push_back(0);
  }
  for (i = 0; i < p.size() - 1; i++) {
    pair<long long, long long> v = ar[p[i]].second, w = ar[p[i + 1]].second;
    long long tmp = max(abs(v.first - w.first), abs(v.second - w.second));
    ans += tmp;
  }
  printf("%I64d\n", ans);
  return 0;
}
