import qualified Data.Text as T
import qualified Data.Text.IO as T
import qualified Data.Text.Read as T
import Data.List (sort)

main :: IO ()
main = do
  let
    f :: Rational -> [Rational] -> Rational
    f = foldl step
      where
        step :: Rational -> Rational -> Rational
        step v v' = (v + v') / 2
  n <- unsafeTextToInt <$> T.getLine :: IO Int
  v0 : vs <- sort . map unsafeTextToRational . T.words <$> T.getLine :: IO [Rational]
  print . (fromRational :: Rational -> Double) . f v0 $ vs

unsafeTextToRational :: T.Text -> Rational
unsafeTextToRational s = case T.rational s of
  Right (x, _) -> x
{-# INLINE unsafeTextToRational #-}

unsafeTextToInt :: T.Text -> Int
unsafeTextToInt s = case T.signed T.decimal s of
  Right (n, _) -> n
{-# INLINE unsafeTextToInt #-}
