#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair i_i; typedef pair ll_i; typedef pair d_i; typedef pair ll_ll; typedef pair d_d; struct edge { int v, w; }; ll MOD = 1000000009; ll _MOD = 1000000009; double EPS = 1e-10; ll f(vector& a, vector& b, ll x) { int N = a.size(); ll mini = LLONG_MAX, maxi = 0; for (int i = 0; i < N; i++) { ll y = a[i] + b[i] * x; mini = min(mini, y); maxi = max(maxi, y); } return maxi - mini; } int main() { int N; cin >> N; vector a(N), b(N); for (int i = 0; i < N; i++) cin >> a[i] >> b[i]; int lb = 0, ub = 1000000000; while (ub - lb > 1) { int mid = (lb + ub) / 2; ll df = f(a, b, mid + 1) - f(a, b, mid); if (df >= 0) ub = mid; else lb = mid; } cout << ub << endl; }