#include using namespace std; using ll = long long; #define int ll int clmp(int a) { if(a < 0) return 0; return a; } int32_t main() { int n; cin >> n; map> mp; for(int i = 0; i < n; ++i) { int x, y; cin >> x >> y; if(mp.find(x) == mp.end()) { mp[x] = {y, y}; } mp[x].first = min(mp[x].first, y); mp[x].second = max(mp[x].second, y); } int pmy = mp.begin()->second.first; int pmd = 0; int pMy = mp.begin()->second.second; int pMd = 0; bool fst = true; for(auto pp : mp) { auto xp = pp.first; auto yp = pp.second; auto my = yp.first; auto My = yp.second; int Md = pmd + abs(my - pmy) + abs(My - my); Md = min(Md, pMd + abs(my - pMy) + abs(My - my)); int md = pmd + abs(My - pmy) + abs(my - My); md = min(md, pMd + abs(My - pMy) + abs(my - my)); pmd = md; pMd = Md; pmy = my; pMy = My; } int r = min(pmd, pMd) + (mp.rbegin()->first - mp.begin()->first); cout << r << '\n'; return 0; }