結果
| 問題 |
No.351 市松スライドパズル
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-04-26 23:55:03 |
| 言語 | Haskell (9.10.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,136 bytes |
| コンパイル時間 | 2,056 ms |
| コンパイル使用メモリ | 176,128 KB |
| 実行使用メモリ | 398,976 KB |
| 最終ジャッジ日時 | 2024-09-13 13:04:03 |
| 合計ジャッジ時間 | 27,774 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 7 WA * 2 TLE * 8 |
コンパイルメッセージ
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
ソースコード
import Control.Monad
import Debug.Trace
rInt :: String -> Int
rInt = read
rcTuple [rc,x] = (rc, rInt x)
solve _ _ [] r c
| ((r + c) `mod` 2) == 0 = "white"
| otherwise = "black"
solve w h (rc:rcs) r c
| updateR || updateC = solve w h rcs r' c'
| otherwise = solve w h rcs r c
where
updateR = (fst rc) == "C" && (snd rc) == c
updateC = (fst rc) == "R" && (snd rc) == r
r' | updateR = (r + h - 1) `mod` h
| otherwise = r
c' | updateC = (c + w - 1) `mod` w
| otherwise = c
--r' | updateR = trace ("R : " ++ show r ++ "->" ++ show ((r + h - 1) `mod` h)) ((r + h - 1) `mod` h)
-- | otherwise = trace ("R : " ++ show r) r
--c' | updateC = trace ("C : " ++ show c ++ "->" ++ show ((c + w - 1) `mod` w)) ((c + w - 1) `mod` w)
-- | otherwise = trace ("C : " ++ show c) c
main = do
[w, h] <- map rInt . words <$> getLine
n <- readLn
rc <- map (rcTuple . words) <$> replicateM n getLine
--print $ show w ++ " " ++ show h
--print rc
putStrLn $ solve w h rc 0 0