#include #include #include #include #include #include #include #include #include #include static const int MOD = 1000000007; using ll = long long; using u32 = uint32_t; using namespace std; template constexpr T INF = ::numeric_limits::max() / 32 * 15 + 208; int main() { int n; cin >> n; vector as(n), bs(n); for (int i = 0; i < n; ++i) { cin >> as[i] >> bs[i]; } auto f = [&](ll x){ ll p = INF, q = -INF; for (int i = 0; i < n; ++i) { p = min(p, x*bs[i]+as[i]); q = max(q, x*bs[i]+as[i]); } return q-p; }; ll l = 1, r = INF; while(r-l > 1){ ll mid = (l+r)/2; (f(mid-1) > f(mid) ? l : r) = mid; } cout << l << "\n"; return 0; }