#include using namespace std; using i64 = int64_t; using vi = vector; using vvi = vector; int main() { int n; cin >> n; vi as(n), bs(n); for (int i = 0; i < n; i++) { cin >> as[i] >> bs[i]; } i64 l = 1, r = 1000000001; auto kek = [&](i64 m) { i64 nax = 0, nin = 2e18; for (int i = 0; i < n; i++) { nin = min(nin, as[i] + bs[i] * m); nax = max(nax, as[i] + bs[i] * m); } return nax - nin; }; while (l < r - 3) { i64 ml = l + (r - l) / 3, mr = l + (r - l) / 3 * 2; if (kek(ml) <= kek(mr)) { r = mr; } else { l = ml; } } i64 mi = 2e18; for (i64 k = l; k < r; k++) { mi = min(mi, kek(k)); } for (i64 k = l; k < r; k++) { if (kek(k) == mi) { cout << k << endl; return 0; } } }