local read = setmetatable({}, {__index = function(t, k) local a = {} for i=1,#k do table.insert(a, '*'..string.sub(k, i, i)) end local r = io.read local u = table.unpack or unpack return function() return r(u(a)) end end})
read.N = function(N) local t={} for i=1,N do t[i]=read.n() end return t end
string.totable = function(s) local t={} local u=string.sub for i=1,#s do t[i] = u(s, i, i) end return t end
string.split = function(s) local t={} for w in string.gmatch(s, "[^%s]+") do table.insert(t, w) end return (table.unpack or unpack)(t) end
----
local function distance(a, b)
    local d_sq_2 = (b[1] - a[1])^2 + (b[2] - a[2])^2
    return d_sq_2^0.5
end
--assert(math.abs(distance({0,0},{1,1}) - 2^0.5) <= 0.000000000001)
----
local N = read.n()
local P = {}
for i=1,N do
    local x, y = read.nn()
    P[i] = {x, y}
end

local function check(a, b)
    local ox = (a[1] + b[1]) / 2.0
    local oy = (a[2] + b[2]) / 2.0
    local o = {ox, oy}
    local r = distance(a, b) / 2.0
    for i=1,N do
        local distance_from_o = distance(o, P[i])
        --if distance_from_o <= r then
        local d = r - distance_from_o
        if d >= 0 or math.abs(d) <= 10^-6 then
            -- OK
        else
            -- NG
            return false, 10^6
        end
    end
    return true, r
end

local ans = 10^6
for i=1,N-1 do
    for j=i+1,N do
        local ok, r = check(P[i], P[j])
        if ok then
            ans = math.min(ans, r)
        end
    end
end
assert(ans < 1414.22)
print(ans)