Solution (Raw Text)

#pragma region
#include <bits/stdc++.h>
using namespace std;
// Common Type shorteners and int128
using ll = long long; using ull = unsigned long long; using ld = long double;
using pii = pair<int, int>; using pll = pair<ll, ll>;
template <typename T> using vec = vector<T>;
template <typename K, typename V> using umap = unordered_map<K, V>; template <typename K> using uset = unordered_set<K>;
using vi = vec<int>; using vl = vec<ll>; using vpi = vec<pii>; using vpl = vec<pll>;
#ifdef __SIZEOF_INT128__
using int128 = __int128_t; using uint128 = __uint128_t;
#endif
template<typename I> string intStr(I x) { string ret; while (x > 0) { ret += (x % 10) + '0'; x /= 10; } reverse(ret.begin(), ret.end()); return ret; } // Int to string
// Shorthand Macros
#define INF 0x3f3f3f3f
#define LLINF 0x3f3f3f3f3f3f3f3f
#define mpr make_pair
#define mtup make_tuple
#define pb push_back
#define popcount __builtin_popcount
#define clz __builtin_clz
#define ctz __builtin_ctz
#define finline __attribute__((always_inline))
// Shorthand Function Macros
#define sz(x) ((int)((x).size()))
#define all(x) (x).begin(), (x).end()
#define rep(i, a, b) for (__typeof(a) i = a; i < b; i++)
#define reprev(i, a, b) for (__typeof(a) i = a; i > b; i--)
#define repi(a, b) rep(i, a, b)
#define repj(a, b) rep(j, a, b)
#define repk(a, b) rep(k, a, b)
#define Cmplt(type) bool operator<(const type &o) const
#define Cmpgt(type) bool operator>(const type &o) const
#define Cmpfn(name, type) bool name(const type &a, const type &b)
#define Inop(type) istream& operator>>(istream& in, type &o)
#define Outop(type) ostream& operator<<(ostream& out, type o)
#define Pow2(x) (1LL << (x))
#define scn(type, ...) type __VA_ARGS__; scan(__VA_ARGS__) // scn -> Short for SCan New
// Shorthand Functions
template<typename T> inline void maxa(T& st, T v) { st = max(st, v); }
template<typename T> inline void mina(T& st, T v) { st = min(st, v); }
inline void setprec(ostream& out, int prec) { out << setprecision(prec) << fixed; }
// Out operators and printing for arrays and vectors
template <typename T> ostream& operator<<(ostream& out,vector<T> iter){out<<"[";for(auto t:iter){out<<t<<", ";}out<<"]";return out;}
template <typename T> string arrayStr(T *arr,int sz){string ret = "[";for(int i=0;i<sz;i++){ret+=to_string(arr[i])+", "; } return ret + "]";}
template <typename T> void printArray(T *arr,int sz){for(int i=0;i<sz;i++){cout<<arr[i]<<" "; } cout<<"\n";}
// I/O Operations
inline void scan(){}
template<typename F, typename... R> inline void scan(F &f,R&... r){cin>>f;scan(r...);}
template <typename F> inline void println(F t){cout<<t<<'\n';}
template<typename F, typename... R> inline void println(F f,R... r){cout<<f<<" ";println(r...);}
inline void print(){}
template<typename F, typename... R> inline void print(F f,R... r){cout<<f;print(r...);}
// Debugging
#define db(x) cout << (#x) << ": " << (x) << ", "
#define dblb(s) cout << "[" << (s) << "] "
#define dba(alias, x) cout << (alias) << ": " << (x) << ", "
template<typename F> inline string __generic_tostring(F f) { stringstream ss; ss << f; return ss.str(); }
template<typename F> inline string __join_comma(F f) {return __generic_tostring(f);}
template<typename F, typename... R> string __join_comma(F f, R... r) { return __generic_tostring(f) + ", " + __join_comma(r...); }
#define dbp(alias, ...) cout << (alias) << ": (" << __join_comma(__VA_ARGS__) << "), "
#define dbbin(x, n) cout << (#x) << ": " << bitset<n>(x) << ", "
#define dbarr(x, n) cout << (#x) << ": " << arrayStr((x), (n)) << ", "
#define dbln cout << endl;
#pragma endregion

/*
Observe that the region that's within X chebyshev distance of a point P is a square with side length 2X.  If we rotate 
the grid by 45 degrees, the region now becomes a diamond shape that's consistent with manhattan distance.  So we can run the median algorithm on the rotated grid and translate the median
back into the original grid (unrotate) and then solve from there.
*/

const int MN = 1e6 + 1;
int n;
ll x[MN], y[MN], cpx[MN], cpy[MN];

void rot(ll &x, ll &y) {
    x += y;
    y = x - 2 * y;
}

/*
A, B = x + y, x - y

A + B = 2 * x
(A + B) / 2 = x

y = A - x
*/
void invrot(ll &x, ll &y) {
    ll A = x, B = y;
    x = (A + B) / 2;
    y = A - x;
}

ll median(ll arr[MN]) {
    sort(arr, arr + n);
    int mid = n / 2;
    return arr[mid];
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    scan(n);
    repi(0, n)
        scan(x[i], y[i]);
    
    // rotate
    copy(x, x + n, cpx); copy(y, y + n, cpy);
    repi(0, n)
        rot(cpx[i], cpy[i]);
    
    // median
    ll X = median(cpx), Y = median(cpy);
    invrot(X, Y);

    // get final distance
    ll best = LLINF;
    for (ll px = X - 3; px <= X + 3; px++) {
        for (ll py = Y - 3; py <= Y + 3; py++) {
            ll ctot = 0;
            repi(0, n)
                ctot += max(abs(x[i] - px), abs(y[i] - py));
            // db(px); db(py); db(ctot); dbln;
            mina(best, ctot);
        }
    }
    println(best);

    return 0;
}

Problem Statement

The document could not be loaded, sorry for the inconvenience.