func_code_string: #include <bits/stdc++.h>   using namespace std;   struct ww {     long double x, y;   } a[100010];   int i, j, k, n, m, xx, yy;   long double LU[100010], RU[100010], LD[100010], RD[100010];   inline bool judge(long double len) {     int i, j;     j = 0;     for (i = 1; i <= n; i++) {       for (; a[j + 1].x + len < a[i].x; j++)         ;       if (max(LU[j], RU[i + 1]) - min(LD[j], RD[i + 1]) <= len) return 1;     }     return 0;   }   inline bool cc1(const ww &a, const ww &b) { return a.x < b.x; }   int main() {     scanf( %d , &n);     for (i = 1; i <= n; i++) {       scanf( %d%d , &xx, &yy);       a[i].x = yy - xx, a[i].y = xx + yy;     }     sort(a + 1, a + n + 1, cc1);     LD[0] = RD[n + 1] = 1e10;     LU[0] = RU[n + 1] = -1e10;     for (i = 1; i <= n; i++)       LD[i] = min(LD[i - 1], a[i].y), LU[i] = max(LU[i - 1], a[i].y);     for (i = n; i; i--)       RD[i] = min(RD[i + 1], a[i].y), RU[i] = max(RU[i + 1], a[i].y);     long double l = 0, r = 1e10, mid;     for (; l + 1e-7 < r;) {       mid = (l + r) / 2;       if (judge(mid))         r = mid;       else         l = mid;     }     double an = r;     printf( %.10lf n , an / 2);     return 0;   }   