// Problem: https://codeforces.com/contest/1285/problem/E
#include<bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>
 
using namespace std;
// using namespace __gnu_pbds;
 
#define ford(i, a, b, c)        for(int i=(a); i<(b); i+=(c))
#define fori(i, a, b)           ford(i,a,b,1)
#define rep(i, n)               fori(i,0,n)
#define ifor(i, a, b)           for(int i=(a); i>=(b); i--)
#define si(x)                   ((int)x.size())
#define SS                      ({int x;scanf("%d",&x);x;})
#define pb                      push_back
#define mp                      make_pair
#define all(a)                  a.begin(),a.end()
#define inf                     (int)1e9
#define linf                    (long long)1e18
#define V                       vector
#define S                       string
#define XX                      first
#define YY                      second
#define P(x)                    cout<<x<<"\n"
#define PVI(v)                  rep(i, si(v)) cout<<v[i]<<" "; puts("")
#define PPI(p)                  cout<<"("<<p.first<<", "<<p.second<<")\n"
#define PVPI(v)                 rep(i, si(v)) cout<<"("<<v[i].first<<", "<<v[i].second<<")"<<(i==si(v)-1?"":", ");puts("")
#define PA(arr1, arr2)          for(auto it = arr1; it != arr2; it++) cout<<*it<<" "; puts("");
typedef V<int> vi;
typedef V<S> vs;
typedef long long ll;
typedef pair<int,int> pii;
const int MOD7 = 1000000000+7;
const int MOD9 = 1000000000+9;
/* ################### Program Body starts here ################ */


int pow(int x, int y) {
    int ans = 1;
    rep(i, y) ans *= x;
    return ans;
}

int collinear(int x1, int y1, int x2,
               int y2, int x3, int y3)
{
    // Calculation the area of
    // triangle. We have skipped
    // multiplication with 0.5
    // to avoid floating point
    // computations
    int a = x1 * (y2 - y3) +
            x2 * (y3 - y1) +
            x3 * (y1 - y2);
  
    return a == 0;
}
  
pair<double, double> findCircle(int x1, int y1, int x2, int y2, int x3, int y3)
{
    int x12 = x1 - x2;
    int x13 = x1 - x3;
  
    int y12 = y1 - y2;
    int y13 = y1 - y3;
  
    int y31 = y3 - y1;
    int y21 = y2 - y1;
  
    int x31 = x3 - x1;
    int 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.0 * ((y31) * (x12) - (y21) * (x13)));
    double g = ((sx13) * (y12)
             + (sy13) * (y12)
             + (sx21) * (y13)
             + (sy21) * (y13))
            / (2.0 * ((x31) * (y12) - (x21) * (y13)));
  
    // 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
    return {-g, -f};
}

double dissqrt(pair<double, double> p1, pair<double, double> p2) {
    return sqrt((p1.XX-p2.XX)*(p1.XX-p2.XX) + (p1.YY-p2.YY)*(p1.YY-p2.YY));
}

int check(V<pii>& points, pair<double, double> center, double r) {
    rep(i, si(points)) {
        if (dissqrt(points[i], center) > r+1e-6) {
            return 0;
        }
    }
    return 1;
}

int main() {
    int n = SS;
    V<pii> points, pts;
    rep(i, n) {
        int x = SS;
        int y = SS;
        points.pb({x, y});
    }
    double ans = inf;
    rep(i, n) fori(j, i+1, n) {
        pair<double, double> center;
        center.XX = (points[i].XX+points[j].XX)/2.0;
        center.YY = (points[i].YY+points[j].YY)/2.0;
        double r = dissqrt(points[i], center);
        if (check(points, center, r)) {
            ans = min(ans, r);
        }
    }
    
    rep(i, n) fori(j, i+1, n) fori(k, j+1, n) {
        if (collinear(points[i].XX, points[i].YY, points[j].XX, points[j].YY, points[k].XX, points[k].YY)) {
            continue;
        }
        pair<double, double> center = findCircle(
            points[i].XX, points[i].YY,
            points[j].XX, points[j].YY,
            points[k].XX, points[k].YY
        );
        double r = dissqrt(points[i], center);
        if (check(points, center, r)) {
            ans = min(ans, r);
        }
    }
    
    printf("%.9lf\n", ans);
}


Measured memory_bytes: 256