full aoc8
This commit is contained in:
parent
7983a35b24
commit
78baf9a52d
7 changed files with 1269 additions and 0 deletions
97
src/aoc11.lisp
Normal file
97
src/aoc11.lisp
Normal file
|
|
@ -0,0 +1,97 @@
|
||||||
|
|
||||||
|
(defun input-parsing (path)
|
||||||
|
(with-open-file (file path)
|
||||||
|
(let( (galaxy-columns '()) (data-line nil) (galaxies (make-array 0 :adjustable t)) (current-line 0) )
|
||||||
|
;;Prep work
|
||||||
|
;;(defparameter keys (make-array 0 :adjustable t))
|
||||||
|
;;(defparameter parsed '())
|
||||||
|
;;(setf direction-line (read-line file nil))
|
||||||
|
;;(setf direction-line (subseq temp-first-line (+ 2 (position #\: temp-first-line :test #'equalp)) (length temp-first-line) ))
|
||||||
|
;;(setf yet-to-translate (seed-list manipulated-line))
|
||||||
|
;;(print yet-to-translate)
|
||||||
|
;;(print translated)
|
||||||
|
;;(print "----")
|
||||||
|
;(read-line file nil)
|
||||||
|
;; (let( (size (+ 1 (length keys))) )
|
||||||
|
;; (adjust-array keys size) (decf size)
|
||||||
|
;; (setf (aref keys size) key) ))
|
||||||
|
|
||||||
|
(loop for line = (read-line file nil)
|
||||||
|
with key = ""
|
||||||
|
with left-value = ""
|
||||||
|
with right-value = ""
|
||||||
|
while line
|
||||||
|
do
|
||||||
|
(when(zerop current-line)
|
||||||
|
(dotimes (i (length line))
|
||||||
|
(push nil galaxy-columns)))
|
||||||
|
(loop for c across line
|
||||||
|
with char-position = 0
|
||||||
|
do
|
||||||
|
(when (char= c #\#)
|
||||||
|
(let( (size (+ 1 (length galaxies))) )
|
||||||
|
(adjust-array galaxies size) (decf size)
|
||||||
|
(setf (aref galaxies size) (cons current-line char-position)) )
|
||||||
|
(format T "~% ~d ~A" char-position galaxy-columns)
|
||||||
|
(setf (nth char-position galaxy-columns) t)
|
||||||
|
;;(setf (nth i parsed) nil)
|
||||||
|
(setf data-line t))
|
||||||
|
(incf char-position)
|
||||||
|
finally
|
||||||
|
(if (not data-line)
|
||||||
|
(incf current-line))
|
||||||
|
(incf current-line)
|
||||||
|
(setf data-line nil))
|
||||||
|
)
|
||||||
|
galaxies)))
|
||||||
|
|
||||||
|
(print (input-parsing "aoc11test.txt"))
|
||||||
|
;;(print "Hola")
|
||||||
|
;;(print (aref keys 0))
|
||||||
|
|
||||||
|
;; (incf (nth 0 steps-per-key))
|
||||||
|
;; (if(char= c #\L)
|
||||||
|
;; (setf (aref keys 0) (car(gethash (aref keys 0) route-hash)))
|
||||||
|
;; (setf (aref keys 0) (cdr(gethash (aref keys 0) route-hash))))
|
||||||
|
;; ;;(print (aref keys 0))
|
||||||
|
|
||||||
|
;; (when(char= (char (aref keys 0) 2) #\Z)
|
||||||
|
;; (format T "~%~a ~d" "Ayo on key 0 found at: " (nth 0 steps-per-key))
|
||||||
|
;; (dotimes (i (length keys))
|
||||||
|
;; ;;(print (+ i 1))
|
||||||
|
;; ;;(print (length keys))
|
||||||
|
;; ;;(when (< (+ i 1) (length keys))
|
||||||
|
;; (when (> i 0)
|
||||||
|
|
||||||
|
;; ;;WTF
|
||||||
|
;; (sb-thread:make-thread (lambda () (hashmap-parse route-hash direction-line (length direction-line) (- i 1) (nth 1 steps-per-key) (nth 0 steps-per-key)) ) )
|
||||||
|
;; ;;(format T "~%~d" i)
|
||||||
|
;; )
|
||||||
|
;; )
|
||||||
|
;; (loop while (not (every #'null parsed))
|
||||||
|
;; do
|
||||||
|
;; ;;(print parsed)
|
||||||
|
;; (sleep 1))
|
||||||
|
;; (dotimes (i (length parsed))
|
||||||
|
;; (if (= i 0)
|
||||||
|
;; (setf (nth i parsed) nil)
|
||||||
|
;; (setf (nth i parsed) t)))
|
||||||
|
|
||||||
|
;; (loop with i = 1
|
||||||
|
;; with failure = nil
|
||||||
|
;; while (and(< i (length keys)) (not failure))
|
||||||
|
;; do
|
||||||
|
;; (setf (nth i steps-per-key) (nth 0 steps-per-key))
|
||||||
|
;; (if(char= (char (aref keys i) 2) #\Z)
|
||||||
|
;; (progn
|
||||||
|
;; (incf i) )
|
||||||
|
;; (setf failure t))
|
||||||
|
;; finally
|
||||||
|
;; (if(= i (length keys))
|
||||||
|
;; (setf goal-to-be-reached t))
|
||||||
|
;; ))
|
||||||
|
;; )
|
||||||
|
;; (print (nth 0 steps-per-key))
|
||||||
|
;; (setf keys (make-array 0 :adjustable t))
|
||||||
|
;; (setf parsed '())))
|
||||||
|
;; )
|
||||||
140
src/aoc11input.txt
Normal file
140
src/aoc11input.txt
Normal file
|
|
@ -0,0 +1,140 @@
|
||||||
|
.....................#......#...................#...............#........................................#..................................
|
||||||
|
...........................................................#.............................................................#..................
|
||||||
|
.....................................................................#.........#......#...........#.............#...........................
|
||||||
|
.....................................................#.......................................#..............................................
|
||||||
|
......#.................................#..........................................................................................#........
|
||||||
|
....................#.........#.............................................................................#...............................
|
||||||
|
..#.........................................................#.............................................................................#.
|
||||||
|
........................................................................................#...........#..................#....................
|
||||||
|
........#....................................#........................#.........................................................#...........
|
||||||
|
..............................................................................#................................#............................
|
||||||
|
..................................................#............#............................................................................
|
||||||
|
.........................#......#........#................................................#..........................................#......
|
||||||
|
......#..............................................................................#...............#......................................
|
||||||
|
...................................................................#........................................................................
|
||||||
|
....................#...........................#............................................................#..............#.....#.........
|
||||||
|
..................................#....................#.........................................#......#..............................#....
|
||||||
|
.#..........................................................................................................................................
|
||||||
|
........#.....#........................#...........#.............#.....................#....................................................
|
||||||
|
..........................#.................................#.....................#.........................................................
|
||||||
|
.............................................................................................................................#.............#
|
||||||
|
...................................#......................................................#....................#............................
|
||||||
|
.....................#...................#............#..................#.............................................#...........#........
|
||||||
|
..............................................................................................#.............................................
|
||||||
|
....#..........#...............#..........................................................................#.................................
|
||||||
|
.............................................#..............................................................................................
|
||||||
|
...................................................................#..............#.................................#.......................
|
||||||
|
..................#........................................................#................................................................
|
||||||
|
..#.................................#...................#..............................#.........................................#.......#..
|
||||||
|
...............................................................#...............#.....................#..........#.........#.................
|
||||||
|
.........#......................#.............................................................#.............................................
|
||||||
|
..............#...............................#.............................................................................................
|
||||||
|
........................................#.................................#............................................................#....
|
||||||
|
..............................................................................................................#......#......#...............
|
||||||
|
.........................#..........#.............................................#........#................................................
|
||||||
|
....................................................................#.....................................#.................................
|
||||||
|
....#...............#........#...............................#........................#........................................#............
|
||||||
|
........................................................#...................................................................................
|
||||||
|
............................................#...........................#......................#.....#......................................
|
||||||
|
.........................................................................................#.............................................#....
|
||||||
|
...........#....................#..................................#.................................................#...........#..........
|
||||||
|
.#..........................................................................................................................................
|
||||||
|
................#........................#..........#.......................................................................................
|
||||||
|
........................#........................................................................................#..........................
|
||||||
|
........................................................................#.........#...................#...................#.................
|
||||||
|
........................................................#......................................................................#............
|
||||||
|
.....#.....................................................................................#................................................
|
||||||
|
...............#...................................#.................#..............................................................#.......
|
||||||
|
.........#..................#..................................#..................................................#.........................
|
||||||
|
......................................#.......#....................................#......................................................#.
|
||||||
|
..........................................................................................................#......................#..........
|
||||||
|
...#..............#.......................#.....................................................#...........................................
|
||||||
|
................................#...............................................#..........#................................................
|
||||||
|
..........................#......................#......................#...................................................................
|
||||||
|
..................................................................#................................#........................................
|
||||||
|
......................................................#.................................#.........................#...................#.....
|
||||||
|
..............#..........................#..................................................................................#...............
|
||||||
|
......#......................#.................................................................#...........#................................
|
||||||
|
.............................................................................#..............................................................
|
||||||
|
.......................#..........................#......................................................................#..........#.......
|
||||||
|
.#.................................#................................................................#....................................#..
|
||||||
|
........#......#................................................#...............................................#...........................
|
||||||
|
..........................................................................#.....#.........................#...........#.....#...............
|
||||||
|
............................#..............#..........#....................................#................................................
|
||||||
|
............................................................................................................................................
|
||||||
|
............#..........#....................................................................................................................
|
||||||
|
............................................................#.......................#..............#........................................
|
||||||
|
.....................................#...............................#...................................#..................................
|
||||||
|
.........#.....................................................................#.....................................#...............#.....#
|
||||||
|
#.............#.............................................................................................................................
|
||||||
|
......................................................#....................................#....................................#...........
|
||||||
|
...................................................................#............................................#...........................
|
||||||
|
............................................................................................................................................
|
||||||
|
....................#............................#................................................#......................................#..
|
||||||
|
.............................#...................................................#..........................................................
|
||||||
|
.........................................................................#...............#.................#................................
|
||||||
|
.............#.........#.........#.....#......................#............................................................#................
|
||||||
|
............................................................................................................................................
|
||||||
|
.............................................#..........#.....................#..................................#..........................
|
||||||
|
............................................................................................................................................
|
||||||
|
...................................#.............#................#.....#.....................................................#.............
|
||||||
|
....#.....................#..................................#..............................................................................
|
||||||
|
............................................................................................................................................
|
||||||
|
#.....................................#...................................................................................#.................
|
||||||
|
...............................................#......................#.....#...................................#...........................
|
||||||
|
.........#...................#.....................................................#.................#......................................
|
||||||
|
.......................#...............................#........................................#..............................#............
|
||||||
|
...#.....................................#..................................................................#...............................
|
||||||
|
...................................................#......................................#...........................................#.....
|
||||||
|
.................#..........................................................................................................................
|
||||||
|
...................................................................................................................#......#.................
|
||||||
|
.................................#..............#.....#......................#.................#.........#..................................
|
||||||
|
#....................................................................#........................................#...........................#.
|
||||||
|
............................................................................................................................................
|
||||||
|
.........................#..................................................................................................................
|
||||||
|
...............................#.......................................................................................#....................
|
||||||
|
..........#...................................#..................#.....................#....................#...............................
|
||||||
|
............................................................................#.....#.........................................................
|
||||||
|
....#............#............................................................................#.......#..........#..........................
|
||||||
|
..................................................................................................................................#.........
|
||||||
|
...................................#...........................................#............................................................
|
||||||
|
.............................#..........................#.................................#........#........................................
|
||||||
|
..............#....................................................#........................................#.............#...........#.....
|
||||||
|
...............................................#.............#.......................................................#......................
|
||||||
|
........#..............................................................#....................................................................
|
||||||
|
.......................................................................................#........#...........................................
|
||||||
|
......................#........#.........................#..................#........................#......................#...............
|
||||||
|
.#.........#.....#..............................................#........................................................................#..
|
||||||
|
.....................................................#......................................................................................
|
||||||
|
.........................................#...........................#..............................................#.......................
|
||||||
|
.............................................................#................................................#................#............
|
||||||
|
......#.......................................#.......................................#...............#.....................................
|
||||||
|
....................#.......#............................#................#...........................................................#.....
|
||||||
|
...........#.....................................................................................................#..........................
|
||||||
|
..........................................................................................#..............#..................................
|
||||||
|
..................................................#..........................................................................#..............
|
||||||
|
...............#............................................#.....................................................................#.........
|
||||||
|
........................#...........................................#............................#..................#.......................
|
||||||
|
................................................................................#..............................#.......................#....
|
||||||
|
......................................#...................................#..............#..............#...................................
|
||||||
|
..#............................................#..............#...........................................................#.................
|
||||||
|
.........#........................#...................#.....................................................................................
|
||||||
|
.............................#..............................................................................................................
|
||||||
|
....................................................................................#.......................................................
|
||||||
|
.........................#.............#............................................................#......#......#.........#......#........
|
||||||
|
...................#...........................................................................#...........................................#
|
||||||
|
.......#...............................................#.....#........#..........#..........................................................
|
||||||
|
..............#....................#........................................................................................................
|
||||||
|
........................................................................................................#.................#...........#.....
|
||||||
|
..#...............................................................#.........#.......#.......................................................
|
||||||
|
.........#......................#..........................#.....................................#............#.............................
|
||||||
|
...................#.................................#.................................................................#....................
|
||||||
|
....................................#.......................................................................................................
|
||||||
|
...........................#......................................................................................................#.........
|
||||||
|
............................................#.................#............#...................#.......#...................#................
|
||||||
|
............#.....................................#.........................................................................................
|
||||||
|
...........................................................................................................#......#.........................
|
||||||
|
.....................................#..............................................#......#................................................
|
||||||
|
.........................................................................#..............................................#...................
|
||||||
|
#....................#........#...................................................................#.....................................#...
|
||||||
|
.....#........................................#.........#........................#..........................................................
|
||||||
10
src/aoc11test.txt
Normal file
10
src/aoc11test.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
...#......
|
||||||
|
.......#..
|
||||||
|
#.........
|
||||||
|
..........
|
||||||
|
......#...
|
||||||
|
.#........
|
||||||
|
.........#
|
||||||
|
..........
|
||||||
|
.......#..
|
||||||
|
#...#.....
|
||||||
175
src/aoc8-2.lisp
Normal file
175
src/aoc8-2.lisp
Normal file
|
|
@ -0,0 +1,175 @@
|
||||||
|
#!/bin/sbcl --script
|
||||||
|
|
||||||
|
(defparameter keys (make-array 0 :adjustable t))
|
||||||
|
(defparameter parsed '())
|
||||||
|
(defparameter steps-per-key '())
|
||||||
|
(print (sb-thread:list-all-threads))
|
||||||
|
|
||||||
|
(with-open-file (file "aoc8input.txt")
|
||||||
|
(let( (goal-to-be-reached nil) (direction-line "") (route-hash (make-hash-table :test #'equalp :size 800)) )
|
||||||
|
;;Prep work
|
||||||
|
(defparameter keys (make-array 0 :adjustable t))
|
||||||
|
(defparameter parsed '())
|
||||||
|
(setf direction-line (read-line file nil))
|
||||||
|
;;(setf direction-line (subseq temp-first-line (+ 2 (position #\: temp-first-line :test #'equalp)) (length temp-first-line) ))
|
||||||
|
;;(setf yet-to-translate (seed-list manipulated-line))
|
||||||
|
;;(print yet-to-translate)
|
||||||
|
;;(print translated)
|
||||||
|
(print "----")
|
||||||
|
(read-line file nil)
|
||||||
|
|
||||||
|
(loop for line = (read-line file nil)
|
||||||
|
with key = ""
|
||||||
|
with left-value = ""
|
||||||
|
with right-value = ""
|
||||||
|
while line
|
||||||
|
do
|
||||||
|
(setf key (subseq line 0 (- (position #\= line :test #'equalp) 1) ))
|
||||||
|
(setf left-value (subseq line (+ 1 (position #\( line :test #'equalp)) (position #\, line :test #'equalp) ))
|
||||||
|
(setf right-value (subseq line (+ 2 (position #\, line :test #'equalp)) (position #\) line :test #'equalp) ))
|
||||||
|
(setf (gethash key route-hash) (cons left-value right-value))
|
||||||
|
(when(char= #\A (char key 2))
|
||||||
|
(let( (size (+ 1 (length keys))) )
|
||||||
|
(adjust-array keys size) (decf size)
|
||||||
|
(setf (aref keys size) key) ))
|
||||||
|
)
|
||||||
|
|
||||||
|
;;(print keys)
|
||||||
|
;;(print parsed)
|
||||||
|
(dotimes (i (length keys))
|
||||||
|
(push 0 steps-per-key)
|
||||||
|
(push t parsed))
|
||||||
|
(setf (nth 0 parsed) nil)
|
||||||
|
;;(print steps-per-key)
|
||||||
|
;;(print parsed)))
|
||||||
|
|
||||||
|
(loop while (not goal-to-be-reached)
|
||||||
|
do
|
||||||
|
(loop for c across direction-line
|
||||||
|
while (not goal-to-be-reached)
|
||||||
|
do
|
||||||
|
;;(print "Hola")
|
||||||
|
;;(print (aref keys 0))
|
||||||
|
(incf (nth 0 steps-per-key))
|
||||||
|
(if(char= c #\L)
|
||||||
|
(setf (aref keys 0) (car(gethash (aref keys 0) route-hash)))
|
||||||
|
(setf (aref keys 0) (cdr(gethash (aref keys 0) route-hash))))
|
||||||
|
;;(print (aref keys 0))
|
||||||
|
|
||||||
|
(when(char= (char (aref keys 0) 2) #\Z)
|
||||||
|
;;(format T "~%~a ~d" "Ayo on key 0 found at: " (nth 0 steps-per-key))
|
||||||
|
(dotimes (i (length keys))
|
||||||
|
;;(print (+ i 1))
|
||||||
|
;;(print (length keys))
|
||||||
|
;;(when (< (+ i 1) (length keys))
|
||||||
|
(when (> i 0)
|
||||||
|
;;WTF
|
||||||
|
(sb-thread:make-thread (lambda (x hashmap dir strlen steps) (hashmap-parse hashmap dir strlen x steps) ) :arguments (list i route-hash direction-line (length direction-line) (nth i steps-per-key) ) )
|
||||||
|
;;(format T "~%~d" i)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
;;(print parsed)
|
||||||
|
(loop while (not (every #'null parsed))
|
||||||
|
do
|
||||||
|
(print parsed)
|
||||||
|
(sleep 1))
|
||||||
|
(print steps-per-key)
|
||||||
|
(setf goal-to-be-reached t)
|
||||||
|
(print (apply #'lcm (append steps-per-key (list (length direction-line)))))))))
|
||||||
|
(print "awaa")
|
||||||
|
;;(print (nth 0 steps-per-key))
|
||||||
|
(setf keys (make-array 0 :adjustable t))
|
||||||
|
(setf parsed '()))
|
||||||
|
|
||||||
|
(defun starting-char (strlen steps)
|
||||||
|
(loop while (>= steps strlen)
|
||||||
|
do
|
||||||
|
(setf steps (- steps strlen)))
|
||||||
|
steps)
|
||||||
|
|
||||||
|
(defun hashmap-parse (hashmap direction-string strlen key-position steps)
|
||||||
|
(let( (current-char (starting-char strlen steps) ) (z-found nil) )
|
||||||
|
;;(print steps)
|
||||||
|
(loop while (not z-found)
|
||||||
|
do
|
||||||
|
(incf steps)
|
||||||
|
;;(format T "~%~c" direction-char)
|
||||||
|
;;(print current-char)
|
||||||
|
(if(char= (char direction-string current-char) #\L)
|
||||||
|
(setf (aref keys key-position) (car(gethash (aref keys key-position) hashmap)))
|
||||||
|
(setf (aref keys key-position) (cdr(gethash (aref keys key-position) hashmap))))
|
||||||
|
|
||||||
|
(incf current-char)
|
||||||
|
(when(= current-char strlen)
|
||||||
|
(setf current-char 0))
|
||||||
|
(when(char= (char (aref keys key-position) 2) #\Z)
|
||||||
|
(setf z-found t)
|
||||||
|
(setf (nth key-position parsed) nil)
|
||||||
|
(setf (nth key-position steps-per-key) steps))
|
||||||
|
)
|
||||||
|
))
|
||||||
|
|
||||||
|
;; (defvar *directions*)
|
||||||
|
;; (defvar *ndirections*)
|
||||||
|
;; (defvar *map* (make-hash-table :test #'equal))
|
||||||
|
|
||||||
|
;; ;;(setf *print-circle* t)
|
||||||
|
;; (defun parse-file (path)
|
||||||
|
;; (with-open-file (file path)
|
||||||
|
;; (loop
|
||||||
|
;; :with first-line = (read-line file nil)
|
||||||
|
;; :with second-line = (read-line file nil)
|
||||||
|
;; :initially
|
||||||
|
;; ;; Parse first line
|
||||||
|
;; (setf *directions* (coerce first-line 'list))
|
||||||
|
;; ;; Turn directions into a cyclical list
|
||||||
|
;; (setf *ndirections* (length *directions*))
|
||||||
|
;; (setf (cdr (last *directions*)) *directions*)
|
||||||
|
;; :for line = (read-line file nil)
|
||||||
|
;; :while line
|
||||||
|
;; :for key = (subseq line 0 3)
|
||||||
|
;; :for left = (subseq line 7 10)
|
||||||
|
;; :for right = (subseq line 12 15)
|
||||||
|
;; :do
|
||||||
|
;; (setf (gethash key *map*) (cons left right)))))
|
||||||
|
|
||||||
|
;; (defun part-1 ()
|
||||||
|
;; (loop :for direction = (car p)
|
||||||
|
;; :for current-node = "AAA" :then (if (char= #\L direction) (car paths) (cdr paths))
|
||||||
|
;; :for p = *directions* :then (cdr p)
|
||||||
|
;; :for paths = (gethash current-node *map*)
|
||||||
|
;; :for n :from 0
|
||||||
|
;; :until (string= current-node "ZZZ")
|
||||||
|
;; ;; :do (format t "Step ~S:~%~tCurrent node: ~S~%~tLast direction: ~S~% Possible paths: ~S~%" n current-node direction paths)
|
||||||
|
;; :finally
|
||||||
|
;; (print n)))
|
||||||
|
|
||||||
|
;; (defun part-2 ()
|
||||||
|
;; (loop :with initial-keys = (loop :for key :being :the :hash-keys :of *map* :if (char= (char key 2) #\A) :collect key)
|
||||||
|
;; :with distance-maps = (loop :for key :in initial-keys :collect (make-hash-table :test #'equal))
|
||||||
|
;; :for key :in initial-keys
|
||||||
|
;; :for distance-map :in distance-maps
|
||||||
|
;; :do
|
||||||
|
;; (setf (gethash key distance-map) 0)
|
||||||
|
;; (explore-map distance-map key 1)
|
||||||
|
;; :finally
|
||||||
|
;; (return (apply #'lcm (append (mapcar #'cdar (mapcar #'distance-to-z distance-maps)) (list *ndirections*))))
|
||||||
|
;; ;;(return distance-maps)
|
||||||
|
;; ))
|
||||||
|
|
||||||
|
;; (defun distance-to-z (distance-map)
|
||||||
|
;; (loop :with z-keys = (loop :for key :being :the :hash-keys :of distance-map :if (char= (char key 2) #\Z) :collect key)
|
||||||
|
;; :for key :in z-keys
|
||||||
|
;; :collect (cons key (gethash key distance-map))))
|
||||||
|
|
||||||
|
;; (defun explore-map (distance-map node distance)
|
||||||
|
;; (let ((options (gethash node *map*)))
|
||||||
|
;; (when (> (gethash (car options) distance-map 9999) distance)
|
||||||
|
;; ;; We found a shorter path
|
||||||
|
;; (setf (gethash (car options) distance-map) distance)
|
||||||
|
;; (explore-map distance-map (car options) (1+ distance)))
|
||||||
|
;; (when (> (gethash (cdr options) distance-map 9999) distance)
|
||||||
|
;; ;; We found a shorter path
|
||||||
|
;; (setf (gethash (cdr options) distance-map) distance)
|
||||||
|
;; (explore-map distance-map (cdr options) (1+ distance)))
|
||||||
|
;; ))
|
||||||
40
src/aoc8.lisp
Normal file
40
src/aoc8.lisp
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
;; #!/bin/sbcl --script
|
||||||
|
(with-open-file (file "aoc8input.txt")
|
||||||
|
(let( (key "AAA") (steps 0) (goal-to-be-reached nil) (direction-line "") (route-hash (make-hash-table :test #'equalp :size 800)) )
|
||||||
|
;;Prep work
|
||||||
|
(setf direction-line (read-line file nil))
|
||||||
|
;;(setf direction-line (subseq temp-first-line (+ 2 (position #\: temp-first-line :test #'equalp)) (length temp-first-line) ))
|
||||||
|
;;(setf yet-to-translate (seed-list manipulated-line))
|
||||||
|
;;(print yet-to-translate)
|
||||||
|
;;(print translated)
|
||||||
|
(print "----")
|
||||||
|
(read-line file nil)
|
||||||
|
|
||||||
|
(loop for line = (read-line file nil)
|
||||||
|
with key = ""
|
||||||
|
with left-value = ""
|
||||||
|
with right-value = ""
|
||||||
|
with cell = nil
|
||||||
|
while line
|
||||||
|
do
|
||||||
|
(setf key (subseq line 0 (- (position #\= line :test #'equalp) 1) ))
|
||||||
|
(setf left-value (subseq line (+ 1 (position #\( line :test #'equalp)) (position #\, line :test #'equalp) ))
|
||||||
|
(setf right-value (subseq line (+ 2 (position #\, line :test #'equalp)) (position #\) line :test #'equalp) ))
|
||||||
|
(setf (gethash key route-hash) (cons left-value right-value))
|
||||||
|
)
|
||||||
|
(loop for key being the hash-keys of route-hash
|
||||||
|
using (hash-value value)
|
||||||
|
do (format t "~%The value associated with the key ~a is ~A" key value))
|
||||||
|
|
||||||
|
(loop while (not goal-to-be-reached)
|
||||||
|
do
|
||||||
|
(loop for c across direction-line
|
||||||
|
while (not goal-to-be-reached)
|
||||||
|
do
|
||||||
|
(print key)
|
||||||
|
(incf steps)
|
||||||
|
(if(char= c #\L)
|
||||||
|
(setf key (car(gethash key route-hash)))
|
||||||
|
(setf key (cdr(gethash key route-hash))))
|
||||||
|
(if (string= key "ZZZ") (setf goal-to-be-reached t)) ))
|
||||||
|
(print steps)))
|
||||||
796
src/aoc8input.txt
Normal file
796
src/aoc8input.txt
Normal file
|
|
@ -0,0 +1,796 @@
|
||||||
|
LRRLRLRRRLLRLRRRLRLLRLRLRRLRLRRLRRLRLRLLRRRLRRLLRRRLRRLRRRLRRLRLRLLRRLRLRRLLRRRLLLRRRLLLRRLRLRRLRLLRRRLRRLRRRLRRLLRRRLRRRLRRRLRLRRLRLRRRLRRRLRRLRLRRLLRRRLRRLLRRLRRLRLRLRRRLRLLRRRLRRLRRRLLRRLLLLLRRRLRRLLLRRRLRRRLRRLRLLLLLRLRRRLRRRLRLRRLLLLRLRRRLLRRRLRRRLRLRLRRLRRLRRLRLRLLLRLRRLRRLRRRLRRRLLRRRR
|
||||||
|
|
||||||
|
RBX = (TMF, KTP)
|
||||||
|
RBP = (MKS, MKS)
|
||||||
|
CGR = (XDR, VDX)
|
||||||
|
KBX = (DGP, JKM)
|
||||||
|
BNJ = (NJC, QRL)
|
||||||
|
BXQ = (DKX, CJQ)
|
||||||
|
NDX = (PHJ, TRQ)
|
||||||
|
KFQ = (KXN, GBQ)
|
||||||
|
LRF = (CTS, MTT)
|
||||||
|
RTN = (VMK, JTK)
|
||||||
|
QKP = (FDS, SFG)
|
||||||
|
BVB = (BHS, VRQ)
|
||||||
|
NBT = (BPJ, DFF)
|
||||||
|
HQM = (QMV, XVG)
|
||||||
|
XMR = (RKH, NJQ)
|
||||||
|
PHC = (XHP, DKM)
|
||||||
|
HTX = (BXK, BQP)
|
||||||
|
TPJ = (TNQ, QDX)
|
||||||
|
RDJ = (KHB, MFG)
|
||||||
|
XTF = (PPR, FHG)
|
||||||
|
DVA = (DBM, MVD)
|
||||||
|
HFP = (CXV, VCD)
|
||||||
|
HPS = (GTD, NBL)
|
||||||
|
LBK = (FVN, LHX)
|
||||||
|
KKS = (FKM, LHN)
|
||||||
|
FJV = (LVN, PLP)
|
||||||
|
MLH = (SFR, RJK)
|
||||||
|
SVQ = (RCS, FFD)
|
||||||
|
PTB = (TMC, QCR)
|
||||||
|
RFL = (RXP, VRL)
|
||||||
|
PTH = (XTS, GFG)
|
||||||
|
QNM = (TJR, MHX)
|
||||||
|
BJT = (PJG, SHG)
|
||||||
|
JJD = (FMJ, QVV)
|
||||||
|
GMX = (CLD, QRM)
|
||||||
|
DGZ = (BSL, BRS)
|
||||||
|
BVM = (SFC, JGD)
|
||||||
|
GNQ = (PLP, LVN)
|
||||||
|
XPG = (VLH, BCM)
|
||||||
|
PND = (RXV, VGM)
|
||||||
|
RNV = (GVL, MTB)
|
||||||
|
JSG = (QVP, XCX)
|
||||||
|
QHP = (KQG, BML)
|
||||||
|
XBK = (NPP, CRN)
|
||||||
|
QRL = (RQH, BGH)
|
||||||
|
HDJ = (VRQ, BHS)
|
||||||
|
XPD = (HSB, LRC)
|
||||||
|
KJK = (XCV, MDG)
|
||||||
|
NJB = (RKL, SHQ)
|
||||||
|
MCQ = (XFT, MRQ)
|
||||||
|
QRC = (XVS, CSN)
|
||||||
|
FCT = (DFF, BPJ)
|
||||||
|
MTF = (PQT, CNQ)
|
||||||
|
RXG = (QVP, XCX)
|
||||||
|
MVZ = (QRC, GHJ)
|
||||||
|
RKL = (QQM, BFT)
|
||||||
|
VRT = (GMJ, BDK)
|
||||||
|
BNS = (HQV, HPS)
|
||||||
|
JSQ = (HTC, PGD)
|
||||||
|
BHB = (VGQ, BTM)
|
||||||
|
NLP = (RKB, XQB)
|
||||||
|
FGF = (CVK, VRT)
|
||||||
|
FPM = (GDS, LTG)
|
||||||
|
BCX = (NDX, GSL)
|
||||||
|
GVL = (VCX, PSP)
|
||||||
|
KRM = (MHK, JCX)
|
||||||
|
GLJ = (XNX, RKP)
|
||||||
|
LBV = (FDC, TPJ)
|
||||||
|
GSP = (KMC, LQR)
|
||||||
|
TFR = (HXJ, MFJ)
|
||||||
|
DLX = (FNK, GLJ)
|
||||||
|
DKX = (XSR, LHP)
|
||||||
|
SVR = (KPX, QTM)
|
||||||
|
JMT = (GXV, RTX)
|
||||||
|
XSX = (HHD, HHD)
|
||||||
|
RJF = (BRH, HGP)
|
||||||
|
BDK = (TGX, HKP)
|
||||||
|
TFF = (DSX, DSX)
|
||||||
|
TJR = (BKB, LCB)
|
||||||
|
BDQ = (CLD, QRM)
|
||||||
|
NTC = (BQL, BQL)
|
||||||
|
CVS = (RQC, FFV)
|
||||||
|
BML = (VNT, JRH)
|
||||||
|
CBK = (TGB, RTN)
|
||||||
|
HQV = (GTD, NBL)
|
||||||
|
PDT = (SRQ, MLD)
|
||||||
|
RXV = (KJK, FCD)
|
||||||
|
XTS = (SCG, KQJ)
|
||||||
|
PXG = (LKG, MTQ)
|
||||||
|
PCX = (FKJ, FCV)
|
||||||
|
HKR = (LMK, BJR)
|
||||||
|
CKK = (XSX, XSX)
|
||||||
|
TNP = (TDH, JPR)
|
||||||
|
PCH = (RBP, PQH)
|
||||||
|
KHB = (RQR, BXQ)
|
||||||
|
CJZ = (CNC, HJX)
|
||||||
|
JPN = (FRP, QTB)
|
||||||
|
RKP = (NKH, FQC)
|
||||||
|
BDP = (GCM, VKT)
|
||||||
|
HQX = (TQF, NJB)
|
||||||
|
PFV = (FPM, VNP)
|
||||||
|
NFQ = (GFX, GXH)
|
||||||
|
STX = (MCQ, DNS)
|
||||||
|
CKX = (CFS, BNS)
|
||||||
|
NRJ = (SBG, TLK)
|
||||||
|
DHS = (VBH, VMT)
|
||||||
|
TVL = (BPQ, NBM)
|
||||||
|
QTF = (MPS, RJB)
|
||||||
|
FHV = (LMK, BJR)
|
||||||
|
JCV = (JSQ, STQ)
|
||||||
|
RGX = (GVL, MTB)
|
||||||
|
CTS = (PCB, GJV)
|
||||||
|
RCS = (TNT, XTF)
|
||||||
|
PCS = (NJH, RLX)
|
||||||
|
KNG = (CHP, FNN)
|
||||||
|
FJL = (KKH, QGQ)
|
||||||
|
CPK = (KTX, CGR)
|
||||||
|
BLF = (PCQ, TKN)
|
||||||
|
FCR = (STF, SVQ)
|
||||||
|
BSL = (GFJ, CDL)
|
||||||
|
FKS = (GRG, JSB)
|
||||||
|
FCM = (LFX, RJF)
|
||||||
|
XLK = (CDP, CBD)
|
||||||
|
KNB = (VGQ, BTM)
|
||||||
|
KGC = (TJR, MHX)
|
||||||
|
JHM = (JSP, XDN)
|
||||||
|
HFN = (STF, SVQ)
|
||||||
|
GCM = (CKX, KPS)
|
||||||
|
CGV = (MHK, JCX)
|
||||||
|
TQP = (JRM, XSB)
|
||||||
|
GSM = (FJV, GNQ)
|
||||||
|
KBL = (DLX, BGD)
|
||||||
|
CBC = (MQK, RRF)
|
||||||
|
NJM = (KLQ, BVL)
|
||||||
|
THG = (CPG, PND)
|
||||||
|
DXP = (HDJ, BVB)
|
||||||
|
DTT = (XDN, JSP)
|
||||||
|
PLP = (BKF, FGP)
|
||||||
|
MSZ = (MVD, DBM)
|
||||||
|
BQC = (NPL, VXF)
|
||||||
|
CGB = (LRM, MTH)
|
||||||
|
RLX = (DBT, RJN)
|
||||||
|
RXP = (HFP, JNS)
|
||||||
|
TTH = (QNF, KNG)
|
||||||
|
LHS = (QFR, GTN)
|
||||||
|
NBL = (THT, VTQ)
|
||||||
|
DRS = (PJH, STX)
|
||||||
|
PSP = (CPK, QKF)
|
||||||
|
PPR = (LQK, VSN)
|
||||||
|
QHT = (RLG, TDG)
|
||||||
|
FVM = (MLR, HXF)
|
||||||
|
DHB = (CQC, BKK)
|
||||||
|
MVP = (GHJ, QRC)
|
||||||
|
TDG = (RVX, CDB)
|
||||||
|
LKN = (HXF, MLR)
|
||||||
|
CNR = (KCV, CDR)
|
||||||
|
SMC = (BBR, BMS)
|
||||||
|
QDP = (LXV, VPS)
|
||||||
|
LLD = (CGC, NGQ)
|
||||||
|
KXN = (PRR, PSR)
|
||||||
|
LRC = (SHB, PBK)
|
||||||
|
SQD = (LBV, CRP)
|
||||||
|
QTB = (KNS, JTS)
|
||||||
|
MTT = (GJV, PCB)
|
||||||
|
GMV = (JNH, MJF)
|
||||||
|
DTG = (SQD, KVV)
|
||||||
|
RTV = (DSB, SJB)
|
||||||
|
CDL = (FTQ, CPN)
|
||||||
|
JHR = (JRM, XSB)
|
||||||
|
BFP = (PFG, MTD)
|
||||||
|
DTB = (NDX, GSL)
|
||||||
|
SQM = (CXL, NBD)
|
||||||
|
NBP = (KBN, LQH)
|
||||||
|
BTC = (LJT, TCV)
|
||||||
|
PQT = (PXG, BSF)
|
||||||
|
QDH = (FPM, VNP)
|
||||||
|
VPT = (PRT, VHJ)
|
||||||
|
VKC = (GXK, QSB)
|
||||||
|
NXB = (QKP, TGK)
|
||||||
|
FDF = (VRT, CVK)
|
||||||
|
NTG = (FRV, BQR)
|
||||||
|
RKB = (PHC, JSD)
|
||||||
|
MHV = (XXL, THG)
|
||||||
|
PHV = (SNM, TFR)
|
||||||
|
XRK = (JNN, LKR)
|
||||||
|
XVS = (CBK, NNM)
|
||||||
|
GDQ = (BDQ, GMX)
|
||||||
|
TKR = (CKJ, LVQ)
|
||||||
|
XCX = (LSP, FNB)
|
||||||
|
JCX = (FGF, FDF)
|
||||||
|
MFJ = (DBB, HBH)
|
||||||
|
BQP = (HRT, DQD)
|
||||||
|
VNC = (BDQ, GMX)
|
||||||
|
SSC = (LQH, KBN)
|
||||||
|
TJD = (QFV, KRS)
|
||||||
|
NKL = (CKK, DDC)
|
||||||
|
NTM = (QHG, MCC)
|
||||||
|
JBQ = (HXV, JPN)
|
||||||
|
DGP = (FVM, LKN)
|
||||||
|
SJB = (LRQ, DMG)
|
||||||
|
LJT = (MMT, MDL)
|
||||||
|
RFC = (MVM, JXP)
|
||||||
|
FFV = (TPG, QMD)
|
||||||
|
PJH = (DNS, MCQ)
|
||||||
|
VCD = (FHV, HKR)
|
||||||
|
MPS = (DHH, LPT)
|
||||||
|
VHJ = (RGX, RNV)
|
||||||
|
FLT = (FRF, NHG)
|
||||||
|
DSF = (SDV, VKC)
|
||||||
|
HJQ = (CDR, KCV)
|
||||||
|
BQR = (PDX, PMX)
|
||||||
|
CRJ = (BPN, KKS)
|
||||||
|
MQN = (PNN, DHB)
|
||||||
|
KCC = (KMC, LQR)
|
||||||
|
BTH = (VLH, BCM)
|
||||||
|
KNS = (GGM, SJS)
|
||||||
|
SCG = (MBF, RDR)
|
||||||
|
VDQ = (JNN, LKR)
|
||||||
|
XFT = (VPT, FLH)
|
||||||
|
RDR = (GTF, GJR)
|
||||||
|
CXS = (RRF, MQK)
|
||||||
|
XDN = (SSF, VGC)
|
||||||
|
JPR = (VGX, TCF)
|
||||||
|
BTF = (LKM, GBG)
|
||||||
|
GCJ = (VPS, LXV)
|
||||||
|
FGJ = (XVG, QMV)
|
||||||
|
MBF = (GJR, GTF)
|
||||||
|
TPG = (TND, QSF)
|
||||||
|
BNR = (BHG, SMC)
|
||||||
|
GJV = (FLB, PCX)
|
||||||
|
LQF = (BJT, KTN)
|
||||||
|
VSB = (JVB, FVK)
|
||||||
|
NHB = (HQX, LLQ)
|
||||||
|
CKC = (PJD, TRS)
|
||||||
|
JVB = (QQV, NRS)
|
||||||
|
BKK = (LSR, LJN)
|
||||||
|
SBV = (GTN, QFR)
|
||||||
|
JMK = (MFG, KHB)
|
||||||
|
LPX = (NBP, SSC)
|
||||||
|
KLJ = (CDX, VTL)
|
||||||
|
KQJ = (RDR, MBF)
|
||||||
|
VMK = (JXJ, BMT)
|
||||||
|
TRS = (LQM, JJD)
|
||||||
|
KCM = (XBD, XMH)
|
||||||
|
JCT = (NFQ, NDJ)
|
||||||
|
FGM = (HMK, PGQ)
|
||||||
|
QKK = (RLS, LPX)
|
||||||
|
QJD = (PDT, RPQ)
|
||||||
|
LHP = (PLN, MQN)
|
||||||
|
NPL = (TFF, TFF)
|
||||||
|
XHP = (PJQ, KBL)
|
||||||
|
HMK = (JNV, XPS)
|
||||||
|
KMC = (VCG, NTG)
|
||||||
|
QDX = (TMM, HHM)
|
||||||
|
VNP = (LTG, GDS)
|
||||||
|
PDR = (CDX, VTL)
|
||||||
|
HVK = (BQC, SCN)
|
||||||
|
QMV = (BNJ, CRL)
|
||||||
|
DDR = (KRS, QFV)
|
||||||
|
RDG = (QHP, QXN)
|
||||||
|
CRL = (NJC, QRL)
|
||||||
|
SHB = (SQX, JVV)
|
||||||
|
TSP = (BPX, FVC)
|
||||||
|
RRF = (KJB, PTB)
|
||||||
|
CSG = (FRX, RTP)
|
||||||
|
RPQ = (SRQ, MLD)
|
||||||
|
VXS = (MTN, DJQ)
|
||||||
|
PJK = (NGD, NTM)
|
||||||
|
QHG = (NXT, DHS)
|
||||||
|
LSP = (MTR, GGH)
|
||||||
|
SHN = (JJS, RVC)
|
||||||
|
TNQ = (TMM, HHM)
|
||||||
|
NPK = (GCM, VKT)
|
||||||
|
MJF = (NBT, FCT)
|
||||||
|
JNN = (PTH, HFK)
|
||||||
|
NRS = (CLT, HGV)
|
||||||
|
HSX = (BPX, FVC)
|
||||||
|
MVM = (DSF, NQS)
|
||||||
|
PBK = (SQX, JVV)
|
||||||
|
HHD = (DBM, MVD)
|
||||||
|
MTD = (DVB, BTX)
|
||||||
|
PXP = (NPP, CRN)
|
||||||
|
TMF = (LPF, QPD)
|
||||||
|
BRT = (FJV, GNQ)
|
||||||
|
MFQ = (BHG, SMC)
|
||||||
|
DJQ = (MVP, MVZ)
|
||||||
|
LKR = (PTH, HFK)
|
||||||
|
STQ = (HTC, PGD)
|
||||||
|
DXF = (JBX, TRT)
|
||||||
|
RJN = (PDR, KLJ)
|
||||||
|
CGC = (KKL, RJV)
|
||||||
|
SRG = (QKK, LND)
|
||||||
|
MCC = (DHS, NXT)
|
||||||
|
JMG = (RLX, NJH)
|
||||||
|
NKH = (DGF, FJL)
|
||||||
|
JXP = (DSF, NQS)
|
||||||
|
GXX = (CKC, MFL)
|
||||||
|
MXD = (KBC, FGK)
|
||||||
|
SCH = (XPG, BTH)
|
||||||
|
XSR = (MQN, PLN)
|
||||||
|
KKD = (NBD, CXL)
|
||||||
|
CLJ = (GCN, GCN)
|
||||||
|
QVV = (THK, LQV)
|
||||||
|
VLH = (FFB, STD)
|
||||||
|
RTP = (CBC, CXS)
|
||||||
|
RVX = (BLF, PTM)
|
||||||
|
KBN = (JNF, BTC)
|
||||||
|
PFX = (JHM, DTT)
|
||||||
|
NVL = (KCM, DLK)
|
||||||
|
QRM = (CQK, RBB)
|
||||||
|
HKP = (SHN, TMV)
|
||||||
|
VXF = (TFF, JRP)
|
||||||
|
LDL = (LHM, JMT)
|
||||||
|
BQL = (DRS, VQQ)
|
||||||
|
FDC = (TNQ, QDX)
|
||||||
|
MMT = (MSL, JCT)
|
||||||
|
CXV = (HKR, FHV)
|
||||||
|
BKB = (FCM, QTC)
|
||||||
|
HRQ = (RXG, JSG)
|
||||||
|
RKH = (JFF, TKR)
|
||||||
|
VQR = (JGD, SFC)
|
||||||
|
KCV = (LNG, NCV)
|
||||||
|
XSB = (DTG, DFK)
|
||||||
|
JGD = (HLP, FNS)
|
||||||
|
VCK = (RXP, VRL)
|
||||||
|
GTN = (BCP, CKB)
|
||||||
|
QDK = (CBD, CDP)
|
||||||
|
SNF = (JNH, MJF)
|
||||||
|
FVK = (QQV, NRS)
|
||||||
|
HHM = (VXK, PJK)
|
||||||
|
JRM = (DTG, DFK)
|
||||||
|
QPL = (XLK, QDK)
|
||||||
|
SCV = (QHP, QXN)
|
||||||
|
RQC = (QMD, TPG)
|
||||||
|
LFX = (BRH, HGP)
|
||||||
|
FRX = (CXS, CBC)
|
||||||
|
BTM = (FPK, JVF)
|
||||||
|
BPN = (LHN, FKM)
|
||||||
|
LRQ = (LSQ, PMP)
|
||||||
|
TPV = (LQF, KDN)
|
||||||
|
XBN = (QDS, DXP)
|
||||||
|
RBB = (FCR, HFN)
|
||||||
|
XSM = (LNT, STB)
|
||||||
|
SBR = (PQT, CNQ)
|
||||||
|
LVM = (SBV, LHS)
|
||||||
|
KBC = (JHR, TQP)
|
||||||
|
DLJ = (FGK, KBC)
|
||||||
|
LKG = (VJX, HLQ)
|
||||||
|
NXT = (VMT, VBH)
|
||||||
|
CBD = (HGN, HBG)
|
||||||
|
BHS = (VTF, MRV)
|
||||||
|
BTP = (GBG, LKM)
|
||||||
|
DSM = (CKK, CKK)
|
||||||
|
LSR = (CMB, NLP)
|
||||||
|
NPP = (BCX, DTB)
|
||||||
|
XCV = (SMS, QJD)
|
||||||
|
PNM = (BPQ, NBM)
|
||||||
|
VPS = (JJB, XMR)
|
||||||
|
JNH = (FCT, NBT)
|
||||||
|
KTN = (SHG, PJG)
|
||||||
|
FMJ = (LQV, THK)
|
||||||
|
GFX = (NBB, NBB)
|
||||||
|
SRQ = (GNS, QGB)
|
||||||
|
FQC = (DGF, FJL)
|
||||||
|
MPA = (BRS, BSL)
|
||||||
|
BMS = (FKS, SKF)
|
||||||
|
BMT = (JMG, PCS)
|
||||||
|
QFV = (SCH, FDJ)
|
||||||
|
STF = (RCS, FFD)
|
||||||
|
JTS = (GGM, SJS)
|
||||||
|
NJQ = (TKR, JFF)
|
||||||
|
MTQ = (HLQ, VJX)
|
||||||
|
FGK = (TQP, JHR)
|
||||||
|
JNF = (TCV, LJT)
|
||||||
|
LKM = (KGC, QNM)
|
||||||
|
MXV = (BQP, BXK)
|
||||||
|
FRF = (LVM, HGK)
|
||||||
|
GGH = (BHB, KNB)
|
||||||
|
BGH = (KBX, FDN)
|
||||||
|
LQH = (JNF, BTC)
|
||||||
|
JVF = (LDS, DCD)
|
||||||
|
CLT = (QPL, LFV)
|
||||||
|
HRV = (TRD, RXH)
|
||||||
|
NBD = (PXP, XBK)
|
||||||
|
PJD = (JJD, LQM)
|
||||||
|
XMV = (BBF, LKX)
|
||||||
|
BCN = (PBH, HPL)
|
||||||
|
XMH = (JNG, GCX)
|
||||||
|
HFK = (GFG, XTS)
|
||||||
|
VTL = (RFC, VPF)
|
||||||
|
MSL = (NFQ, NDJ)
|
||||||
|
THH = (KNG, QNF)
|
||||||
|
PCB = (PCX, FLB)
|
||||||
|
GBQ = (PRR, PSR)
|
||||||
|
NMS = (BQC, SCN)
|
||||||
|
PDX = (BGP, SFH)
|
||||||
|
LDS = (TLJ, LLD)
|
||||||
|
HGV = (QPL, LFV)
|
||||||
|
LMK = (VKX, JCV)
|
||||||
|
NBM = (PKR, QCS)
|
||||||
|
NLR = (LKJ, DGZ)
|
||||||
|
QDN = (TRT, JBX)
|
||||||
|
MTH = (HMT, NJM)
|
||||||
|
CKF = (LKJ, LKJ)
|
||||||
|
FDN = (DGP, JKM)
|
||||||
|
CDR = (NCV, LNG)
|
||||||
|
SGJ = (GBQ, KXN)
|
||||||
|
TMM = (VXK, PJK)
|
||||||
|
JSL = (CTS, MTT)
|
||||||
|
QGB = (TBK, NHB)
|
||||||
|
TDA = (GHJ, QRC)
|
||||||
|
GTF = (QDP, GCJ)
|
||||||
|
TCG = (FVK, JVB)
|
||||||
|
LXJ = (FVN, LHX)
|
||||||
|
TQF = (RKL, SHQ)
|
||||||
|
ZZZ = (VQQ, DRS)
|
||||||
|
NCV = (CRJ, GBL)
|
||||||
|
BKF = (CJP, PRL)
|
||||||
|
QPD = (DQN, JBQ)
|
||||||
|
MFL = (PJD, TRS)
|
||||||
|
NHG = (HGK, LVM)
|
||||||
|
MRV = (MLH, TBV)
|
||||||
|
XHS = (PSN, HRQ)
|
||||||
|
JJB = (NJQ, RKH)
|
||||||
|
TGK = (SFG, FDS)
|
||||||
|
CGS = (TRD, RXH)
|
||||||
|
GCN = (NCN, CVS)
|
||||||
|
PNN = (BKK, CQC)
|
||||||
|
LSQ = (KCC, GSP)
|
||||||
|
LND = (RLS, LPX)
|
||||||
|
CPG = (VGM, RXV)
|
||||||
|
GSF = (HMJ, RMH)
|
||||||
|
JRH = (VQR, BVM)
|
||||||
|
FJB = (DTT, JHM)
|
||||||
|
FKM = (BFK, XCQ)
|
||||||
|
LPT = (PRD, CGB)
|
||||||
|
XVG = (CRL, BNJ)
|
||||||
|
KRS = (FDJ, SCH)
|
||||||
|
BNL = (BQL, ZZZ)
|
||||||
|
JMB = (XVD, MBH)
|
||||||
|
KKH = (RLN, PHV)
|
||||||
|
MTB = (PSP, VCX)
|
||||||
|
NCN = (FFV, RQC)
|
||||||
|
FVC = (QJC, SRG)
|
||||||
|
FTS = (THG, XXL)
|
||||||
|
SFG = (BCN, DBN)
|
||||||
|
RXH = (XQT, SDR)
|
||||||
|
MLR = (GDQ, VNC)
|
||||||
|
TRD = (XQT, SDR)
|
||||||
|
BGD = (GLJ, FNK)
|
||||||
|
XDJ = (MPS, RJB)
|
||||||
|
JMJ = (MDJ, RTV)
|
||||||
|
RVC = (PXQ, NRJ)
|
||||||
|
QQV = (CLT, HGV)
|
||||||
|
MLD = (QGB, GNS)
|
||||||
|
KPH = (HRQ, PSN)
|
||||||
|
RLN = (TFR, SNM)
|
||||||
|
JRP = (DSX, HPD)
|
||||||
|
SJS = (DSM, NKL)
|
||||||
|
PGD = (CGS, HRV)
|
||||||
|
HPL = (GKH, CVN)
|
||||||
|
MQK = (PTB, KJB)
|
||||||
|
QCR = (MHV, FTS)
|
||||||
|
VCG = (BQR, FRV)
|
||||||
|
LXV = (XMR, JJB)
|
||||||
|
PKR = (QSH, XMV)
|
||||||
|
JSB = (DLJ, MXD)
|
||||||
|
VRL = (JNS, HFP)
|
||||||
|
PHJ = (BTF, BTP)
|
||||||
|
CXL = (XBK, PXP)
|
||||||
|
FNN = (TSP, HSX)
|
||||||
|
XQT = (VHH, QHT)
|
||||||
|
LQV = (DQK, JMB)
|
||||||
|
RLS = (NBP, SSC)
|
||||||
|
TCV = (MDL, MMT)
|
||||||
|
QTC = (LFX, RJF)
|
||||||
|
LRK = (MFL, CKC)
|
||||||
|
MHK = (FGF, FDF)
|
||||||
|
RLJ = (HJX, CNC)
|
||||||
|
TLK = (RFL, VCK)
|
||||||
|
CNC = (HJQ, CNR)
|
||||||
|
LQL = (FRX, RTP)
|
||||||
|
QQM = (MFQ, BNR)
|
||||||
|
VBH = (HLB, JMJ)
|
||||||
|
GKX = (TGK, QKP)
|
||||||
|
KQG = (JRH, VNT)
|
||||||
|
XDR = (DNF, KJV)
|
||||||
|
GMJ = (HKP, TGX)
|
||||||
|
VRQ = (VTF, MRV)
|
||||||
|
HGP = (VNB, LDL)
|
||||||
|
LNG = (GBL, CRJ)
|
||||||
|
BSF = (LKG, MTQ)
|
||||||
|
BRH = (VNB, LDL)
|
||||||
|
PJQ = (BGD, DLX)
|
||||||
|
QKF = (CGR, KTX)
|
||||||
|
QMD = (TND, QSF)
|
||||||
|
PQH = (MKS, STP)
|
||||||
|
FRV = (PDX, PMX)
|
||||||
|
LPF = (JBQ, DQN)
|
||||||
|
CQM = (TDH, JPR)
|
||||||
|
HJX = (CNR, HJQ)
|
||||||
|
AAA = (DRS, VQQ)
|
||||||
|
TDH = (VGX, TCF)
|
||||||
|
TGX = (TMV, SHN)
|
||||||
|
BDH = (XFV, GSF)
|
||||||
|
GXK = (BFP, TFH)
|
||||||
|
BFT = (MFQ, BNR)
|
||||||
|
NGD = (QHG, MCC)
|
||||||
|
FPK = (DCD, LDS)
|
||||||
|
MTR = (KNB, BHB)
|
||||||
|
SNM = (MFJ, HXJ)
|
||||||
|
HLP = (RHQ, SVR)
|
||||||
|
JSP = (VGC, SSF)
|
||||||
|
NJH = (RJN, DBT)
|
||||||
|
SKF = (GRG, JSB)
|
||||||
|
PTM = (TKN, PCQ)
|
||||||
|
QGQ = (PHV, RLN)
|
||||||
|
SSF = (NVL, JPB)
|
||||||
|
PCQ = (LTC, PCH)
|
||||||
|
KJV = (GMS, XGF)
|
||||||
|
JSD = (XHP, DKM)
|
||||||
|
RRB = (LQF, KDN)
|
||||||
|
GJJ = (FLT, BNV)
|
||||||
|
FJA = (HJX, CNC)
|
||||||
|
HLQ = (XRK, VDQ)
|
||||||
|
KTP = (LPF, QPD)
|
||||||
|
PRD = (LRM, MTH)
|
||||||
|
QNF = (CHP, FNN)
|
||||||
|
DQK = (MBH, XVD)
|
||||||
|
TMS = (CLJ, XML)
|
||||||
|
QVP = (FNB, LSP)
|
||||||
|
BPX = (QJC, SRG)
|
||||||
|
QXN = (KQG, BML)
|
||||||
|
VGQ = (JVF, FPK)
|
||||||
|
BRS = (CDL, GFJ)
|
||||||
|
NQS = (VKC, SDV)
|
||||||
|
LFV = (XLK, QDK)
|
||||||
|
SMS = (RPQ, PDT)
|
||||||
|
BBF = (CGV, KRM)
|
||||||
|
VMT = (HLB, JMJ)
|
||||||
|
QSF = (JSL, LRF)
|
||||||
|
CJQ = (XSR, LHP)
|
||||||
|
RDF = (KKD, SQM)
|
||||||
|
MKS = (CKF, CKF)
|
||||||
|
STD = (MNM, TMS)
|
||||||
|
DNS = (MRQ, XFT)
|
||||||
|
MFG = (RQR, BXQ)
|
||||||
|
GBG = (QNM, KGC)
|
||||||
|
JNG = (RDG, SCV)
|
||||||
|
CVN = (GJJ, QVC)
|
||||||
|
HMT = (BVL, KLQ)
|
||||||
|
VTQ = (NTC, BNL)
|
||||||
|
TGB = (JTK, VMK)
|
||||||
|
PSR = (NPK, BDP)
|
||||||
|
MDJ = (DSB, SJB)
|
||||||
|
CKB = (VSB, TCG)
|
||||||
|
DNF = (GMS, XGF)
|
||||||
|
LQK = (XFR, RDF)
|
||||||
|
RHQ = (KPX, QTM)
|
||||||
|
VKX = (STQ, JSQ)
|
||||||
|
BRX = (DDR, TJD)
|
||||||
|
LJN = (NLP, CMB)
|
||||||
|
DJR = (HMK, PGQ)
|
||||||
|
VNB = (JMT, LHM)
|
||||||
|
DBM = (SBR, MTF)
|
||||||
|
KLQ = (XBN, MNH)
|
||||||
|
MDL = (MSL, JCT)
|
||||||
|
SQX = (TPV, RRB)
|
||||||
|
CLD = (CQK, RBB)
|
||||||
|
HPD = (RLJ, CJZ)
|
||||||
|
LHN = (BFK, XCQ)
|
||||||
|
KJB = (TMC, QCR)
|
||||||
|
RLG = (RVX, CDB)
|
||||||
|
PBH = (GKH, CVN)
|
||||||
|
DMB = (HHD, MSZ)
|
||||||
|
SDV = (GXK, QSB)
|
||||||
|
KPX = (XDJ, QTF)
|
||||||
|
NBB = (MTN, MTN)
|
||||||
|
BTX = (BRT, GSM)
|
||||||
|
HGN = (HJT, RBX)
|
||||||
|
GDS = (XSM, BGG)
|
||||||
|
KDN = (KTN, BJT)
|
||||||
|
GSL = (TRQ, PHJ)
|
||||||
|
SFR = (XHS, KPH)
|
||||||
|
JNV = (TVL, PNM)
|
||||||
|
JNS = (VCD, CXV)
|
||||||
|
LHM = (GXV, RTX)
|
||||||
|
TFH = (MTD, PFG)
|
||||||
|
GHJ = (CSN, XVS)
|
||||||
|
KNQ = (LRK, GXX)
|
||||||
|
PRT = (RNV, RGX)
|
||||||
|
JTK = (BMT, JXJ)
|
||||||
|
MRQ = (VPT, FLH)
|
||||||
|
TKN = (LTC, PCH)
|
||||||
|
VSN = (XFR, RDF)
|
||||||
|
HXJ = (DBB, HBH)
|
||||||
|
PRL = (THH, TTH)
|
||||||
|
GCX = (RDG, SCV)
|
||||||
|
MNH = (DXP, QDS)
|
||||||
|
CMB = (XQB, RKB)
|
||||||
|
CHP = (TSP, HSX)
|
||||||
|
BCP = (TCG, VSB)
|
||||||
|
LNT = (HQM, FGJ)
|
||||||
|
FNK = (XNX, RKP)
|
||||||
|
HRT = (FJB, PFX)
|
||||||
|
HTC = (CGS, HRV)
|
||||||
|
SDR = (QHT, VHH)
|
||||||
|
CQK = (FCR, HFN)
|
||||||
|
LVN = (FGP, BKF)
|
||||||
|
FDS = (DBN, BCN)
|
||||||
|
QCS = (QSH, XMV)
|
||||||
|
TRT = (KFQ, SGJ)
|
||||||
|
RQH = (FDN, KBX)
|
||||||
|
QJC = (QKK, LND)
|
||||||
|
MVD = (SBR, MTF)
|
||||||
|
SBG = (RFL, VCK)
|
||||||
|
DSX = (RLJ, RLJ)
|
||||||
|
JBX = (KFQ, SGJ)
|
||||||
|
JVV = (RRB, TPV)
|
||||||
|
BBR = (FKS, SKF)
|
||||||
|
KTX = (VDX, XDR)
|
||||||
|
CSN = (NNM, CBK)
|
||||||
|
NNM = (RTN, TGB)
|
||||||
|
VXK = (NGD, NTM)
|
||||||
|
DQD = (FJB, PFX)
|
||||||
|
CDB = (BLF, PTM)
|
||||||
|
GBL = (BPN, KKS)
|
||||||
|
BGP = (SNT, BRX)
|
||||||
|
CRP = (FDC, TPJ)
|
||||||
|
DFK = (KVV, SQD)
|
||||||
|
LVQ = (KNQ, FBX)
|
||||||
|
HSB = (PBK, SHB)
|
||||||
|
PJG = (TNP, CQM)
|
||||||
|
JPB = (KCM, DLK)
|
||||||
|
JJS = (PXQ, NRJ)
|
||||||
|
XGF = (QDH, PFV)
|
||||||
|
DKM = (KBL, PJQ)
|
||||||
|
DVB = (GSM, BRT)
|
||||||
|
TMC = (MHV, FTS)
|
||||||
|
TRQ = (BTP, BTF)
|
||||||
|
FLB = (FCV, FKJ)
|
||||||
|
BVL = (MNH, XBN)
|
||||||
|
XPA = (NCN, CVS)
|
||||||
|
XPS = (PNM, TVL)
|
||||||
|
CPN = (RDJ, JMK)
|
||||||
|
RQR = (DKX, CJQ)
|
||||||
|
SFH = (SNT, BRX)
|
||||||
|
DBT = (KLJ, PDR)
|
||||||
|
MBH = (XCS, XPD)
|
||||||
|
DLK = (XMH, XBD)
|
||||||
|
HBG = (HJT, RBX)
|
||||||
|
THK = (DQK, JMB)
|
||||||
|
DGF = (KKH, QGQ)
|
||||||
|
BPJ = (GKX, NXB)
|
||||||
|
MTN = (MVP, MVP)
|
||||||
|
TMV = (RVC, JJS)
|
||||||
|
GMS = (PFV, QDH)
|
||||||
|
FDJ = (BTH, XPG)
|
||||||
|
FFB = (MNM, MNM)
|
||||||
|
RTX = (LBK, LXJ)
|
||||||
|
BGG = (LNT, STB)
|
||||||
|
LRM = (HMT, NJM)
|
||||||
|
XVD = (XPD, XCS)
|
||||||
|
THT = (NTC, NTC)
|
||||||
|
GXH = (NBB, VXS)
|
||||||
|
LTG = (XSM, BGG)
|
||||||
|
GKH = (GJJ, QVC)
|
||||||
|
TNT = (FHG, PPR)
|
||||||
|
CDP = (HGN, HBG)
|
||||||
|
DQN = (HXV, JPN)
|
||||||
|
FNS = (SVR, RHQ)
|
||||||
|
DSB = (DMG, LRQ)
|
||||||
|
DCD = (TLJ, LLD)
|
||||||
|
FTQ = (JMK, RDJ)
|
||||||
|
VGX = (SFN, BDH)
|
||||||
|
VDX = (KJV, DNF)
|
||||||
|
PMX = (SFH, BGP)
|
||||||
|
VTF = (TBV, MLH)
|
||||||
|
LQM = (FMJ, QVV)
|
||||||
|
VNT = (VQR, BVM)
|
||||||
|
XML = (GCN, QFZ)
|
||||||
|
VPF = (MVM, JXP)
|
||||||
|
TBK = (LLQ, HQX)
|
||||||
|
PXQ = (TLK, SBG)
|
||||||
|
LKX = (CGV, KRM)
|
||||||
|
DBN = (PBH, HPL)
|
||||||
|
XXL = (CPG, PND)
|
||||||
|
BHG = (BBR, BMS)
|
||||||
|
VQQ = (STX, PJH)
|
||||||
|
VHH = (RLG, TDG)
|
||||||
|
RJK = (KPH, XHS)
|
||||||
|
BFK = (MXV, HTX)
|
||||||
|
VJX = (XRK, VDQ)
|
||||||
|
GFJ = (CPN, FTQ)
|
||||||
|
GRG = (MXD, DLJ)
|
||||||
|
CQC = (LJN, LSR)
|
||||||
|
RJB = (DHH, LPT)
|
||||||
|
FGP = (CJP, PRL)
|
||||||
|
BCM = (FFB, STD)
|
||||||
|
FBX = (GXX, LRK)
|
||||||
|
FLH = (VHJ, PRT)
|
||||||
|
GTD = (THT, THT)
|
||||||
|
GNS = (NHB, TBK)
|
||||||
|
QTM = (XDJ, QTF)
|
||||||
|
VGM = (KJK, FCD)
|
||||||
|
XBD = (JNG, GCX)
|
||||||
|
QVC = (BNV, FLT)
|
||||||
|
FCV = (LQL, CSG)
|
||||||
|
SCN = (NPL, VXF)
|
||||||
|
KKL = (HVK, NMS)
|
||||||
|
MDG = (QJD, SMS)
|
||||||
|
QSB = (BFP, TFH)
|
||||||
|
LKJ = (BRS, BSL)
|
||||||
|
XCS = (HSB, LRC)
|
||||||
|
HLB = (MDJ, RTV)
|
||||||
|
TLJ = (NGQ, CGC)
|
||||||
|
MNM = (CLJ, CLJ)
|
||||||
|
STB = (HQM, FGJ)
|
||||||
|
HJT = (TMF, KTP)
|
||||||
|
TND = (LRF, JSL)
|
||||||
|
FVN = (QDN, DXF)
|
||||||
|
SNT = (TJD, DDR)
|
||||||
|
JKM = (LKN, FVM)
|
||||||
|
LTC = (RBP, PQH)
|
||||||
|
STP = (CKF, NLR)
|
||||||
|
DMG = (LSQ, PMP)
|
||||||
|
CDX = (RFC, VPF)
|
||||||
|
CNQ = (PXG, BSF)
|
||||||
|
PMP = (KCC, GSP)
|
||||||
|
VKT = (CKX, KPS)
|
||||||
|
CKJ = (FBX, KNQ)
|
||||||
|
VGC = (JPB, NVL)
|
||||||
|
LCB = (QTC, FCM)
|
||||||
|
TCF = (BDH, SFN)
|
||||||
|
DDC = (XSX, DMB)
|
||||||
|
SFN = (XFV, GSF)
|
||||||
|
HXF = (GDQ, VNC)
|
||||||
|
BPQ = (QCS, PKR)
|
||||||
|
FFD = (TNT, XTF)
|
||||||
|
TBV = (SFR, RJK)
|
||||||
|
DBB = (FGM, DJR)
|
||||||
|
FHG = (VSN, LQK)
|
||||||
|
GGM = (DSM, NKL)
|
||||||
|
RJV = (NMS, HVK)
|
||||||
|
NGQ = (RJV, KKL)
|
||||||
|
CFS = (HQV, HPS)
|
||||||
|
PFG = (BTX, DVB)
|
||||||
|
VCX = (QKF, CPK)
|
||||||
|
XCQ = (MXV, HTX)
|
||||||
|
DHH = (PRD, CGB)
|
||||||
|
HBH = (DJR, FGM)
|
||||||
|
RMH = (GMV, SNF)
|
||||||
|
HXV = (QTB, FRP)
|
||||||
|
QFZ = (CVS, NCN)
|
||||||
|
CVK = (BDK, GMJ)
|
||||||
|
SHQ = (QQM, BFT)
|
||||||
|
PGQ = (XPS, JNV)
|
||||||
|
LQR = (NTG, VCG)
|
||||||
|
QDS = (BVB, HDJ)
|
||||||
|
CJP = (THH, TTH)
|
||||||
|
FNB = (GGH, MTR)
|
||||||
|
PSN = (RXG, JSG)
|
||||||
|
LHX = (QDN, DXF)
|
||||||
|
GFG = (SCG, KQJ)
|
||||||
|
PRR = (NPK, BDP)
|
||||||
|
QSH = (LKX, BBF)
|
||||||
|
KVV = (LBV, CRP)
|
||||||
|
DFF = (NXB, GKX)
|
||||||
|
JFF = (CKJ, LVQ)
|
||||||
|
FCD = (MDG, XCV)
|
||||||
|
SFC = (FNS, HLP)
|
||||||
|
KPS = (BNS, CFS)
|
||||||
|
PLN = (PNN, DHB)
|
||||||
|
SHG = (CQM, TNP)
|
||||||
|
GJR = (QDP, GCJ)
|
||||||
|
NDJ = (GFX, GXH)
|
||||||
|
XQB = (PHC, JSD)
|
||||||
|
FKJ = (CSG, LQL)
|
||||||
|
FRP = (KNS, JTS)
|
||||||
|
MHX = (BKB, LCB)
|
||||||
|
HGK = (LHS, SBV)
|
||||||
|
JXJ = (JMG, PCS)
|
||||||
|
NJC = (RQH, BGH)
|
||||||
|
LLQ = (TQF, NJB)
|
||||||
|
QFR = (BCP, CKB)
|
||||||
|
BXK = (DQD, HRT)
|
||||||
|
XFR = (KKD, SQM)
|
||||||
|
XFV = (HMJ, RMH)
|
||||||
|
HMJ = (GMV, SNF)
|
||||||
|
BNV = (NHG, FRF)
|
||||||
|
GXV = (LBK, LXJ)
|
||||||
|
XNX = (NKH, FQC)
|
||||||
|
BJR = (VKX, JCV)
|
||||||
|
CRN = (BCX, DTB)
|
||||||
11
src/aoc8test.txt
Normal file
11
src/aoc8test.txt
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
LR
|
||||||
|
|
||||||
|
11A = (11B, XXX)
|
||||||
|
12A = (11B, XXX)
|
||||||
|
11B = (XXX, 11Z)
|
||||||
|
11Z = (11B, XXX)
|
||||||
|
22A = (22B, XXX)
|
||||||
|
22B = (22C, 22C)
|
||||||
|
22C = (22Z, 22Z)
|
||||||
|
22Z = (22B, 22B)
|
||||||
|
XXX = (XXX, XXX)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue