#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 1e3 + 5;
long long n;
pair<long long,long long> pr[MaxN];
vector<long long> arr[MaxN];
bool visited[MaxN];
void bfs(long long x, vector<long long> arr[], bool visited[])
{
queue<long long> q;
q.push(x);
visited[x]=true;
while(!q.empty())
{
long long u=q.front();
q.pop();
for(long long v:arr[u])
{
if(!visited[v])
{
visited[v]=true;
q.push(v);
}
}
}
}
bool check(long double R)
{
for(long long i=1;i<=n;i++)
{
arr[i].clear();
visited[i]=false;
}
for(long long i=1;i<=n;i++)
{
for(long long j=i+1;j<=n;j++)
{
long long dx=pr[i].first-pr[j].first;
long long dy=pr[i].second-pr[j].second;
long long dis2=dx*dx+dy*dy;
if((long double)dis2 <= 4*R*R)
{
arr[i].push_back(j);
arr[j].push_back(i);
}
}
}
bfs(1,arr,visited);
for(long long i=1;i<=n;i++)
{
if(!visited[i])
{
return false;
}
}
return true;
}
void input()
{
cin>>n;
for(long long i=1;i<=n;i++)
{
cin>>pr[i].first>>pr[i].second;
}
}
void solve()
{
double l=0;
double r=1e9+5;
for(long long it=1;it<=60;it++)
{
double mid=(l+r)/2;
if(check(mid))
{
r=mid;
}
else
{
l=mid;
}
}
cout<<fixed<<setprecision(6)<<r;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
input();
solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGxvbmcgbG9uZyBNYXhOID0gMWUzICsgNTsKCmxvbmcgbG9uZyBuOwpwYWlyPGxvbmcgbG9uZyxsb25nIGxvbmc+IHByW01heE5dOwoKdmVjdG9yPGxvbmcgbG9uZz4gYXJyW01heE5dOwpib29sIHZpc2l0ZWRbTWF4Tl07Cgp2b2lkIGJmcyhsb25nIGxvbmcgeCwgdmVjdG9yPGxvbmcgbG9uZz4gYXJyW10sIGJvb2wgdmlzaXRlZFtdKQp7CiAgICBxdWV1ZTxsb25nIGxvbmc+IHE7CgogICAgcS5wdXNoKHgpOwogICAgdmlzaXRlZFt4XT10cnVlOwoKICAgIHdoaWxlKCFxLmVtcHR5KCkpCiAgICB7CiAgICAgICAgbG9uZyBsb25nIHU9cS5mcm9udCgpOwogICAgICAgIHEucG9wKCk7CgogICAgICAgIGZvcihsb25nIGxvbmcgdjphcnJbdV0pCiAgICAgICAgewogICAgICAgICAgICBpZighdmlzaXRlZFt2XSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmlzaXRlZFt2XT10cnVlOwogICAgICAgICAgICAgICAgcS5wdXNoKHYpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cgpib29sIGNoZWNrKGxvbmcgZG91YmxlIFIpCnsKICAgIGZvcihsb25nIGxvbmcgaT0xO2k8PW47aSsrKQogICAgewogICAgICAgIGFycltpXS5jbGVhcigpOwogICAgICAgIHZpc2l0ZWRbaV09ZmFsc2U7CiAgICB9CgogICAgZm9yKGxvbmcgbG9uZyBpPTE7aTw9bjtpKyspCiAgICB7CiAgICAgICAgZm9yKGxvbmcgbG9uZyBqPWkrMTtqPD1uO2orKykKICAgICAgICB7CiAgICAgICAgICAgIGxvbmcgbG9uZyBkeD1wcltpXS5maXJzdC1wcltqXS5maXJzdDsKICAgICAgICAgICAgbG9uZyBsb25nIGR5PXByW2ldLnNlY29uZC1wcltqXS5zZWNvbmQ7CgogICAgICAgICAgICBsb25nIGxvbmcgZGlzMj1keCpkeCtkeSpkeTsKCiAgICAgICAgICAgIGlmKChsb25nIGRvdWJsZSlkaXMyIDw9IDQqUipSKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBhcnJbaV0ucHVzaF9iYWNrKGopOwogICAgICAgICAgICAgICAgYXJyW2pdLnB1c2hfYmFjayhpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBiZnMoMSxhcnIsdmlzaXRlZCk7CgogICAgZm9yKGxvbmcgbG9uZyBpPTE7aTw9bjtpKyspCiAgICB7CiAgICAgICAgaWYoIXZpc2l0ZWRbaV0pCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiB0cnVlOwp9Cgp2b2lkIGlucHV0KCkKewogICAgY2luPj5uOwoKICAgIGZvcihsb25nIGxvbmcgaT0xO2k8PW47aSsrKQogICAgewogICAgICAgIGNpbj4+cHJbaV0uZmlyc3Q+PnByW2ldLnNlY29uZDsKICAgIH0KfQoKdm9pZCBzb2x2ZSgpCnsKICAgIGRvdWJsZSBsPTA7CiAgICBkb3VibGUgcj0xZTkrNTsKCiAgICBmb3IobG9uZyBsb25nIGl0PTE7aXQ8PTYwO2l0KyspCiAgICB7CiAgICAgICAgZG91YmxlIG1pZD0obCtyKS8yOwoKICAgICAgICBpZihjaGVjayhtaWQpKQogICAgICAgIHsKICAgICAgICAgICAgcj1taWQ7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGw9bWlkOwogICAgICAgIH0KICAgIH0KCiAgICBjb3V0PDxmaXhlZDw8c2V0cHJlY2lzaW9uKDYpPDxyOwp9CmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CgogICAgaW5wdXQoKTsKICAgIHNvbHZlKCk7Cn0=