fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) fun quicksort [] = [] | quicksort (h::tl) = let val (s, b) = List.foldl (fn (x, (small, big)) => if x <= h then (x::small, big) else (small, x::big)) ([], []) tl in (quicksort s) @ [h] @ (quicksort b) end val () = let val ha = readInt () val hb = readInt () val hc = readInt () val sorted = List.rev (quicksort [ha, hb, hc]) fun findAns [] = "" | findAns (h :: tl) = if h = ha then "A\n" ^ findAns tl else if h = hb then "B\n" ^ findAns tl else "C\n" ^ findAns tl in print (findAns sorted) end