Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import qualified Data.Map as M
- calc visits [a,b,m,r] iter = case M.lookup r' visits of
- Just x -> iter' - x
- Nothing -> calc visits' [a,b,m,r'] (iter')
- where
- iter' = iter + 1
- r' = (a * r + b) `rem` m
- visits' = M.insert r' iter' visits
- main = do
- line <- getLine
- let list = map (\x -> read x :: Int) $ words line
- print $ calc M.empty list 0
Add Comment
Please, Sign In to add comment