2017-12-12 06:43:01 +00:00
|
|
|
{-# LANGUAGE TupleSections #-}
|
|
|
|
|
|
|
|
import Data.List (find)
|
|
|
|
import Data.Maybe (catMaybes)
|
2017-12-02 18:43:59 +00:00
|
|
|
|
|
|
|
divline :: [Int] -> Int
|
|
|
|
divline ns =
|
2017-12-12 06:43:01 +00:00
|
|
|
uncurry div . head . catMaybes . map (\x -> Just (x,) <*> find (greaterAndDivisible x) ns) $ ns
|
|
|
|
where greaterAndDivisible n m = n > m && n `mod` m == 0
|
2017-12-02 18:43:59 +00:00
|
|
|
|
|
|
|
main :: IO ()
|
|
|
|
main = do
|
2017-12-12 17:29:11 +00:00
|
|
|
grid <- fmap (map (map read . words) . lines) $ readFile "2.txt"
|
|
|
|
print $ sum . map (\line -> maximum line - minimum line) $ grid
|
|
|
|
print $ sum . map divline $ grid
|