#include <bits/stdc++.h>
using namespace std;
const int max_n = 500001;
double dorients(pair<double, pair<double, double> > p1,
                pair<double, pair<double, double> > p2) {
  return (p2.second.second - p1.second.second) *
         (p1.second.first + p2.second.first);
}
bool turn(pair<double, pair<double, double> > p1,
          pair<double, pair<double, double> > p2,
          pair<double, pair<double, double> > p3) {
  return (dorients(p1, p2) + dorients(p2, p3) + dorients(p3, p1)) < 0;
}
pair<double, pair<double, double> > p[max_n], s[max_n], p0;
int mydis(pair<double, pair<double, double> > a,
          pair<double, pair<double, double> > b) {
  return int(max(fabs(a.second.second - b.second.second),
                 fabs(a.second.first - b.second.first)) +
             0.3);
}
int main() {
  int n, i, i0 = 0, ns = 0, a, b;
  p0 = make_pair(10000000000.0, make_pair(10000000000.0, 10000000000.0));
  cin >> n;
  n *= 5;
  for (i = 1; i < n + 1; i += 5) {
    scanf("%d", &a);
    scanf("%d", &b);
    {
      p[i].first = 0;
      p[i].second.second = a;
      p[i].second.first = b;
      if (p[i] < p0) {
        p0 = p[i];
        i0 = i;
      }
    };
    {
      p[i + 1].first = 0;
      p[i + 1].second.second = a + 1;
      p[i + 1].second.first = b;
      if (p[i + 1] < p0) {
        p0 = p[i + 1];
        i0 = i;
      }
    };
    {
      p[i + 2].first = 0;
      p[i + 2].second.second = a;
      p[i + 2].second.first = b + 1;
      if (p[i + 2] < p0) {
        p0 = p[i + 2];
        i0 = i;
      }
    };
    {
      p[i + 3].first = 0;
      p[i + 3].second.second = a - 1;
      p[i + 3].second.first = b;
      if (p[i + 3] < p0) {
        p0 = p[i + 3];
        i0 = i;
      }
    };
    {
      p[i + 4].first = 0;
      p[i + 4].second.second = a;
      p[i + 4].second.first = b - 1;
      if (p[i + 4] < p0) {
        p0 = p[i + 4];
        i0 = i;
      }
    };
  }
  swap(p[n], p[i0]);
  n--;
  for (i = 1; i < n + 1; i++)
    p[i].first = atan2(p[i].second.first - p0.second.first,
                       p[i].second.second - p0.second.second);
  sort(p + 1, p + n + 1);
  ns = 2;
  s[1] = p0;
  s[2] = p[1];
  for (i = 2; i < n + 1; i++) {
    while (!turn(s[ns - 1], s[ns], p[i]) && ns > 1) ns--;
    ns++;
    s[ns] = p[i];
  }
  int l = 0;
  s[0] = s[ns];
  for (i = 1; i < ns + 1; i++) l += mydis(s[i], s[i - 1]);
  cout << l << endl;
  return 0;
}
