#include <bits/stdc++.h>
using namespace std;
const int N = 101010;
const long long inf = 1000000010;
pair<int, int> tab[N];
int n;
int maxi[20][N], mini[20][N];
int maxPot[N];
int P;
int getMin(int a, int b) {
  int dl = (b - a + 1);
  int k = maxPot[dl];
  return min(mini[k][a], mini[k][b - (1 << k) + 1]);
}
int getMax(int a, int b) {
  int dl = (b - a + 1);
  int k = maxPot[dl];
  return max(maxi[k][a], maxi[k][b - (1 << k) + 1]);
}
bool ok(long long ogr) {
  int wsk = 1;
  while (wsk <= n && tab[1].first + ogr >= tab[wsk].first) {
    wsk++;
  }
  if (wsk == n + 1) return true;
  int rr = getMax(wsk, n), ll = getMin(wsk, n);
  if (rr - ll <= ogr) return true;
  for (int i = 2; i <= (n); ++i) {
    while (wsk <= n && tab[i].first + ogr >= tab[wsk].first) {
      ++wsk;
    }
    if (wsk == n + 1) {
      rr = getMax(1, i - 1), ll = getMin(1, i - 1);
      if (rr - ll <= ogr) return true;
      return false;
    }
    int rMax = getMax(wsk, n), lMax = getMax(1, i - 1);
    int rMin = getMin(wsk, n), lMin = getMin(1, i - 1);
    rr = max(rMax, lMax);
    ll = min(rMin, lMin);
    if (rr - ll <= ogr) return true;
  }
  return false;
}
int main() {
  scanf("%d", &n);
  P = 1;
  while (P < n) P <<= 1;
  for (int i = 1; i <= (n); ++i) {
    scanf("%d %d", &tab[i].first, &tab[i].second);
    int x = tab[i].first - tab[i].second;
    int y = tab[i].first + tab[i].second;
    tab[i] = make_pair(x, y);
  }
  maxPot[1] = 0;
  for (int i = 2; i <= n; ++i) {
    int k = 0, gr = 1;
    while (gr < i) {
      ++k;
      gr <<= 1;
    }
    maxPot[i] = k - 1;
  }
  sort(tab + 1, tab + 1 + n);
  for (int i = 1; i <= (n); ++i) maxi[0][i] = mini[0][i] = tab[i].second;
  for (int k = 1, gr = 2; gr <= n; ++k, gr <<= 1) {
    for (int i = 1; i + gr / 2 <= n; ++i) {
      maxi[k][i] = max(maxi[k - 1][i], maxi[k - 1][i + gr / 2]);
      mini[k][i] = min(mini[k - 1][i], mini[k - 1][i + gr / 2]);
    }
    for (int i = n - gr / 2 + 1; i <= n; ++i) {
      maxi[k][i] = maxi[k - 1][i];
      mini[k][i] = mini[k - 1][i];
    }
  }
  long long p = 0, q = inf * 4, sr;
  while (p < q) {
    sr = (p + q) / 2;
    if (ok(sr))
      q = sr;
    else
      p = sr + 1;
  }
  printf("%lld.%s\n", p / 2, (p & 1) ? "500000" : "000000");
}
