diff options
Diffstat (limited to '2024/1.hs')
-rw-r--r-- | 2024/1.hs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/2024/1.hs b/2024/1.hs new file mode 100644 index 0000000..c3871d6 --- /dev/null +++ b/2024/1.hs @@ -0,0 +1,13 @@ +{-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-} +import Data.Bifunctor (bimap) +import Data.List (sort) +import qualified Data.Map.Strict as Map + +main :: IO () +main = do + (a, b) <- bimap sort sort . unzip + . map (\l -> let [x,y] = words l in (read @Int x, read y)) + . lines <$> getContents + print $ sum (zipWith (\x y -> abs (x - y)) a b) + let hist = Map.fromListWith (+) (map (,1 :: Int) b) + print $ sum [n * Map.findWithDefault 0 n hist | n <- a] |