結果
| 問題 |
No.116 門松列(1)
|
| コンテスト | |
| ユーザー |
r6eve
|
| 提出日時 | 2017-08-10 16:01:10 |
| 言語 | OCaml (5.2.1) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 5,000 ms |
| コード長 | 421 bytes |
| コンパイル時間 | 342 ms |
| コンパイル使用メモリ | 21,704 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-10-09 00:09:09 |
| 合計ジャッジ時間 | 1,324 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 21 |
ソースコード
let read () = Scanf.scanf "%d " (fun i -> i)
let check x y z =
if x = y || y = z || z = x then false
else if x < y && y < z then false
else if x > y && y > z then false
else true
let () =
let n = read () in
let a = Array.init n (fun _ -> read ()) in
let rec doit i cnt =
if i = n then cnt
else doit (i + 1) (cnt + if check a.(i-2) a.(i-1) a.(i) then 1 else 0) in
doit 2 0 |> Printf.printf "%d\n"
r6eve