結果
| 問題 |
No.351 市松スライドパズル
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-04-26 23:49:33 |
| 言語 | Haskell (9.10.1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,133 bytes |
| コンパイル時間 | 1,987 ms |
| コンパイル使用メモリ | 175,488 KB |
| 実行使用メモリ | 480,548 KB |
| 最終ジャッジ日時 | 2024-09-13 12:56:39 |
| 合計ジャッジ時間 | 10,945 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 3 RE * 1 |
| other | WA * 4 RE * 4 TLE * 2 -- * 7 |
コンパイルメッセージ
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 c 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