結果
| 問題 |
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