結果
問題 | No.482 あなたの名は |
ユーザー | ducktail |
提出日時 | 2018-08-23 13:08:56 |
言語 | Haskell (9.8.2) |
結果 |
AC
|
実行時間 | 93 ms / 2,000 ms |
コード長 | 1,212 bytes |
コンパイル時間 | 12,980 ms |
コンパイル使用メモリ | 195,204 KB |
実行使用メモリ | 23,392 KB |
最終ジャッジ日時 | 2023-08-27 06:27:07 |
合計ジャッジ時間 | 15,674 ms |
ジャッジサーバーID (参考情報) |
judge14 / judge12 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 3 ms
7,436 KB |
testcase_01 | AC | 3 ms
7,420 KB |
testcase_02 | AC | 3 ms
7,308 KB |
testcase_03 | AC | 2 ms
7,224 KB |
testcase_04 | AC | 2 ms
7,384 KB |
testcase_05 | AC | 3 ms
7,484 KB |
testcase_06 | AC | 3 ms
7,404 KB |
testcase_07 | AC | 3 ms
7,644 KB |
testcase_08 | AC | 3 ms
7,556 KB |
testcase_09 | AC | 3 ms
7,456 KB |
testcase_10 | AC | 3 ms
7,592 KB |
testcase_11 | AC | 3 ms
7,656 KB |
testcase_12 | AC | 3 ms
7,696 KB |
testcase_13 | AC | 3 ms
7,752 KB |
testcase_14 | AC | 3 ms
7,552 KB |
testcase_15 | AC | 83 ms
23,264 KB |
testcase_16 | AC | 83 ms
23,236 KB |
testcase_17 | AC | 93 ms
23,212 KB |
testcase_18 | AC | 92 ms
23,316 KB |
testcase_19 | AC | 83 ms
23,256 KB |
testcase_20 | AC | 83 ms
23,244 KB |
testcase_21 | AC | 83 ms
23,216 KB |
testcase_22 | AC | 83 ms
23,308 KB |
testcase_23 | AC | 83 ms
23,320 KB |
testcase_24 | AC | 83 ms
23,288 KB |
testcase_25 | AC | 82 ms
23,260 KB |
testcase_26 | AC | 83 ms
23,392 KB |
testcase_27 | AC | 82 ms
23,216 KB |
testcase_28 | AC | 83 ms
23,316 KB |
testcase_29 | AC | 62 ms
23,040 KB |
testcase_30 | AC | 3 ms
7,412 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
ソースコード
import Control.Applicative import Data.ByteString.Char8 (ByteString) import qualified Data.ByteString.Char8 as B import Data.List import Data.Char (isSpace) import Data.Vector (Vector, (!), (//)) import qualified Data.Vector as V import Data.IntSet (IntSet) import qualified Data.IntSet as IS main :: IO () main = solve <$> f <*> g >>= putStrLn where f = readil B.readInt <$> B.getLine g = readiv B.readInt <$> B.getLine solve :: [Int] -> Vector Int -> String solve [n, k] v | ct <= k && even (k - ct) = "YES" | otherwise = "NO" where (ct, _) = V.ifoldl' f (0, IS.empty) v f (ct, mm) i x | i+1 == x = (ct, mm) | otherwise = count (ct, mm) i count (ct, mm) i | IS.member (v ! i - 1) mm = (ct, IS.insert i mm) | otherwise = count (ct+1, IS.insert i mm) (v ! i - 1) readil :: Integral a => (ByteString -> Maybe (a, ByteString)) -> ByteString -> [a] readil f = unfoldr g where g s = do (n, s') <- f s return (n, B.dropWhile isSpace s') readiv :: Integral a => (ByteString -> Maybe (a, ByteString)) -> ByteString -> Vector a readiv f = V.unfoldr g where g s = do (n, s') <- f s return (n, B.dropWhile isSpace s')