/* SRIJON
SINGHA
SAMANTA */
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef long double ld;
#define nl "\n"
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define yes cout << "YES" << nl
#define no cout << "NO" << nl
#define fi first
#define sec second
#define pb push_back
#define ppb pop_back
#define pf push_front
#define ppf pop_front
#define FIO \
ios_base::sync_with_stdio(false); \
cin.tie(NULL); \
cout.tie(NULL);
const int mod = 1e9 + 7;
struct cor{
ll x,y;
};
ll n;
vector<cor>v;
bool good(ld mid)
{
ll mx=LLONG_MIN;
for(ll i=0;i<n-1;i++)
{
for(ll j=i+1;j<n;j++)
{
ll dis=(v[i].x-v[j].x)*(v[i].x-v[j].x)+(v[i].y-v[j].y)*(v[i].y-v[j].y);
if(dis>(2*mid)*(2*mid)) return false;
mx=max(mx,dis);
}
}
return mx<=(2*mid)*(2*mid);
}
int32_t main()
{
FIO
cin>>n;
v.resize(n);
for(ll i=0;i<n;i++) cin>>v[i].x>>v[i].y;
ld l=0,r=1e18;
for(ll i=0;i<=100;i++)
{
ld mid=(l+r)/2;
if(good(mid)) r=mid;
else l=mid;
}
cout<<fixed<<setprecision(18)<<r<<nl;
return 0;
}