結果
| 問題 |
No.5 数字のブロック
|
| ユーザー |
piconic_X
|
| 提出日時 | 2015-11-14 15:53:37 |
| 言語 | OCaml (5.2.1) |
| 結果 |
WA
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 889 bytes |
| コンパイル時間 | 465 ms |
| コンパイル使用メモリ | 19,824 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-10-08 23:42:37 |
| 合計ジャッジ時間 | 1,508 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | WA * 34 |
ソースコード
let main l upls =
let rec calc ls ?(i=0) presum =
match ls with
[] -> i
| hd :: tl -> let sum = presum + hd in
if sum > l then i
else calc tl sum ~i:i+1
in
calc upls 0
let split s c =
let len = String.length s in
let rec iter pos to_rev =
if pos = len then List.rev ("" :: to_rev) else
match try
Some ( String.index_from s pos c )
with Not_found -> None
with
Some pos2 ->
if pos2 = pos then iter (pos+1) ("" :: to_rev) else
iter (pos2+1) ((String.sub s pos (pos2-pos)) :: to_rev)
| None -> List.rev ( String.sub s pos (len-pos) :: to_rev )
in
iter 0 []
let () =
let main1 = main @@ int_of_string @@ read_line () in
ignore @@ read_line ();
let upls = List.fast_sort compare @@ (List.map int_of_string @@ split (read_line ()) ' ') in
print_int @@ main1 upls;
print_endline "\n"
piconic_X