summaryrefslogtreecommitdiff
path: root/2024/1.hs
diff options
context:
space:
mode:
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]