#include <bits/stdc++.h>
using namespace std;
struct edge {
  int id1, id2;
  double len;
  edge() {}
  edge(int a, int b, double c) {
    id1 = a;
    id2 = b;
    len = c;
  }
} e[9999999];
int xx[3333], yy[3333];
bitset<3333> b[3333];
bool cmp(const edge& a, const edge& b) { return a.len > b.len; }
int main() {
  int n;
  int cnt = 0;
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) {
    scanf("%d%d", &xx[i], &yy[i]);
  }
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j < i; ++j) {
      double len = (double)((xx[i] - xx[j]) * (xx[i] - xx[j]) +
                            (yy[i] - yy[j]) * (yy[i] - yy[j]));
      e[++cnt] = edge(i, j, len);
    }
  }
  sort(e + 1, e + cnt + 1, cmp);
  for (int i = 1; i <= cnt; ++i) {
    if ((b[e[i].id1] & b[e[i].id2]) != 0) {
      printf("%.10f", sqrt(e[i].len) / 2);
      return 0;
    }
    b[e[i].id1][e[i].id2] = 1;
    b[e[i].id2][e[i].id1] = 1;
  }
  return 0;
}
