#include #include using namespace std; #define MAX 1000000 int main() { int n; cin >> n; pair coords[n]; for (int i = 0; i < n; i++) { cin >> coords[i].first >> coords[i].second; } sort(coords, coords+n); // for(int i = 0; i < n; i++) { // cout << coords[i].first << " " << coords[i].second << endl; // } //long long min = MAX, max = -MAX; // int prev_x = coords[0].first, prev_y = coords[0].second; int sum = 0; int prev_min, prev_max, prev_y; for(int i = 0; i < n;) { // sum += abs(coords[i].first - prev_x); // sum += abs(coords[i].second - prev_y); // prev_x = coords[i].first; // prev_y = coords[i].second; int ind = i; int curr_min_x = coords[ind].second; int curr_max_x = coords[ind].second; int curr_y = coords[ind].first; if(i < n-1) { ind++; while (1) { if (coords[ind].first == coords[ind - 1].first) { curr_max_x = coords[ind].second; } else { break; } ind++; } } else { ind++; } sum += curr_max_x - curr_min_x; // cout << "sum" << " " << sum << endl; if(i >= 1) { sum += abs(prev_y - curr_y); sum += min(min(abs(prev_max - curr_min_x), abs(prev_min - curr_max_x)), min(abs(prev_max - curr_max_x), abs(prev_min - curr_min_x))); //cout << sum << endl; } prev_min = curr_min_x; prev_max = curr_max_x; prev_y = curr_y; i = ind; } cout << sum << endl; return 0; }