#include <bits/stdc++.h>
using namespace std;
int n;
pair<int, int> p[3002];
vector<pair<int, int> > lista;
pair<int, int> up[3002];
int u;
pair<int, int> down[3002];
int d;
vector<pair<int, int> > hull;
bool turn(pair<int, int> a, pair<int, int> b, pair<int, int> c) {
  pair<int, int> x;
  x.first = c.first - a.first;
  x.second = c.second - a.second;
  pair<int, int> y;
  y.first = b.first - a.first;
  y.second = b.second - a.second;
  return x.first * y.second - x.second * y.first < 0;
}
pair<int, int> vect(pair<int, int> a, pair<int, int> b) {
  return make_pair(b.first - a.first, b.second - a.second);
}
long long cross(pair<int, int> a, pair<int, int> b) {
  return (long long)a.first * b.second - (long long)a.second * b.first;
}
int sgn(long long a) {
  if (a > 0) return 1;
  if (a < 0) return -1;
  return 0;
}
void convexhull() {
  int size = lista.size();
  for (int i = 0; i < size; i++) {
    while (u > 2 && !turn(up[u - 2], up[u - 1], lista[i])) u--;
    up[u++] = lista[i];
  }
  for (int i = size - 1; i >= 0; i--) {
    while (d > 2 && !turn(down[d - 2], down[d - 1], lista[i])) d--;
    down[d++] = lista[i];
  }
}
long long dist(pair<int, int> a, pair<int, int> b) {
  return (long long)(b.first - a.first) * (b.first - a.first) +
         (long long)(b.second - a.second) * (b.second - a.second);
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) cin >> p[i].first >> p[i].second;
  long long ini = 0;
  long long fin = 21000 * 21000;
  sort(p, p + n);
  while (fin - ini > 1) {
    long long middle = (ini + fin) / 2;
    bool t = false;
    for (int i = n - 1; i >= 0; i--) {
      lista.clear();
      u = d = 0;
      for (int j = 0; j < n; j++) {
        if (dist(p[i], p[j]) >= middle) lista.push_back(p[j]);
      }
      convexhull();
      int kde = 0;
      for (int i = 0; i < u; i++) {
        while (kde != d - 1 &&
               dist(up[i], down[kde + 1]) > dist(up[i], down[kde])) {
          kde++;
        }
        if (dist(up[i], down[kde]) >= middle) {
          t = true;
        }
        if (t) break;
      }
      if (t) break;
    }
    if (t)
      ini = middle;
    else
      fin = middle;
  }
  printf("%.9lf\n", sqrt(ini / 4.0));
  return 0;
}
