 (comment
 
   (profile :info :whatever
-           (solve (nth input-large 5)))
-
-  (solve-file "input-small-output.txt"
-              input-small)
-  (solve-file "input-large-output.txt"
-              (nth input-large 3)))
+           (solve-file "input-small-output.txt"
+                       input-small))
+
+  (profile :info :whatever
+           (solve-file "input-large-output.txt"
+                       input-large)))

    :wall "⎕"
    :empty " "))

(defn non-unknown-rows [{:keys [maze] :as labyrinth}]
  (p :non-unknown-rows
     (let [new-maze (vec (filter :row-has-wall maze))]
       (assoc labyrinth :maze new-maze))))

(defn get-cells-with-coordinates [maze]
  (for [[row-index row] (map vector (range) maze)

          (can-walk-west row column maze)  (bit-or 2r0100)
          (can-walk-east row column maze)  (bit-or 2r1000)))

(defnp convert-labyrinth-to-solution-format [{:keys [maze] :as labyrinth}]
  (let [row-cells (vec (map :cells maze))
        rooms (get-rooms maze)]
    (map
     (fn [row-of-rooms]
       (->> row-of-rooms
            (map (partial encode-room row-cells))
            (map (partial format "%x"))
            s/join))
     rooms)))

(defn solve [line]
  (-> (parse-input line)
