結果
問題 | No.358 も~っと!門松列 |
ユーザー |
|
提出日時 | 2016-10-07 18:58:14 |
言語 | OCaml (5.2.1) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 859 bytes |
コンパイル時間 | 216 ms |
コンパイル使用メモリ | 19,824 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-08 23:51:16 |
合計ジャッジ時間 | 1,061 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 23 |
ソースコード
let is_kadomatsu ((a1, a2, a3): int * int * int) = (a1 <> a2 && a2 <> a3 && a3 <> a1) && ((a2 < a1 && a2 < a3) || (a2 > a1 && a2 > a3)) let max_a (a1, a2, a3): int = max a1 a2 |> max a3 let count_kadomatsu (a1, a2, a3) = let ma = max_a (a1, a2, a3) in let rec count_kadomatsu' idx result = if idx > ma then result else let ik = is_kadomatsu (a1 mod idx, a2 mod idx, a3 mod idx) in let nextResult = if ik then result + 1 else result in count_kadomatsu' (idx + 1) nextResult in count_kadomatsu' 3 0 let () = let atp = read_line () |> Str.split (Str.regexp_string " ") |> List.map int_of_string |> fun lst -> (List.nth lst 0, List.nth lst 1, List.nth lst 2) in let ans = if is_kadomatsu atp then "INF" else string_of_int (count_kadomatsu atp) in print_endline ans