#ifdef NACHIA #define _GLIBCXX_DEBUG #else // disable assert #define NDEBUG #endif #include #include #include #include using namespace std; using ll = long long; const ll INF = 1ll << 60; #define REP(i,n) for(ll i=0; i using V = vector; template void chmax(A& l, const B& r){ if(l < r) l = r; } template void chmin(A& l, const B& r){ if(r < l) l = r; } void testcase(){ ll N; cin >> N; V X(N),Y(N); REP(i,N){ ll x,y; cin >> x >> y; X[i] = x+y; Y[i] = x-y; } ll ans = INF; REP(tt,2){ ll x0 = *min_element(X.begin(), X.end()); ll y0 = *max_element(Y.begin(), Y.end()); ll x1 = *max_element(X.begin(), X.end()); ll y1 = *min_element(Y.begin(), Y.end()); ll tmp = 0; REP(i,N){ ll q = INF; chmin(q, max(X[i] - x0, y0 - Y[i])); chmin(q, max(Y[i] - y1, x1 - X[i])); chmax(tmp, q); } chmin(ans, tmp); for(auto& y : Y) y = -y; } cout << ans << "\n"; } int main(){ cin.tie(0)->sync_with_stdio(0); testcase(); return 0; }