#include <bits/stdc++.h>
                #define endl '\n';
                using namespace std;
                typedef long double LD;
                 
                const LD eps = 0.00000001;
                 
                struct point
                {
                  LD x,y;
                } v[505],cent,cent2;
                 
                LD dis(point p1, point p2){
                  return((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
                }
                 
                bool is_equal(LD d1, LD d2){
                  return(abs(d1-d2)<=eps);
                }
         
                int maxcover(LD r, int n){
                  int mxp=0;
                  for(int i=1;i<=n;i++)
                  {
                    for(int j=i+1;j<=n;j++)
                    {
                      LD x1,x2,x3,y1,y2,y3;
                      x1=v[i].x;y1=v[i].y;
                      x2=v[j].x;y2=v[j].y;
                      x3=(x1+x2)/2;
                      y3=(y1+y2)/2;
                      


                      LD q  = dis(v[i],v[j]);
                      LD q0 = sqrt(dis(v[i],v[j]));
                      
                      LD fuk = abs(r*r-(q/4));
                      fuk=sqrt(fuk);

                      LD q1 = fuk*(y1-y2);q1/=q0;
                      LD q2 = fuk*(x2-x1);q2/=q0;
                               
                            cent.x = x3+q1; cent.y = y3+q2;
                            cent2.x = x3-q1; cent2.y = y3-q2;
                             
                             int c1=0,c2=0;
                            for(int k=1;k<=n;k++)
                                 {
                                  if((dis(cent,v[k])<r*r)|| (is_equal(dis(cent,v[k]),r*r)) )c1++;
                                  //cout<<i<<" "<<j<<" "<<k<<" "<<r*r<<" "<<dis(cent,v[k])<<endl;
                                 }
                              // cout<<endl;
                            for(int k=1;k<=n;k++)
                                 {
                                  if((dis(cent2,v[k])<r*r)|| (is_equal(dis(cent2,v[k]),r*r)) )c2++;
                                  //cout<<i<<" "<<j<<" "<<k<<" "<<r*r<<" "<<dis(cent2,v[k])<<" "<<c2<<endl;
                                 }
                 
                            mxp=max(mxp,max(c1,c2));
                            //cout<<r<<" "<<c1<<" "<<c2<<endl;
                    }
                  }
                  //cout<<r<<" "<<mxp<<endl;
                  return mxp;
                }
                 
                 int cnt = 0;
     
                LD radius(int n,int m, LD low, LD high)
                {
                  cnt++;
                  if(cnt>=100){
                    cout<<"bug"<<endl;return 0;
                  }
                  //cout<<high<<" "<<low<<" "<<high-low<<endl;
                  if(high-low<=eps){
                    return low;
                  }
                  LD mid = (high+low)/2;
                  int c = maxcover(mid,n);
                  if(c>=m)
                    return radius(n,m,low,mid);
                 
                    return radius(n,m,mid,high);
                }
                 
                /*LD radius(int n,int m, int low, int high){
                  int i;
                   for(i=low;i<=high;i++){
                       if(maxcover(i,n)>=m)break;
                   }
                   LD j = (i-1);
                   while(j<=i){
                       if(maxcover(j,n)>=m)break;
                       j+=eps;
                   }
                   return j;
                }*/
                 
                int main()
                {
                  ios_base::sync_with_stdio(false);cin.tie(0);
 
                  //freopen("input.in","r",stdin);
                 
                   int n,m;
                 
                   cin>>n;
                   m = n;
                 
                   for(int i=1;i<=n;i++)
                   cin>>v[i].x>>v[i].y;
                    
                    if(m==1){
                      cout<<"0"<<endl;
                        return 0;
                    }
                 
                   cout<<fixed<<setprecision(7)<<radius(n,m,0,1000)<<endl;
                  
                  return 0;
                }    

Measured memory_bytes: 892