結果
問題 | No.607 開通777年記念 |
ユーザー | kuwa |
提出日時 | 2017-12-10 19:12:05 |
言語 | Haskell (9.8.2) |
結果 |
AC
|
実行時間 | 152 ms / 2,000 ms |
コード長 | 1,381 bytes |
コンパイル時間 | 10,864 ms |
コンパイル使用メモリ | 182,588 KB |
実行使用メモリ | 25,448 KB |
最終ジャッジ日時 | 2023-08-20 09:56:27 |
合計ジャッジ時間 | 10,415 ms |
ジャッジサーバーID (参考情報) |
judge11 / judge14 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 3 ms
7,324 KB |
testcase_01 | AC | 3 ms
7,252 KB |
testcase_02 | AC | 2 ms
7,348 KB |
testcase_03 | AC | 3 ms
7,316 KB |
testcase_04 | AC | 3 ms
7,320 KB |
testcase_05 | AC | 3 ms
7,252 KB |
testcase_06 | AC | 3 ms
7,188 KB |
testcase_07 | AC | 22 ms
13,088 KB |
testcase_08 | AC | 3 ms
7,296 KB |
testcase_09 | AC | 7 ms
11,404 KB |
testcase_10 | AC | 3 ms
7,460 KB |
testcase_11 | AC | 142 ms
25,448 KB |
testcase_12 | AC | 152 ms
20,148 KB |
コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.6.1/environments/default [1 of 2] Compiling Main ( Main.hs, Main.o ) [2 of 2] Linking a.out
ソースコード
module Main where import Control.Monad import Control.Applicative import Data.Maybe import Data.List import qualified Text.Printf import qualified Data.ByteString.Char8 as BC import qualified Data.ByteString as BC import Data.Array.Unboxed (UArray, (!), listArray) import qualified Data.Array.Unboxed as UArray ------------------------------------------ main :: IO () main = do [n, m] <- readInts rawStats <- replicateM m $ readInts let stat0 = replicate n 0 stats = map (listArray (0, n-1)) $ scanl' (zipWith (+)) stat0 rawStats res = any (check777 n) stats putStrLn $ if res then "YES" else "NO" check777 :: Int -> UArray Int Int -> Bool check777 ub stat = f 0 0 0 where f l r acc | r == ub && l == ub = False | acc == 777 = True | r == ub = f (l+1) r (acc - (stat ! l)) | acc < 777 = f l (r+1) (acc + (stat ! r)) | otherwise = f (l+1) r (acc - (stat ! l)) ------------------------------------------ {- Int input -} parseInt :: BC.ByteString -> Int parseInt = fst . fromJust . BC.readInt parseInts :: BC.ByteString -> [Int] parseInts = map parseInt <$> BC.words readInt :: IO Int readInt = parseInt <$> BC.getLine readInts :: IO [Int] readInts = parseInts <$> BC.getLine {- Double Formatting -} doubleFmt :: Double -> String doubleFmt = Text.Printf.printf "%.12f"