diff options
author | Tom Smeding <tom@tomsmeding.com> | 2024-12-02 00:01:56 +0100 |
---|---|---|
committer | Tom Smeding <tom@tomsmeding.com> | 2024-12-02 00:02:22 +0100 |
commit | ec6e98f6aed5684131a0fd42ed1d47864eb821aa (patch) | |
tree | 6e96c6e3aee0257f17b89c1a7a78dd1ead6cc09a /2024/1.hs | |
parent | c0ed02a358e658b12287437a446513f9fab2cd5d (diff) |
2024
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] |