#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define lf long double
#define pb push_back
#define mp make_pair
#define F first
#define S second
typedef pair <ll,ll> ii;
typedef vector <ll> vi;
typedef vector <ii> vii;
typedef vector <bool> vb;
typedef vector <vector <ll> > vv;
typedef vector <string> vs;
typedef vector <lf> vf;
#define tr1(x) cerr << #x << ": " << x << endl
#define tr2(x, y) cerr << #x << ": " << x << " | " << #y << ": " << y << endl
#define tr3(x,y,z) cerr<<#x<<": "<<x<<" | "<<#y<<": "<<y<<" | "<<#z<<": "<<z<<endl
#define mod 1000000007
#define inf 9999999999999999ll
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);

double radius(double x1, double y1, double x2, double y2, double x3, double y3, vii &a) 
{ 
    double x12 = x1 - x2; 
    double x13 = x1 - x3; 
  
    double y12 = y1 - y2; 
    double y13 = y1 - y3; 
  
    double y31 = y3 - y1; 
    double y21 = y2 - y1; 
  
    double x31 = x3 - x1; 
    double x21 = x2 - x1; 
  
    // x1^2 - x3^2 
    double sx13 = pow(x1, 2) - pow(x3, 2); 
  
    // y1^2 - y3^2 
    double sy13 = pow(y1, 2) - pow(y3, 2); 
  
    double sx21 = pow(x2, 2) - pow(x1, 2); 
    double sy21 = pow(y2, 2) - pow(y1, 2); 
  
    double f = ((sx13) * (x12) 
             + (sy13) * (x12) 
             + (sx21) * (x13) 
             + (sy21) * (x13)) 
            / (2 * ((y31) * (x12) - (y21) * (x13))); 
    double g = ((sx13) * (y12) 
             + (sy13) * (y12) 
             + (sx21) * (y13) 
             + (sy21) * (y13)) 
            / (2 * ((x31) * (y12) - (x21) * (y13))); 
  
    double c = -pow(x1, 2) - pow(y1, 2) - 2 * g * x1 - 2 * f * y1; 
  
    // eqn of circle be x^2 + y^2 + 2*g*x + 2*f*y + c = 0 
    // where centre is (h = -g, k = -f) and radius r 
    // as r^2 = h^2 + k^2 - c 
    double h = -g; 
    double k = -f; 
    double sqr_of_r = h * h + k * k - c; 
  
    // r is the radius 
    double r = sqrt(sqr_of_r); 

    bool flag=1;
    for(ll i=0;i<a.size();i++)
    {
        if( !(a[i].F==x1 && a[i].S==y1) && !(a[i].F==x2 && a[i].S==y2) && !(a[i].F==x3 && a[i].S==y3) )
        {
            ll val = pow(a[i].F-h,2)+pow(a[i].S-k,2)-pow(r,2);
            if(val>0)
            {
                flag=0;
                break;
            }
        }
    }
    if(flag==1)
        return r;
    return -1;
} 
double radius2(double x1, double y1, double x2, double y2, vii &a) 
{ 
    double h = (x1+x2)/2; 
    double k = (y1+y2)/2; 
    double sqr_of_r = (pow(x1-x2,2)+pow(y1-y2,2))/4; 
  
    // r is the radius 
    double r = sqrt(sqr_of_r); 

    bool flag=1;
    for(ll i=0;i<a.size();i++)
    {
        if( !(a[i].F==x1 && a[i].S==y1) && !(a[i].F==x2 && a[i].S==y2))
        {
            ll val = pow(a[i].F-h,2)+pow(a[i].S-k,2)-pow(r,2);
            if(val>0)
            {
                flag=0;
                break;
            }
        }
    }
    if(flag==1)
        return r;
    return -1;
} 

int main()
{
    fast
    ll n;
    cin>>n;
    vii a(n,mp(0,0));
    for(ll i=0;i<n;i++)
        cin>>a[i].F>>a[i].S;
    double min_rad = 10000000000;
    for(ll i=0;i<n;i++)
        for(ll j=i+1;j<n;j++)
            for(ll k=j+1;k<n;k++)
            {
                double rad = radius(a[i].F,a[i].S,a[j].F,a[j].S,a[k].F,a[k].S,a);
                if(rad>=0 && rad<min_rad)
                    min_rad=rad;
            }
    for(ll i=0;i<n;i++)
        for(ll j=i+1;j<n;j++)
        {
            double rad = radius2(a[i].F,a[i].S,a[j].F,a[j].S,a);
            if(rad>=0 && rad<min_rad)
                min_rad=rad;      
        }

    cout<<setprecision(20)<<min_rad<<endl;

}

Measured memory_bytes: 256