#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline T gi() {
  T x = 0, f = 1;
  char c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
  return f * x;
}
const long long N = 300003;
long long n;
struct Place {
  long long x, y;
} a[N];
namespace Subtask2 {
long long x[N], y[N];
void solve() {
  for (long long i = 1; i <= n; i += 1) x[i] = a[i].x, y[i] = a[i].y;
  sort(x + 1, x + 1 + n);
  sort(y + 1, y + 1 + n);
  long long mid = (1 + n) >> 1;
  long long dx = x[mid + 1] - x[mid], dy = y[mid + 1] - y[mid];
  if (n & 1)
    dx = min(dx, x[mid] - x[mid - 1]), dy = min(dy, y[mid] - y[mid - 1]);
  bool fuck1, fuck2, fuckyou;
  fuck1 = fuck2 = fuckyou = false;
  long long ans = 0;
  for (long long i = 1; i <= n; i += 1) {
    ans += llabs(x[mid] - a[i].x) + llabs(y[mid] - a[i].y);
    if (a[i].x > x[mid] && a[i].y <= y[mid]) fuck1 = true;
    if (a[i].x > x[mid] && a[i].y > y[mid]) fuck2 = true;
    if (a[i].x == x[mid] && a[i].y == y[mid]) fuckyou = true;
  }
  if ((n % 2 == 0 || fuckyou) && fuck1 && fuck2) ans -= min(dx, dy);
  printf("%lld\n", ans << 1);
  return;
}
}  // namespace Subtask2
signed main() {
  n = gi<long long>();
  for (long long i = 1; i <= n; i += 1)
    a[i].x = gi<long long>(), a[i].y = gi<long long>();
  Subtask2 ::solve();
  return 0;
}
