#include <bits/stdc++.h>
    #define N 505 //points
     
    using namespace std;
    #define inchar          getchar_unlocked
    #define outchar(x)      putchar_unlocked(x)
    #define LL long long int
    //templates..
    template<typename T> void in(T &x){x=0;register T c=inchar();while((c<48)||(c>57))c=inchar();for(;c<48||c>57;c=inchar());for(;c>47&&c<58;c=inchar())x=(x<<3)+(x<<1)+(c&15);}
    template<typename T> void out(T n){char snum[65];int i=0;do {snum[i++]=n%10+'0';n/=10;}while(n);i=i-1;while(i>=0)outchar(snum[i--]); outchar('\n');}
    template<typename T> int gcd(T a , T b){return __gcd(a,b);}
    template <typename T>T modpow(T base,T exp,T modulus){ base %= modulus; T result = 1; while (exp > 0) { if (exp & 1) result = (result * base) % modulus; base = (base * base) %modulus; exp >>= 1;}return result;}
     
    //definations..
    typedef pair<LL,LL> ii;
    typedef vector<ii> vii;
    typedef vector<vii> vvii;
    typedef vector < LL > vl;
    typedef vector<int> vi;
    typedef vector <long double> vf;
     
    const double eps = 1e-10;//epsilon
    #define FOR(i,y,n) for (int i = y ; i < n ; ++i)
     
    const double pi = acos(-1.0);
    int n , m;
     
    double Radius; // radius
    int at = 0;
    vector < pair <double , double > > pnts;
     
    struct point
     
    {
     
        double x,y;
     
        void get()
     
        {
     
           x = pnts[at].first;
           y = pnts[at].second;
           ++at;
     
        }
     
        double friend distance (const point &a,const point &b)
     
        {
     
           return sqrt((a.x - b.x)*(a.x - b.x) + (a.y - b.y)*(a.y - b.y));
     
        }
     
    } points_in_plane[N + 5];
     
    struct pcmp
     
    {
     
        double v;
     
        bool flag;
     
        bool friend operator <(const pcmp &a,const pcmp &b)
     
        {
     
           return a.v < b.v;
     
        }
     
    } allpos[N * N + 5];
     
    int recur(int n , double Radius)
     
    {
     
        
        int count = 0;
     
        FOR(i,0,n)//for(int i = 0;i < n;i++)
     
        {
     
           int t = 0;
     
           FOR(j,0,n)//for(int j = 0;j < n;j++)
     
           {
     
               if(i == j)
     
                  continue;
     
               double angle_theta,angle_phi,D;
     
               D = distance(points_in_plane[i],points_in_plane[j]);
     
               if(D > 2.0 * Radius)//????????
     
                  continue;
     
    //????
     
               angle_theta = atan2(points_in_plane[j].y - points_in_plane[i].y,points_in_plane[j].x - points_in_plane[i].x);
     
               if(angle_theta < 0)
     
                  angle_theta += 2 * pi;
     
               angle_phi = acos(D / (2.0 * Radius));
     
               allpos[t].v = angle_theta - angle_phi + 2 * pi;
     
               allpos[t].flag = true;
     
               allpos[t + 1].v = angle_theta + angle_phi + 2 * pi;
     
               allpos[t + 1].flag = false;
     
               t += 2;
     
           }
     
           sort(allpos,allpos + t);
     
           int sum = 0;
     
           FOR(j,0,t)//for(int j = 0;j < t;j++)
     
           {
     
               if(allpos[j].flag)
     
                  sum++;
     
               else
     
                  sum--;
     
               if(sum > count)
     
                  count = sum;
     
           }
     
        }
     
        //printf("%d\n",count + 1);
        return count + 1;
     
    }
    void result(){
    	double l = 0.000000000 , h = 1000,mid = 1;
    	double a = 1000.0000000;
    	while (l <= h ){
    		mid = (l + h) / 2.0 ; 
    		int r = recur(n , mid);
    		if (r <  m){
    			l = mid + 0.00000001 ;
    		}
    		else {
    			a = mid;
    			h = mid - 0.00000001;
    		}
    	}
    	cout << setprecision(10) << a<< endl;
    	//out(a);
    }
     
    int main()
     
    {
     
        cin >> n; m=n;
        at = 0;
        int xi = 0;
        FOR(i,0,100000) ++xi;  
        FOR(i,0,n){//for (int i = 0 ; i < n ; ++i){
        	double a , b;
        	cin >> a >> b;
        	//in(a);in(b);
        	pnts.push_back(make_pair(a,b));
    	}
    	FOR(i,0,n) points_in_plane[i].get();
    	result();
    	//FOR(i,0,100000) ++xi; 
     
    } 

Measured memory_bytes: 384