#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; long long getUgliness(const vector& a, const vector& b, long long x) { int n = a.size(); long long minLen = LLONG_MAX; long long maxLen = LLONG_MIN; for(int i=0; i> n; vector a(n), b(n); for(int i=0; i> a[i] >> b[i]; long long left = 1; long long right = 1000000000; while(right - left >= 3){ long long mid1 = (left * 2 + right) / 3; long long mid2 = (left + right * 2) / 3; long long x = getUgliness(a, b, mid1); long long y = getUgliness(a, b, mid2); if(x <= y) right = mid2; else left = mid1; } long long minUgliness = LLONG_MAX; long long ans; for(long long i=left; i<=right; ++i){ long long ugliness = getUgliness(a, b, i); if(ugliness < minUgliness){ ans = i; minUgliness = ugliness; } } cout << ans << endl; return 0; }