Submission #35701608


Source Code Expand

Copy
import Control.Monad
import qualified Data.ByteString.Char8 as BS
import Data.Char
import Data.List
import qualified Data.IntMap as IM
import qualified Data.IntSet as IS
import Data.Maybe
main = do
[h,w,rs,cs] <- bsGetLnInts
[n] <- bsGetLnInts
rcs <- replicateM n bsGetLnInts
let dat = abc273dp h w n rcs
[q] <- bsGetLnInts
foldM_ (\rc _ -> do
li <- BS.getLine
let d = BS.index li 0
let Just (l,_) = BS.readInt $ BS.tail $ BS.tail li
let rc1@(r1,c1) = abc273d dat rc d l
putStrLn $ unwords [show r1, show c1]
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
import Control.Monad
import qualified Data.ByteString.Char8 as BS
import Data.Char
import Data.List

import qualified Data.IntMap as IM
import qualified Data.IntSet as IS
import Data.Maybe

main = do
  [h,w,rs,cs] <- bsGetLnInts
  [n] <- bsGetLnInts
  rcs <- replicateM n bsGetLnInts
  let dat = abc273dp h w n rcs
  [q] <- bsGetLnInts
  foldM_ (\rc _ -> do
    li <- BS.getLine
    let d = BS.index li 0
    let Just (l,_) = BS.readInt $ BS.tail $ BS.tail li
    let rc1@(r1,c1) = abc273d dat rc d l
    putStrLn $ unwords [show r1, show c1]
    return rc1
    ) (rs,cs) [1..q]

bsGetLnInts :: IO [Int]
bsGetLnInts = BS.getLine >>= return . unfoldr (BS.readInt . BS.dropWhile isSpace)

type M = IM.IntMap IS.IntSet
type POS = (Int, Int)

abc273dp :: Int -> Int -> Int -> [[Int]] -> (Int, Int, M, M)
abc273dp h w n rcs = (h, w, rm, cm)
  where
    rm = sub w [(r, [c]) | (r:c:_) <- rcs]
    cm = sub h [(c, [r]) | (r:c:_) <- rcs]
    sub ub xyss = fmap (mkset ub) $ IM.fromListWith (++) xyss
    mkset ub ys = IS.fromList $ 0 : (succ ub) : ys

abc273d :: (Int, Int, M, M) -> POS -> Char -> Int -> POS
abc273d (h, w, rm, cm) (r, c) d l =
  case d of
    'L' -> (r, sub decrs rs c)
    'R' -> (r, sub incrs rs c)
    'U' -> (sub decrs cs r, c)
    'D' -> (sub incrs cs r, c)
  where
    rds = IS.fromAscList [0, succ w]  -- row default set
    cds = IS.fromAscList [0, succ h]  -- column default set
    rs = IM.findWithDefault rds r rm
    cs = IM.findWithDefault cds c cm
    decrs = (IS.lookupLT, succ, (-), max)
    incrs = (IS.lookupGT, pred, (+), min)
    sub (lkup, sp, op, minmax) s x = minmax (sp $ fromJust $ lkup x s) (op x l)

Submission Info

Submission Time
Task D - LRUD Instructions
User joetheshootingst
Language Haskell (GHC 8.8.3)
Score 400
Code Size 1689 Byte
Status AC
Exec Time 1031 ms
Memory 199424 KB

Compile Error

Loaded package environment from /home/contestant/.ghc/x86_64-linux-8.8.3/environments/default

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 2
AC × 29
Set Name Test Cases
Sample example0.txt, example1.txt
All 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, example0.txt, example1.txt
Case Name Status Exec Time Memory
000.txt AC 102 ms 4656 KB
001.txt AC 163 ms 4988 KB
002.txt AC 142 ms 4748 KB
003.txt AC 574 ms 141048 KB
004.txt AC 884 ms 174196 KB
005.txt AC 570 ms 134856 KB
006.txt AC 865 ms 174136 KB
007.txt AC 180 ms 5688 KB
008.txt AC 1031 ms 199424 KB
009.txt AC 177 ms 45020 KB
010.txt AC 420 ms 86352 KB
011.txt AC 593 ms 131588 KB
012.txt AC 760 ms 148048 KB
013.txt AC 938 ms 171104 KB
014.txt AC 943 ms 173040 KB
015.txt AC 924 ms 174144 KB
016.txt AC 947 ms 172048 KB
017.txt AC 447 ms 126356 KB
018.txt AC 509 ms 125464 KB
019.txt AC 509 ms 125420 KB
020.txt AC 559 ms 125272 KB
021.txt AC 592 ms 124392 KB
022.txt AC 597 ms 124244 KB
023.txt AC 590 ms 124308 KB
024.txt AC 608 ms 123440 KB
025.txt AC 619 ms 123428 KB
026.txt AC 620 ms 123424 KB
example0.txt AC 7 ms 3684 KB
example1.txt AC 2 ms 3600 KB


2025-04-22 (Tue)
22:00:27 +00:00