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 Scala (judge verdict: Accepted)

import scala.io.StdIn.readLine
import scala.math.{max, min}
import scala.annotation.tailrec

object Main extends App {

  readLine()

  val xs = readLine().split(" ").map { _.toLong }

  val (minV, maxV, sumV) = solve(xs)
  println(s"$minV $maxV $sumV")

  def solve(zs: Seq[Long]): (Long, Long, Long) = {

    @tailrec
    def go(xs: List[Long], t: (Long, Long, Long)): (Long, Long, Long) =
      xs match {
        case Nil     => t
        case y :: ys =>
          val (minV, maxV, sumV) = t
          go(ys, (min(y, minV), max(y, maxV), y + sumV))
      }

    val x :: xs = zs.toList
    go(xs, (x, x, x))
  }
}