using System;
using System.Linq;
using System.Collections.Generic;
using static System.Console;
using System.Text;
using System.IO;
using static System.Math;
using System.Numerics;

namespace AtCoder
{
    class Program
    {
        static public long[] Sarray() { return ReadLine().Split().Select(long.Parse).ToArray(); }
        static public List<long> Slist() { return ReadLine().Split().Select(long.Parse).ToList(); }
        static public (T1 a, T2 b) Slice<T1, T2>()
        {
            var t = ReadLine().Split();
            return (
            (T1)Convert.ChangeType(t[0], typeof(T1)),
            (T2)Convert.ChangeType(t[1], typeof(T2)));
        }
        static long Mod = (long)1e9 + 7;
        static void Main(string[] args)
        {
            SetOut(new StreamWriter(OpenStandardOutput()) { AutoFlush = false });
            Solve();
            Out.Flush();
            Read();
        }
        static void Solve()
        {
            var N = Sarray()[0];
            var xy = new (long x, long y)[N];
            for (var i = 0; i < N; ++i)
                xy[i] = Slice<long, long>();
            double snorm((double x, double y) p1, (double x, double y) p2) =>
                (p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y);
            bool incircle((double x, double y) cc, double r, (double x, double y) p) =>
                 Sqrt(snorm(cc, p)) <= r + 0.0000001;
            bool isequal(double x, double y) => Abs(x - y) < 0.0000001;
            if (N == 2)
            {
                WriteLine(Sqrt(snorm(xy[0], xy[1])) / 2.0);
                return;
            }
            var minr = double.MaxValue;
            for (var i = 0; i < N; ++i)
                for (var j = i + 1; j < N; ++j)
                {
                    var outside = false;
                    var cxy = ((xy[i].x + xy[j].x) / 2.0, (xy[i].y + xy[j].y) / 2.0);
                    var r = Sqrt(snorm(xy[i], xy[j])) / 2.0;
                    for (var l = 0; l < N; ++l)
                    {
                        if (!incircle(cxy, r, xy[l]))
                        {
                            outside = true;
                            break;
                        }
                    }
                    if (!outside)
                        minr = Min(minr, r);

                    for (var k = j + 1; k < N; ++k)
                    {
                        var a2 = snorm(xy[j], xy[k]);
                        var b2 = snorm(xy[k], xy[i]);
                        var c2 = snorm(xy[i], xy[j]);
                        var e1 = a2 * (b2 + c2 - a2);
                        var e2 = b2 * (c2 + a2 - b2);
                        var e3 = c2 * (a2 + b2 - c2);
                        var cx = e1 * xy[i].x + e2 * xy[j].x + e3 * xy[k].x;
                        var cy = e1 * xy[i].y + e2 * xy[j].y + e3 * xy[k].y;
                        cxy = (cx / (e1 + e2 + e3), cy / (e1 + e2 + e3));
                        var a = Sqrt(a2);
                        var b = Sqrt(b2);
                        var c = Sqrt(c2);
                        r = Sqrt(snorm(cxy, xy[i]));
                        if (isequal(a + b, c) || isequal(b + c, a) || isequal(c + a, b))//直線の場合
                            continue;
                        outside = false;
                        for (var l = 0; l < N; ++l)
                        {
                            if (!incircle(cxy, r, xy[l]))
                            {
                                outside = true;
                                break;
                            }
                        }
                        if (!outside)
                            minr = Min(minr, r);
                    }
                }
            WriteLine(minr);
        }
    }
}

Measured memory_bytes: 28324