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)

{-
ITP1_4-D
Discussion Solution Statistics Submit
 
Computation - Min, Max and Sum
Time Limit : 1 sec, Memory Limit : 65536 KB
????°????????????§??????????¨????

n
????????´??° ai(i=1,2,...n)

?????\?????????????????????????°????????????§??????????¨????????±???????????????°????????????????????????????????????
Input

??????????????´??°?????° n
???????????????????????????????????? n ????????´??° ai

????????????????????§?????????????????????
Output

????°????????????§??????????¨????????????????????????§????????????????????????????????????
Constraints

    0<n???10000

???1000000???ai???1000000

Sample Input

5
10 1 5 4 17

Sample Output

1 17 37
-}
import Data.List.Split
main = do
  s <- getLine
  t <- getLine
  putStrLn $ aux s t

aux :: String -> String -> String
aux s t = (show xmin) ++ " " ++ (show xmax) ++ " " ++ (show xsum)
  where
     xminLimit = -1000001 :: Int
     xmaxLimit =  1000001 :: Int
     n = read s :: Int
     f = map (\x->read x :: Int) $ splitOn " " t
     xmax = foldr (\x acc -> max x acc) xminLimit f
     xmin = foldr (\x acc -> min x acc) xmaxLimit f
     xsum = sum f :: Int