import Data.Array((!), listArray, Array, bounds) import Data.List(sort) pickMedian :: Array Int Double -> Double pickMedian xs = (xs ! mid + xs ! mid2) / 2 where (start, end) = bounds xs mid = (end) `div` 2 mid2 = if mod mid 2 == 1 then mid else (end + 1) `div` 2 median xs = pickMedian $ listArray (0, length xs - 1) (sort xs) readInt :: String -> Double readInt = read main = getLine >>= print . median . map readInt . words