結果

問題 No.116 門松列(1)
ユーザー かりあげクン
提出日時 2020-09-06 16:36:48
言語 Haskell
(9.10.1)
結果
WA  
実行時間 -
コード長 679 bytes
コンパイル時間 8,812 ms
コンパイル使用メモリ 180,172 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-11-29 07:17:12
合計ジャッジ時間 9,887 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2 WA * 1
other AC * 10 WA * 11
権限があれば一括ダウンロードができます
コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.8.2/environments/default
[1 of 2] Compiling Main             ( Main.hs, Main.o )
[2 of 2] Linking a.out

ソースコード

diff #

import           Data.Maybe (fromJust)
import qualified Data.ByteString.Char8 as BSC8

main :: IO ()
main = do
  BSC8.getLine
  xs <- map (fst . fromJust . BSC8.readInt) . BSC8.words <$> BSC8.getLine
  print $ countKadomatsu xs

countKadomatsu :: [Int] -> Int
countKadomatsu = para phi 0
  where
    phi x ([],        st) = st
    phi x ([y],       st) = st
    phi x ([y, z],    st) = st
    phi x ((p:q:r:_), st) = if p /= r && ((p > q && q < r) || (p < q && q > r))
                                then st + 1
                                else st

para :: (a -> ([a], b) -> b) -> b -> [a] -> b
para phi b = step
  where
    step [] = b
    step (x:xs) = phi x (xs, step xs)
0