import Control.Arrow
import qualified Data.Vector.Unboxed as VU
import qualified Data.ByteString.Char8 as B
import Data.List

fact n = product [1..n]

solve :: Int -> VU.Vector (Int, Int) -> Double
solve n vs = (/ fromIntegral (fact n)) $ sum $ map (dist 0) $ permutations [0 .. n - 1]
  where
    dist acc (i:j:ks) =
      let (x1,y1) = vs VU.! i
          (x2,y2) = vs VU.! j
      in dist (sqrt (fromIntegral $ (x1-x2)^2 + (y1-y2)^2) + acc) (j:ks)
    dist acc _ = acc

main = do
  let readInt = fmap (second B.tail) . B.readInt

  n   <- (VU.! 0) . VU.unfoldrN 1 readInt <$> B.getLine
  xys <-
    VU.replicateM n
    $   (\vec -> (vec VU.! 0, vec VU.! 1))
    .   VU.unfoldrN 2 readInt
    <$> B.getLine

  print $ solve n xys
