Problem:
MathJax.Hub.Config({ tex2jax: { inlineMath: [["$","$"], ["\\(","\\)"]], processEscapes: true }});

Min, Max and Sum

Write a program which reads a sequence of $n$ integers $a_i (i = 1, 2, ... n)$, and prints the minimum value, maximum value and sum of the sequence.

Input

In the first line, an integer $n$ is given. In the next line, $n$ integers $a_i$ are given in a line.

Output

Print the minimum value, maximum value and sum in a line. Put a single space between the values.

Constraints

$0 < n \leq 10000$

$-1000000 \leq a_i \leq 1000000$

Sample Input

5
10 1 5 4 17

Sample Output

1 17 37

Solution in Haskell (judge verdict: Accepted)

import Prelude hiding (min, max, sum)

import Data.Functor ((<$>))

min (x:xs) = go x xs
  where
  go x [] = x
  go x (y:ys) = if x < y then go x ys else go y ys

max (x:xs) = go x xs
  where
  go x [] = x
  go x (y:ys) = if x > y then go x ys else go y ys

sum = foldr (\x a -> x + a) 0

main = do
  _ <- getLine
  xs <- map read . words <$> getLine
  putStrLn $ unwords $ map show [min xs, max xs, sum xs]