#include <bits/stdc++.h>
using namespace std;
const int max_n = 1 << 18;
const long long inf = 1000000000000000LL;
struct point {
  long long x, y;
  int type;
};
bool comp_by_x(const point &a, const point &b) { return a.x < b.x; }
bool comp_by_y(const point &a, const point &b) { return a.y < b.y; }
int n, cnt[4];
point p[max_n];
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++)
    scanf("%lld %lld", &p[i].x, &p[i].y), p[i].type = 0;
  sort(p, p + n, comp_by_x);
  long long cx = p[n / 2].x;
  for (int i = n / 2; i < n; i++) p[i].type |= 1;
  sort(p, p + n, comp_by_y);
  long long cy = p[n / 2].y;
  for (int i = n / 2; i < n; i++) p[i].type |= 2;
  cnt[0] = cnt[1] = cnt[2] = cnt[3] = 0;
  for (int i = 0; i < n; i++) cnt[p[i].type]++;
  long long ans = 0LL;
  for (int i = 0; i < n; i++) ans += abs(p[i].x - cx) + abs(p[i].y - cy);
  if (cnt[0] && cnt[1]) {
    if (n % 2) {
      int ci = -1;
      for (int i = 0; i < n; i++)
        if (p[i].type == 3 && p[i].x == cx && p[i].y == cy) ci = i;
      if (ci != -1) {
        p[ci].type = -1;
        long long m[4];
        m[0] = m[1] = m[2] = m[3] = inf;
        for (int i = 0; i < n; i++)
          if (i != ci)
            for (int j = p[i].type; j < p[i].type + 2; j++) {
              m[j % 4] = min(m[j % 4], abs(j % 2 ? cx - p[i].x : cy - p[i].y));
            }
        ans -= min(min(m[0], m[1]), min(m[2], m[3]));
      }
    } else {
      long long mx = inf, my = inf;
      for (int i = 0; i < n; i++) {
        int t = p[i].type;
        if ((t & 2) == 0) my = min(my, cy - p[i].y);
        if ((t & 1) == 0) mx = min(mx, cx - p[i].x);
      }
      ans -= min(mx, my);
    }
  }
  printf("%lld\n", 2LL * ans);
  return 0;
}
