aoc

advent of code
git clone git://source.orangerot.dev:/aoc.git
Log | Files | Refs

Main.hs (538B)


      1 import Data.List.Split (splitOn)
      2 
      3 winsFromTimeDist :: (Int, Int) -> Int
      4 winsFromTimeDist (time, dist) = length $ filter (> dist) $ zipWith (*) [0..time] (reverse [0..time])
      5 
      6 main :: IO ()
      7 main = do
      8   lines <- lines <$> getContents
      9 
     10   -- let values = map (map (\y -> read y :: Int) . splitOn [' '] . drop 9) lines
     11   let values = map (map read . filter (/= "") . splitOn [' '] . drop 9) lines :: [[Int]]
     12   let time_dist = zip (values!!0) (values!!1)
     13   let wins = map winsFromTimeDist time_dist
     14   let result = product wins
     15 
     16   print result
     17 
     18