local msq = math.sqrt
local mma = math.max
local t = {}
for i = 1, 6 do t[i] = io.read("*n") end
local a = msq((t[1] -t[3]) * (t[1] - t[3]) + (t[2] -t[4]) * (t[2] - t[4]))
local b = msq((t[1] -t[5]) * (t[1] - t[5]) + (t[2] -t[6]) * (t[2] - t[6]))
local c = msq((t[5] -t[3]) * (t[5] - t[3]) + (t[6] -t[4]) * (t[6] - t[4]))
local S = 0
do
  local z = (a + b + c) / 2.0
  S = msq(z * (z - a) * (z - b) * (z - c))
end

local function check(r)
  local h1 = 2 * S / a
  if h1 <= r then return false end
  local rate1 = (h1 - r) / h1
  local a1, b1, c1 = a * rate1, b * rate1, c * rate1
  local S1 = S * rate1 * rate1
  local h2 = 2 * S1 / b1
  if h2 <= r then return false end
  local rate2 = (h2 - r) / h2
  local a2, b2, c2 = a1 * rate2, b1 * rate2, c1 * rate2
  local S2 = S1 * rate2 * rate2
  local h3 = 2 * S2 / c2
  if h3 <= r then return false end
  local rate3 = (h3 - r) / h3
  local a3, b3, c3 = a2 * rate3, b2 * rate3, c2 * rate3
  local v = mma(a3, mma(b3, c3))
  return 2 * r <= v
end

local min, max = 0, 2000.0
while(os.clock() < 1.5) do
  local mid = (min + max) / 2.0
  if check(mid) then
    min = mid
  else
    max = mid
  end
end
print(string.format("%.12f", min))
