Advertisement
Guest User

Untitled

a guest
Feb 12th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.60 KB | None | 0 0
  1. module Main where
  2.  
  3. import Data.Vector.Unboxed (generate,(!),Vector(..),ifilter)
  4. import qualified Data.Vector.Unboxed as V
  5.  
  6. import qualified Data.List as L
  7.  
  8. import Data.Sequence
  9.  
  10. import Data.Vector.Strategies
  11.  
  12. import Control.Monad as C
  13.  
  14. main :: IO ()
  15. main = do
  16.  
  17. s <- forM [0..199] $ \e -> do
  18. let delta = e `mod` 2
  19.  
  20. let x = V.enumFromStepN delta 1 1000000
  21. let y = V.unfoldr ( \i -> if i < (1000000-1) then ( Just (x!i + x!(i+1), i+1) ) else Nothing) 0
  22. let z = V.sum (ifilter (\i _ -> i `mod` 100 == 0) y)
  23. return z
  24.  
  25. print $ (sum s) `div` (200 :: Int)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement