- import Data.Char (digitToInt)
- import Data.Maybe (catMaybes)
- findMax13 numbers =
- foldl1 max $ map (\i -> subArrayProduct i 13) [0..((length numbers) - 13)]
- where
- subArrayProduct start length =
- product $ take length (drop start numbers)
- main = do
- contents <- readFile "input"
- let max13 = findMax13 $ map digitToInt $ filter (\c -> c >= '0' && c <= '9') contents in
- putStrLn $ show max13
|