X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=advent11%2FMain.hs;fp=advent11%2FMain.hs;h=2a94423835cf52ea4f13e91684513259c38ae9e3;hb=1e96a9775f10096425b99308c3e5b9d21d2efbea;hp=cfdbe0ea871162939205b963a3eb5f9c018ea9d2;hpb=d2427d370c43ca58800f203a6b7dcbd5a815c5a8;p=advent-of-code-23.git diff --git a/advent11/Main.hs b/advent11/Main.hs index cfdbe0e..2a94423 100644 --- a/advent11/Main.hs +++ b/advent11/Main.hs @@ -22,15 +22,13 @@ main = print $ part2 galaxies part1, part2 :: Galaxies -> Int -part1 galaxies = allDistances $ expandGalaxies galaxies 2 - -part2 galaxies = allDistances $ expandGalaxies galaxies (10^6) +part1 = allDistances . expandGalaxies 2 +part2 = allDistances . expandGalaxies (10^6) allDistances :: Galaxies -> Int allDistances gs = case S.minView gs of Nothing -> 0 - Just (g, gs') -> (S.foldl' ( - addDist g) 0 gs) + allDistances gs' + Just (g, gs') -> (S.foldl' (addDist g) 0 gs) + allDistances gs' where addDist g1 acc g2 = acc + distance g1 g2 distance :: Position -> Position -> Int @@ -38,8 +36,8 @@ distance g1 g2 = abs dr + abs dc where (V2 dr dc) = g1 ^-^ g2 -expandGalaxies :: Galaxies -> Int -> Galaxies -expandGalaxies galaxies scale = galaxies'' +expandGalaxies :: Int -> Galaxies -> Galaxies +expandGalaxies scale galaxies = galaxies'' where er = emptyRows galaxies galaxies' = expandRows galaxies er scale ec = emptyCols galaxies'