#include <bits/stdc++.h>
using namespace std;
long long int dist(pair<long long int, long long int> a,
                   pair<long long int, long long int> b) {
  return abs(a.first - b.first) + abs(a.second - b.second);
}
bool comp(pair<long long int, long long int> a,
          pair<long long int, long long int> b) {
  return max(a.first, a.second) < max(b.first, b.second);
}
int main() {
  std::ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long int n, flag, xmin, ymin, i, l, d1, d2, t1, t2, d, x, y, xmax, ymax;
  cin >> n;
  std::vector<pair<long long int, long long int> > v;
  pair<long long int, long long int> a, b, v1, v2;
  for (i = 0; i < n; i++) {
    cin >> x >> y;
    v.push_back(make_pair(x, y));
  }
  sort(v.begin(), v.end(), comp);
  i = 0;
  l = 1;
  d1 = d2 = 0;
  a = make_pair(0, 0);
  b = make_pair(0, 0);
  while (i < n) {
    flag = 0;
    xmin = l;
    ymin = l;
    xmax = ymax = 0;
    while (i < n && max(v[i].first, v[i].second) == l) {
      if (v[i].first == l) {
        ymin = min(ymin, v[i].second);
        ymax = max(ymax, v[i].second);
      } else {
        xmin = min(xmin, v[i].first);
        xmax = max(xmax, v[i].first);
      }
      i++;
      flag = 1;
    }
    if (flag) {
      if (ymin > ymax) {
        d = xmax - xmin;
        v1 = make_pair(xmax, l);
        v2 = make_pair(xmin, l);
      } else if (xmin > xmax) {
        d = ymax - ymin;
        v1 = make_pair(l, ymax);
        v2 = make_pair(l, ymin);
      } else {
        d = l + l - xmin - ymin;
        v1 = make_pair(xmin, l);
        v2 = make_pair(l, ymin);
      }
      t1 = min(dist(a, v1) + d1, dist(b, v1) + d2);
      t2 = min(dist(a, v2) + d1, dist(b, v2) + d2);
      d1 = t2 + d;
      d2 = t1 + d;
      a = v1;
      b = v2;
    }
    l++;
  }
  cout << min(d1, d2);
  return 0;
}
