#include <bits/stdc++.h>
using namespace std;
const int N = 3010;
long long dis[N * N], x[N], y[N];
bool g[N][N];
bitset<N> bit[N];
int main() {
  int n, i, j, m = 0;
  cin >> n;
  for (i = 0; i < n; i++) cin >> x[i] >> y[i];
  for (i = 0; i < n; i++)
    for (j = i + 1; j < n; j++) {
      dis[m] = ((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]))
               << 32;
      dis[m++] |= (i << 16) | j;
    }
  sort(dis, dis + m);
  while (m--) {
    i = dis[m] & ((1 << 16) - 1);
    j = (dis[m] >> 16) & ((1 << 16) - 1);
    if ((bit[i] & bit[j]) != 0) break;
    bit[i][j] = bit[j][i] = 1;
  }
  cout << fixed << setprecision(7) << sqrt((dis[m] >> 32) + 0.0) * 0.5 << endl;
}
