advent-of-code/2023/day06/Main.hs

19 lines
538 B
Haskell
Raw Normal View History

2024-05-17 15:41:55 +02:00
import Data.List.Split (splitOn)
winsFromTimeDist :: (Int, Int) -> Int
winsFromTimeDist (time, dist) = length $ filter (> dist) $ zipWith (*) [0..time] (reverse [0..time])
main :: IO ()
main = do
lines <- lines <$> getContents
-- let values = map (map (\y -> read y :: Int) . splitOn [' '] . drop 9) lines
let values = map (map read . filter (/= "") . splitOn [' '] . drop 9) lines :: [[Int]]
let time_dist = zip (values!!0) (values!!1)
let wins = map winsFromTimeDist time_dist
let result = product wins
print result