#include <bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
typedef long long ll;
typedef pair<ll, ll> ii;
const int maxn = 1e5 + 7;
int n;
ii t[maxn];
ii lift(ll x, ll y, ll k){
if (k <= 0) return {x, y};
if (x == 0) return {0, y - k};
if (y == 0) return {x - k, 0};
if ((x & -x) < (y & -y))
return lift(x - min(k, x & -x), y, max(0LL, k - (x & -x)));
else
return lift(x, y - min(k, y & -y), max(0LL, k - (y & -y)));
}
ii lca(ii a, ii b){
if ((a.ff + a.ss) > (b.ff + b.ss))
swap(a, b);
b = lift(b.ff, b.ss, b.ff + b.ss - a.ff - a.ss);
ll db = a.ss + a.ff;
ll l = 0, r = db;
while(l < r){
ll m = (l + r) / 2;
ii la = lift(a.ff, a.ss, m);
ii lb = lift(b.ff, b.ss, m);
if (la == lb) r = m;
else l = m + 1;
}
return lift(a.ff, a.ss, l);
}
int subtree(ll x, ll y){
int ret = 0;
for (int i = 1; i <= n; i++){
ii lf = lift(t[i].ff, t[i].ss, t[i].ff + t[i].ss - x - y);
if (lf == make_pair(x, y)) ret++;
}
return ret;
}
bool check(ii a){
int ch1 = subtree(a.ff + 1, a.ss), ch2 = subtree(a.ff, a.ss + 1);
if (ch1 > n / 2 || ch2 > n / 2)
return 0;
return 1;
}
int main(){
srand(time(0));
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> n;
for (int i = 1; i <= n; i++)
cin >> t[i].ff >> t[i].ss;
ii ansp = {-1, -1};
while(true){
int i1 = (rand() * rand()) % n + 1;
ll l = 0, r = t[i1].ff + t[i1].ss;
while(l < r){
ll m = (l + r) / 2;
ii lf = lift(t[i1].ff, t[i1].ss, m);
int st = subtree(lf.ff, lf.ss);
if (st > n / 2) r = m;
else l = m + 1;
}
ii lf = lift(t[i1].ff, t[i1].ss, l);
if (check(lf)){
ansp = lf;
break;
}
}
ll ans = 0;
for (int i = 1; i <= n; i++){
ii lc = lca(t[i], ansp);
ans += t[i].ff + t[i].ss + ansp.ff + ansp.ss - 2LL * (lc.ff + lc.ss);
}
cout << ans << "\n";
return 0;
}