summaryrefslogtreecommitdiff
path: root/2023/day06/Main.hs
blob: c7976b001f01a4bb7e06a8f49008dbfb369475fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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