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