結果

問題 No.116 門松列(1)
ユーザー tanson
提出日時 2025-08-27 02:13:30
言語 Standard ML
(MLton 20210117)
結果
AC  
実行時間 1 ms / 5,000 ms
コード長 632 bytes
コンパイル時間 6,695 ms
コンパイル使用メモリ 686,460 KB
実行使用メモリ 7,716 KB
最終ジャッジ日時 2025-08-27 02:13:38
合計ジャッジ時間 6,093 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 21
権限があれば一括ダウンロードができます

ソースコード

diff #

fun readInt () =
    valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn)

fun findAns [] = 0
  | findAns [_] = 0
  | findAns [_, _] = 0
  | findAns (a1 :: a2 :: a3 :: tl) = 
    if (a1 <> a2 andalso a1 <> a3 andalso a2 <> a3) andalso
       ((Int.min(a2, a3) < a1 andalso a1 < Int.max(a2, a3)) orelse
        (Int.min(a1, a2) < a3 andalso a3 < Int.max(a1, a2)))
    then 1 + findAns (a2 :: a3 :: tl)
    else findAns (a2 :: a3 :: tl)

val () =
    let
        val n = readInt ()
        val a_s = List.tabulate (n, fn _ => readInt ())
        val ans = findAns a_s
    in
        print (Int.toString ans ^ "\n")
    end
0