結果
問題 |
No.275 中央値を求めよ
|
ユーザー |
|
提出日時 | 2025-07-12 02:01:49 |
言語 | Standard ML (MLton 20210117) |
結果 |
AC
|
実行時間 | 6 ms / 1,000 ms |
コード長 | 947 bytes |
コンパイル時間 | 5,878 ms |
コンパイル使用メモリ | 687,564 KB |
実行使用メモリ | 7,844 KB |
最終ジャッジ日時 | 2025-07-12 02:01:58 |
合計ジャッジ時間 | 7,771 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 38 |
ソースコード
fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) fun realString n = if 0.0 <= n then Real.toString n else "-" ^ Real.toString (Real.abs n) fun insertionSort l = let fun insert x [] = [x] | insert x (y::ys) = if x <= y then x::y::ys else y::(insert x ys) in foldl (fn (x, acc) => insert x acc) [] l end val () = let val n = readInt () val a_s = List.tabulate (n, fn _ => readInt ()) fun findMedian l = let val sorted = insertionSort l val i = length l div 2 in if length l mod 2 = 0 then (Real.fromInt (List.nth(sorted, (i - 1)) + List.nth(sorted, i) )) / 2.0 else Real.fromInt (List.nth(sorted, i)) end val ans = findMedian a_s in print (realString ans) end