import Data.List
import Control.Monad

solve :: [[Int]] -> [Int] -> [Double] -> Double
solve inData prev ans
 | null inData = sum ans
 | otherwise   = solve (tail inData) (head inData) (newAns:ans)
   where newAns = sqrt $ fromIntegral ((prev !! 0 - (head inData) !! 0) ^ 2 + (prev !! 1 - (head inData) !! 1) ^ 2) 

solve' :: [[[Int]]] -> [Double] -> Double
solve' xyLists ans
 | null xyLists = (sum ans) / fromIntegral (length ans)
 | otherwise    = solve' (tail xyLists) (newAns:ans)
   where newAns = solve (tail (head xyLists)) (head (head xyLists)) []

main = do
 n <- read <$> getLine :: IO Int
 xyList <- replicateM n (map read . words <$> getLine) :: IO[[Int]]
 print $ solve' (permutations xyList) []
