結果
| 問題 |
No.9008 空白区切りで与えられる数値データの合計値を求める(テスト用)
|
| ユーザー |
|
| 提出日時 | 2018-04-28 19:40:06 |
| 言語 | OCaml (5.2.1) |
| 結果 |
AC
|
| 実行時間 | 199 ms / 2,000 ms |
| コード長 | 1,284 bytes |
| コンパイル時間 | 385 ms |
| コンパイル使用メモリ | 21,788 KB |
| 実行使用メモリ | 48,676 KB |
| 最終ジャッジ日時 | 2024-10-09 00:30:54 |
| 合計ジャッジ時間 | 2,487 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 15 |
ソースコード
open Scanf
open Printf
let ($) f x = f x
let scanIntlist n = let list = ref [] in
for i = 1 to n do
list := (scanf (if i < n then "%Ld " else "%Ld") (fun x -> x))::!list
done; List.rev !list
let string2charlist s = let rec proc i res =
try proc (i+1) $ s.[i]::res
with Invalid_argument _ -> res
in List.rev $ proc 0 []
let minInt l = let rec proc l res = match l with
[] -> res
| x::xs -> if x < res then proc xs x else proc xs res
in if l == [] then raise $ Failure "null list" else proc l max_int
let maxInt l = let rec proc l res = match l with
[] -> res
| x::xs -> if x > res then proc xs x else proc xs res
in if l == [] then raise $ Failure "null list" else proc l min_int
let rec listSum = function
[] -> Int64.zero
| x::xs -> Int64.add x (listSum xs)
let rec quick_sort = function
([] | [_]) as l -> l
| pivot :: rest ->
let rec partition left right = function
[] -> (quick_sort left) @ (pivot :: quick_sort right)
| y :: ys -> if pivot < y then partition left (y :: right) ys
else partition (y :: left) right ys
in partition [] [] rest;;
scanf "%d " $ fun n -> print_string $ Int64.to_string (listSum (scanIntlist n));;