aboutsummaryrefslogtreecommitdiff
path: root/0008/main.hs
blob: 35a456ff89dc61b1e0b8275b0c8532fc94d9cebc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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 isDigit contents in
        putStrLn $ show max13
    where isDigit x = x <= '9' && x >= '0'