#include #define rep(i, n) for (int i = 0; i < (n); ++i) using namespace std; using ll = long long; const int INF = 2e9; int main() { int n; cin >> n; vector u(n), v(n); ll umn = INF, vmn = INF, vmx = -INF; rep(i, n) { int x, y; cin >> x >> y; u[i] = x+y; v[i] = x-y; umn = min(umn, u[i]); vmn = min(vmn, v[i]); vmx = max(vmx, v[i]); } ll ac = INF, wa = -1; while (ac-wa > 1) { ll wj = (ac+wa)/2; auto ok = [&]{ rep(ti, 2) { ll l = ti == 0 ? vmn : vmx-wj; ll r = l+wj; ll a = INF, b = -INF; ll c = INF, d = -INF; rep(i, n) { if (u[i] <= umn+wj and l <= v[i] and v[i] <= r) continue; a = min(a, u[i]); b = max(b, u[i]); c = min(c, v[i]); d = max(d, v[i]); } if (a == INF or (b-a <= wj and d-c <= wj)) return true; } return false; }(); (ok ? ac : wa) = wj; } cout << ac << '\n'; return 0; }