aboutsummaryrefslogtreecommitdiff
path: root/execs/Day17.hs
diff options
context:
space:
mode:
Diffstat (limited to 'execs/Day17.hs')
-rw-r--r--execs/Day17.hs10
1 files changed, 5 insertions, 5 deletions
diff --git a/execs/Day17.hs b/execs/Day17.hs
index bb632e0..ccedffe 100644
--- a/execs/Day17.hs
+++ b/execs/Day17.hs
@@ -2,7 +2,7 @@ module Main where
2 2
3import Control.Monad 3import Control.Monad
4import Data.Map (Map) 4import Data.Map (Map)
5import qualified Data.Map as Map 5import qualified Data.Map as M
6import Data.Maybe 6import Data.Maybe
7import Utils 7import Utils
8 8
@@ -12,7 +12,7 @@ toBool '#' = True
12toBool '.' = False 12toBool '.' = False
13 13
14gridMap :: String -> Map Pos Bool 14gridMap :: String -> Map Pos Bool
15gridMap s = Map.fromList 15gridMap s = M.fromList
16 [((x,y,0,0), toBool a) 16 [((x,y,0,0), toBool a)
17 | (y, row) <- zip [0..] rows 17 | (y, row) <- zip [0..] rows
18 , (x, a) <- zip [0..] row 18 , (x, a) <- zip [0..] row
@@ -35,13 +35,13 @@ convert False 3 = True
35convert _ _ = False 35convert _ _ = False
36 36
37doStep :: Map Pos Bool -> Map Pos Bool 37doStep :: Map Pos Bool -> Map Pos Bool
38doStep m = Map.mapWithKey fn $ m <> Map.fromList [(p, False) | p <- concatMap around (Map.keys m)] 38doStep m = M.mapWithKey fn $ m <> M.fromList [(p, False) | p <- concatMap around (M.keys m)]
39 where fn pos v = convert v n 39 where fn pos v = convert v n
40 where n = howMany id $ map (fromMaybe False . flip Map.lookup m) $ around pos 40 where n = howMany id $ map (fromMaybe False . flip M.lookup m) $ around pos
41 41
42main :: IO () 42main :: IO ()
43main = do 43main = do
44 n <- readFile "input/17" 44 n <- readFile "input/17"
45 let grid = gridMap n 45 let grid = gridMap n
46 print $ Map.size $ Map.filter id (iterate doStep grid !! 6) 46 print $ M.size $ M.filter id (iterate doStep grid !! 6)
47 47