Guest User

Untitled

a guest
Jul 22nd, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import qualified Data.Map as M
  2.  
  3. calc visits [a,b,m,r] iter = case M.lookup r' visits of
  4.    Just x -> iter' - x
  5.     Nothing -> calc visits' [a,b,m,r'] (iter')
  6.    where
  7.        iter' = iter + 1
  8.         r' = (a * r + b) `rem` m
  9.        visits' = M.insert r' iter' visits
  10.  
  11.  
  12. main = do
  13.     line <- getLine
  14.     let list = map (\x -> read x :: Int) $ words line
  15.     print $ calc M.empty list 0
Add Comment
Please, Sign In to add comment