結果
問題 | No.706 多眼生物の調査 |
ユーザー |
|
提出日時 | 2018-09-17 00:14:06 |
言語 | OCaml (5.2.1) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,242 bytes |
コンパイル時間 | 289 ms |
コンパイル使用メモリ | 18,304 KB |
最終ジャッジ日時 | 2024-11-14 20:37:12 |
合計ジャッジ時間 | 871 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
File "Main.ml", line 9, characters 2-13: 9 | Stream.iter (fun x -> result := f !result x) st; ^^^^^^^^^^^ Error: Unbound module Stream
ソースコード
module IntMap = Map.Make(structtype t = intlet compare = compareend)let stream_fold f init st =let result = ref init inStream.iter (fun x -> result := f !result x) st;!resultlet stream_to_rev_list st =stream_fold (fun result elem -> elem :: result) [] stlet map_find_opt key map =if IntMap.mem key map thenSome(IntMap.find key map)elseNonelet map_to_list map =let result = ref [] inIntMap.iter (fun k v -> result := (k, v) :: !result) map;!resultlet solve s_lst =let rec solve' lst map =match lst with| [] -> map| x :: rest ->let map' = match map_find_opt x map with| None -> IntMap.add x 1 map| Some(y) -> IntMap.add x (y + 1) mapinsolve' rest map'insolve' s_lst IntMap.empty|> map_to_list|> List.sort (fun (k1, v1) (k2, v2) ->match compare v2 v1 with| c when c <> 0 -> c| _ -> compare k2 k1)|> List.hd|> fun (k, v) -> klet () =let n = read_line () |> int_of_string inlet s_lst = Stream.from(fun i ->if i >= n thenNoneelseread_line ()|> String.length|> fun j -> Some(j - 2))|> stream_to_rev_listinsolve s_lst|> Printf.printf "%d\n"