fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) exception E fun findMin l = let fun findMinAux (nil, _) = raise E | findMinAux (_ :: nil, acc) = acc | findMinAux (h1 :: h2 :: tl, acc) = findMinAux (h2 :: tl, Int.min (h2 - h1, acc)) in findMinAux (l, 200000) end fun findMax l = List.last l - List.hd l val () = let val n = readInt () val a_s = List.tabulate (n, fn _ => readInt ()) in ( print (Int.toString (findMin a_s) ^ "\n"); print (Int.toString (findMax a_s) ^ "\n") ) end