summaryrefslogtreecommitdiff
path: root/2024/1.hs
diff options
context:
space:
mode:
authorTom Smeding <tom@tomsmeding.com>2024-12-02 00:01:56 +0100
committerTom Smeding <tom@tomsmeding.com>2024-12-02 00:02:22 +0100
commitec6e98f6aed5684131a0fd42ed1d47864eb821aa (patch)
tree6e96c6e3aee0257f17b89c1a7a78dd1ead6cc09a /2024/1.hs
parentc0ed02a358e658b12287437a446513f9fab2cd5d (diff)
2024
Diffstat (limited to '2024/1.hs')
-rw-r--r--2024/1.hs13
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]