Day 5
This commit is contained in:
512
day_05/input.txt
Normal file
512
day_05/input.txt
Normal file
@@ -0,0 +1,512 @@
|
|||||||
|
[F] [Q] [Q]
|
||||||
|
[B] [Q] [V] [D] [S]
|
||||||
|
[S] [P] [T] [R] [M] [D]
|
||||||
|
[J] [V] [W] [M] [F] [J] [J]
|
||||||
|
[Z] [G] [S] [W] [N] [D] [R] [T]
|
||||||
|
[V] [M] [B] [G] [S] [C] [T] [V] [S]
|
||||||
|
[D] [S] [L] [J] [L] [G] [G] [F] [R]
|
||||||
|
[G] [Z] [C] [H] [C] [R] [H] [P] [D]
|
||||||
|
1 2 3 4 5 6 7 8 9
|
||||||
|
|
||||||
|
move 3 from 5 to 2
|
||||||
|
move 3 from 8 to 4
|
||||||
|
move 7 from 7 to 3
|
||||||
|
move 14 from 3 to 9
|
||||||
|
move 8 from 4 to 1
|
||||||
|
move 1 from 7 to 5
|
||||||
|
move 2 from 6 to 4
|
||||||
|
move 4 from 5 to 7
|
||||||
|
move 1 from 3 to 6
|
||||||
|
move 3 from 4 to 3
|
||||||
|
move 1 from 4 to 1
|
||||||
|
move 5 from 1 to 9
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 4 from 7 to 4
|
||||||
|
move 15 from 9 to 2
|
||||||
|
move 7 from 1 to 6
|
||||||
|
move 3 from 3 to 5
|
||||||
|
move 1 from 4 to 9
|
||||||
|
move 2 from 5 to 3
|
||||||
|
move 2 from 4 to 9
|
||||||
|
move 4 from 1 to 6
|
||||||
|
move 1 from 3 to 1
|
||||||
|
move 1 from 3 to 2
|
||||||
|
move 4 from 6 to 3
|
||||||
|
move 24 from 2 to 8
|
||||||
|
move 4 from 9 to 8
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 2 from 5 to 4
|
||||||
|
move 1 from 2 to 4
|
||||||
|
move 19 from 8 to 1
|
||||||
|
move 5 from 3 to 9
|
||||||
|
move 8 from 1 to 3
|
||||||
|
move 3 from 4 to 1
|
||||||
|
move 6 from 9 to 5
|
||||||
|
move 2 from 3 to 4
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 2 from 4 to 6
|
||||||
|
move 11 from 6 to 1
|
||||||
|
move 8 from 8 to 7
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 13 from 1 to 3
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 2 from 7 to 8
|
||||||
|
move 5 from 7 to 1
|
||||||
|
move 2 from 8 to 4
|
||||||
|
move 3 from 5 to 3
|
||||||
|
move 11 from 3 to 1
|
||||||
|
move 2 from 5 to 3
|
||||||
|
move 2 from 5 to 3
|
||||||
|
move 2 from 7 to 1
|
||||||
|
move 7 from 3 to 1
|
||||||
|
move 1 from 4 to 5
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 3 from 4 to 7
|
||||||
|
move 3 from 7 to 1
|
||||||
|
move 6 from 3 to 5
|
||||||
|
move 1 from 5 to 9
|
||||||
|
move 4 from 5 to 4
|
||||||
|
move 2 from 3 to 4
|
||||||
|
move 8 from 9 to 2
|
||||||
|
move 5 from 4 to 6
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 1 from 4 to 9
|
||||||
|
move 39 from 1 to 7
|
||||||
|
move 7 from 2 to 6
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 1 from 2 to 7
|
||||||
|
move 1 from 3 to 1
|
||||||
|
move 5 from 7 to 3
|
||||||
|
move 4 from 5 to 1
|
||||||
|
move 19 from 7 to 9
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 5 from 9 to 3
|
||||||
|
move 6 from 6 to 7
|
||||||
|
move 1 from 8 to 3
|
||||||
|
move 4 from 1 to 4
|
||||||
|
move 23 from 7 to 6
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 21 from 6 to 2
|
||||||
|
move 3 from 4 to 8
|
||||||
|
move 7 from 6 to 1
|
||||||
|
move 1 from 4 to 9
|
||||||
|
move 1 from 6 to 7
|
||||||
|
move 6 from 1 to 2
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 15 from 2 to 8
|
||||||
|
move 5 from 3 to 8
|
||||||
|
move 22 from 8 to 7
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 5 from 3 to 4
|
||||||
|
move 1 from 3 to 2
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 3 from 4 to 8
|
||||||
|
move 3 from 8 to 9
|
||||||
|
move 11 from 2 to 1
|
||||||
|
move 2 from 1 to 4
|
||||||
|
move 15 from 9 to 5
|
||||||
|
move 22 from 7 to 3
|
||||||
|
move 2 from 4 to 9
|
||||||
|
move 3 from 4 to 2
|
||||||
|
move 8 from 1 to 8
|
||||||
|
move 6 from 8 to 6
|
||||||
|
move 1 from 6 to 2
|
||||||
|
move 3 from 6 to 9
|
||||||
|
move 3 from 2 to 7
|
||||||
|
move 4 from 2 to 9
|
||||||
|
move 2 from 7 to 5
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 2 from 8 to 2
|
||||||
|
move 2 from 7 to 5
|
||||||
|
move 9 from 5 to 3
|
||||||
|
move 8 from 5 to 2
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 1 from 6 to 9
|
||||||
|
move 1 from 2 to 9
|
||||||
|
move 2 from 5 to 1
|
||||||
|
move 7 from 2 to 3
|
||||||
|
move 1 from 4 to 3
|
||||||
|
move 1 from 2 to 4
|
||||||
|
move 5 from 3 to 4
|
||||||
|
move 6 from 9 to 3
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 6 from 9 to 6
|
||||||
|
move 2 from 1 to 8
|
||||||
|
move 3 from 6 to 3
|
||||||
|
move 2 from 8 to 6
|
||||||
|
move 6 from 4 to 1
|
||||||
|
move 14 from 3 to 9
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 3 from 3 to 9
|
||||||
|
move 1 from 4 to 5
|
||||||
|
move 10 from 9 to 6
|
||||||
|
move 6 from 6 to 7
|
||||||
|
move 2 from 1 to 8
|
||||||
|
move 1 from 8 to 6
|
||||||
|
move 16 from 3 to 2
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 7 from 3 to 4
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 4 from 2 to 3
|
||||||
|
move 5 from 4 to 9
|
||||||
|
move 2 from 4 to 5
|
||||||
|
move 4 from 7 to 4
|
||||||
|
move 5 from 9 to 6
|
||||||
|
move 2 from 5 to 4
|
||||||
|
move 11 from 6 to 7
|
||||||
|
move 1 from 6 to 8
|
||||||
|
move 5 from 1 to 5
|
||||||
|
move 2 from 6 to 4
|
||||||
|
move 7 from 7 to 3
|
||||||
|
move 1 from 8 to 6
|
||||||
|
move 2 from 7 to 3
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 3 from 2 to 8
|
||||||
|
move 9 from 2 to 5
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 7 from 4 to 7
|
||||||
|
move 8 from 5 to 6
|
||||||
|
move 1 from 7 to 2
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 3 from 7 to 8
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 3 from 7 to 6
|
||||||
|
move 11 from 6 to 2
|
||||||
|
move 4 from 8 to 7
|
||||||
|
move 2 from 8 to 7
|
||||||
|
move 15 from 3 to 2
|
||||||
|
move 7 from 9 to 4
|
||||||
|
move 3 from 3 to 2
|
||||||
|
move 4 from 4 to 7
|
||||||
|
move 5 from 7 to 3
|
||||||
|
move 3 from 4 to 6
|
||||||
|
move 3 from 6 to 9
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 2 from 3 to 7
|
||||||
|
move 2 from 3 to 7
|
||||||
|
move 23 from 2 to 5
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 1 from 1 to 8
|
||||||
|
move 8 from 7 to 1
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 3 from 9 to 8
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 22 from 5 to 9
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 1 from 4 to 5
|
||||||
|
move 1 from 8 to 3
|
||||||
|
move 2 from 9 to 3
|
||||||
|
move 5 from 5 to 2
|
||||||
|
move 5 from 5 to 4
|
||||||
|
move 3 from 2 to 7
|
||||||
|
move 1 from 7 to 3
|
||||||
|
move 6 from 1 to 7
|
||||||
|
move 4 from 3 to 1
|
||||||
|
move 6 from 2 to 8
|
||||||
|
move 1 from 5 to 6
|
||||||
|
move 2 from 8 to 1
|
||||||
|
move 12 from 9 to 4
|
||||||
|
move 8 from 9 to 4
|
||||||
|
move 1 from 2 to 9
|
||||||
|
move 2 from 9 to 8
|
||||||
|
move 3 from 2 to 8
|
||||||
|
move 5 from 8 to 6
|
||||||
|
move 7 from 7 to 1
|
||||||
|
move 4 from 8 to 9
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 17 from 4 to 7
|
||||||
|
move 1 from 2 to 4
|
||||||
|
move 2 from 4 to 1
|
||||||
|
move 6 from 4 to 6
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 7 from 1 to 5
|
||||||
|
move 9 from 7 to 9
|
||||||
|
move 8 from 9 to 8
|
||||||
|
move 5 from 8 to 3
|
||||||
|
move 1 from 5 to 6
|
||||||
|
move 2 from 3 to 6
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 10 from 6 to 1
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 2 from 9 to 1
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 2 from 6 to 8
|
||||||
|
move 2 from 8 to 2
|
||||||
|
move 1 from 6 to 8
|
||||||
|
move 22 from 1 to 9
|
||||||
|
move 9 from 7 to 5
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 2 from 8 to 3
|
||||||
|
move 4 from 5 to 9
|
||||||
|
move 1 from 8 to 3
|
||||||
|
move 5 from 1 to 9
|
||||||
|
move 2 from 7 to 3
|
||||||
|
move 2 from 4 to 7
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 2 from 2 to 4
|
||||||
|
move 1 from 5 to 8
|
||||||
|
move 9 from 5 to 8
|
||||||
|
move 2 from 7 to 5
|
||||||
|
move 2 from 4 to 5
|
||||||
|
move 3 from 8 to 4
|
||||||
|
move 3 from 4 to 3
|
||||||
|
move 2 from 8 to 6
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 3 from 5 to 9
|
||||||
|
move 1 from 6 to 3
|
||||||
|
move 12 from 3 to 5
|
||||||
|
move 1 from 3 to 1
|
||||||
|
move 7 from 5 to 4
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 7 from 5 to 1
|
||||||
|
move 6 from 9 to 6
|
||||||
|
move 29 from 9 to 5
|
||||||
|
move 2 from 4 to 6
|
||||||
|
move 26 from 5 to 2
|
||||||
|
move 24 from 2 to 7
|
||||||
|
move 1 from 3 to 2
|
||||||
|
move 8 from 1 to 7
|
||||||
|
move 7 from 6 to 9
|
||||||
|
move 2 from 5 to 3
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 3 from 8 to 5
|
||||||
|
move 2 from 3 to 8
|
||||||
|
move 2 from 2 to 8
|
||||||
|
move 5 from 9 to 2
|
||||||
|
move 27 from 7 to 2
|
||||||
|
move 2 from 8 to 3
|
||||||
|
move 2 from 9 to 5
|
||||||
|
move 3 from 8 to 5
|
||||||
|
move 2 from 7 to 4
|
||||||
|
move 3 from 4 to 7
|
||||||
|
move 2 from 3 to 2
|
||||||
|
move 4 from 5 to 1
|
||||||
|
move 5 from 7 to 2
|
||||||
|
move 29 from 2 to 8
|
||||||
|
move 9 from 8 to 3
|
||||||
|
move 2 from 4 to 8
|
||||||
|
move 7 from 3 to 2
|
||||||
|
move 3 from 5 to 4
|
||||||
|
move 1 from 7 to 5
|
||||||
|
move 3 from 5 to 6
|
||||||
|
move 2 from 1 to 8
|
||||||
|
move 2 from 6 to 8
|
||||||
|
move 3 from 4 to 2
|
||||||
|
move 4 from 4 to 2
|
||||||
|
move 1 from 6 to 8
|
||||||
|
move 8 from 2 to 4
|
||||||
|
move 2 from 3 to 5
|
||||||
|
move 1 from 4 to 1
|
||||||
|
move 3 from 1 to 2
|
||||||
|
move 4 from 8 to 2
|
||||||
|
move 3 from 4 to 9
|
||||||
|
move 3 from 4 to 1
|
||||||
|
move 2 from 9 to 5
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 4 from 5 to 1
|
||||||
|
move 1 from 6 to 8
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 4 from 2 to 3
|
||||||
|
move 15 from 8 to 2
|
||||||
|
move 9 from 8 to 1
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 5 from 1 to 9
|
||||||
|
move 3 from 9 to 7
|
||||||
|
move 2 from 7 to 6
|
||||||
|
move 3 from 3 to 2
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 1 from 9 to 6
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 2 from 8 to 2
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 4 from 1 to 7
|
||||||
|
move 19 from 2 to 5
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 1 from 1 to 5
|
||||||
|
move 3 from 1 to 4
|
||||||
|
move 1 from 1 to 8
|
||||||
|
move 6 from 2 to 4
|
||||||
|
move 7 from 2 to 1
|
||||||
|
move 2 from 7 to 9
|
||||||
|
move 8 from 2 to 8
|
||||||
|
move 2 from 7 to 3
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 10 from 4 to 6
|
||||||
|
move 5 from 6 to 7
|
||||||
|
move 2 from 9 to 8
|
||||||
|
move 6 from 8 to 9
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 2 from 8 to 3
|
||||||
|
move 5 from 1 to 8
|
||||||
|
move 8 from 5 to 2
|
||||||
|
move 8 from 8 to 7
|
||||||
|
move 7 from 2 to 8
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 2 from 2 to 6
|
||||||
|
move 5 from 9 to 3
|
||||||
|
move 2 from 8 to 6
|
||||||
|
move 2 from 3 to 9
|
||||||
|
move 4 from 8 to 6
|
||||||
|
move 7 from 6 to 1
|
||||||
|
move 8 from 1 to 5
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 1 from 9 to 6
|
||||||
|
move 12 from 5 to 3
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 2 from 9 to 5
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 3 from 5 to 1
|
||||||
|
move 1 from 1 to 5
|
||||||
|
move 21 from 3 to 8
|
||||||
|
move 2 from 1 to 5
|
||||||
|
move 6 from 5 to 7
|
||||||
|
move 2 from 5 to 6
|
||||||
|
move 10 from 6 to 9
|
||||||
|
move 1 from 6 to 8
|
||||||
|
move 13 from 8 to 2
|
||||||
|
move 2 from 5 to 4
|
||||||
|
move 2 from 4 to 3
|
||||||
|
move 4 from 9 to 1
|
||||||
|
move 5 from 7 to 8
|
||||||
|
move 12 from 8 to 1
|
||||||
|
move 5 from 9 to 6
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 2 from 6 to 5
|
||||||
|
move 11 from 2 to 1
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 16 from 1 to 9
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 12 from 9 to 3
|
||||||
|
move 14 from 7 to 2
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 1 from 7 to 5
|
||||||
|
move 3 from 9 to 5
|
||||||
|
move 4 from 6 to 9
|
||||||
|
move 3 from 9 to 4
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 2 from 4 to 5
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 5 from 3 to 5
|
||||||
|
move 2 from 4 to 2
|
||||||
|
move 8 from 2 to 7
|
||||||
|
move 7 from 2 to 4
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 3 from 9 to 7
|
||||||
|
move 2 from 2 to 9
|
||||||
|
move 3 from 4 to 5
|
||||||
|
move 6 from 1 to 8
|
||||||
|
move 6 from 1 to 5
|
||||||
|
move 3 from 9 to 2
|
||||||
|
move 22 from 5 to 9
|
||||||
|
move 1 from 5 to 6
|
||||||
|
move 2 from 2 to 3
|
||||||
|
move 5 from 7 to 6
|
||||||
|
move 5 from 8 to 9
|
||||||
|
move 2 from 7 to 2
|
||||||
|
move 20 from 9 to 4
|
||||||
|
move 1 from 8 to 3
|
||||||
|
move 2 from 2 to 5
|
||||||
|
move 1 from 2 to 5
|
||||||
|
move 15 from 4 to 8
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 6 from 9 to 1
|
||||||
|
move 5 from 4 to 8
|
||||||
|
move 2 from 4 to 8
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 5 from 6 to 5
|
||||||
|
move 5 from 5 to 7
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 5 from 7 to 2
|
||||||
|
move 2 from 5 to 1
|
||||||
|
move 4 from 7 to 5
|
||||||
|
move 1 from 5 to 9
|
||||||
|
move 1 from 6 to 8
|
||||||
|
move 1 from 7 to 2
|
||||||
|
move 6 from 3 to 4
|
||||||
|
move 3 from 5 to 7
|
||||||
|
move 1 from 9 to 2
|
||||||
|
move 6 from 2 to 3
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 13 from 8 to 9
|
||||||
|
move 7 from 1 to 5
|
||||||
|
move 6 from 9 to 2
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 6 from 2 to 3
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 5 from 9 to 7
|
||||||
|
move 11 from 8 to 4
|
||||||
|
move 7 from 7 to 3
|
||||||
|
move 2 from 7 to 8
|
||||||
|
move 1 from 8 to 2
|
||||||
|
move 8 from 4 to 1
|
||||||
|
move 2 from 1 to 6
|
||||||
|
move 2 from 5 to 8
|
||||||
|
move 3 from 1 to 9
|
||||||
|
move 1 from 8 to 2
|
||||||
|
move 11 from 3 to 2
|
||||||
|
move 2 from 8 to 9
|
||||||
|
move 9 from 4 to 7
|
||||||
|
move 11 from 3 to 8
|
||||||
|
move 7 from 9 to 6
|
||||||
|
move 5 from 4 to 6
|
||||||
|
move 3 from 7 to 3
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 5 from 7 to 6
|
||||||
|
move 2 from 3 to 5
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 5 from 2 to 5
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 7 from 5 to 7
|
||||||
|
move 2 from 5 to 7
|
||||||
|
move 3 from 1 to 7
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 1 from 5 to 3
|
||||||
|
move 18 from 6 to 4
|
||||||
|
move 9 from 7 to 1
|
||||||
|
move 14 from 4 to 6
|
||||||
|
move 3 from 6 to 4
|
||||||
|
move 12 from 6 to 7
|
||||||
|
move 2 from 5 to 3
|
||||||
|
move 3 from 7 to 4
|
||||||
|
move 6 from 4 to 7
|
||||||
|
move 5 from 1 to 7
|
||||||
|
move 5 from 4 to 5
|
||||||
|
move 5 from 2 to 1
|
||||||
|
move 9 from 8 to 4
|
||||||
|
move 9 from 1 to 3
|
||||||
|
move 2 from 8 to 2
|
||||||
|
move 4 from 2 to 4
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 1 from 6 to 9
|
||||||
|
move 2 from 9 to 3
|
||||||
|
move 3 from 4 to 1
|
||||||
|
move 13 from 3 to 5
|
||||||
|
move 12 from 5 to 1
|
||||||
|
move 7 from 1 to 8
|
||||||
|
move 1 from 3 to 6
|
||||||
|
move 4 from 5 to 4
|
||||||
|
move 1 from 5 to 2
|
||||||
|
move 8 from 4 to 9
|
||||||
75
day_05/solve.nim
Normal file
75
day_05/solve.nim
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
import std/[strutils, sequtils, strformat, sugar]
|
||||||
|
|
||||||
|
let input = readFile("day_05/input.txt")
|
||||||
|
|
||||||
|
type Stacks = seq[seq[char]]
|
||||||
|
|
||||||
|
proc readStacks(data: string): Stacks =
|
||||||
|
let lines = data.splitLines()
|
||||||
|
let count = lines[lines.len - 1].split(" ").len
|
||||||
|
var stacks = newSeqWith[char](count, newSeq[char]())
|
||||||
|
for line in 0..lines.len-2:
|
||||||
|
for stack in 0..count-1:
|
||||||
|
let crate = lines[line][stack*4..stack*4+2]
|
||||||
|
if not crate.isEmptyOrWhitespace:
|
||||||
|
stacks[stack].insert(lines[line][stack*4+1..stack*4+1])
|
||||||
|
return stacks
|
||||||
|
|
||||||
|
#region debug-only
|
||||||
|
proc echoStacks(stacks: Stacks) =
|
||||||
|
var height = stacks.mapIt(it.len).max()
|
||||||
|
while height > 0:
|
||||||
|
height -= 1
|
||||||
|
var line = ""
|
||||||
|
for i in 0..stacks.len-1:
|
||||||
|
if height < stacks[i].len:
|
||||||
|
# let item = stacks[i][height]
|
||||||
|
line.add fmt"[{stacks[i][height]}] "
|
||||||
|
else:
|
||||||
|
line.add fmt" "
|
||||||
|
echo line
|
||||||
|
var line = ""
|
||||||
|
for i in 0..stacks.len-1:
|
||||||
|
line.add fmt" {i+1} "
|
||||||
|
echo line
|
||||||
|
#endregion debug-only
|
||||||
|
|
||||||
|
proc moveCrate(stacks: var Stacks, operation: string, preserveOrder: bool = false) =
|
||||||
|
let tokens = operation.split(" ")
|
||||||
|
assert tokens[0] == "move"
|
||||||
|
let amount = tokens[1].parseInt
|
||||||
|
assert tokens[2] == "from"
|
||||||
|
let fromStack = tokens[3].parseInt - 1
|
||||||
|
assert tokens[4] == "to"
|
||||||
|
let toStack = tokens[5].parseInt - 1
|
||||||
|
|
||||||
|
if preserveOrder:
|
||||||
|
var moving = (0..amount-1).toSeq.mapIt(stacks[fromStack].pop)
|
||||||
|
for crate in 0..amount-1:
|
||||||
|
stacks[toStack].add(moving.pop)
|
||||||
|
return
|
||||||
|
|
||||||
|
for i in 0..amount-1:
|
||||||
|
stacks[toStack].add(stacks[fromStack].pop)
|
||||||
|
|
||||||
|
proc solvePart1() =
|
||||||
|
let inputData = input.split("\n\n")
|
||||||
|
var stacks = readStacks(inputData[0])
|
||||||
|
for operation in inputData[1].splitLines:
|
||||||
|
stacks.moveCrate(operation)
|
||||||
|
|
||||||
|
stacks.echoStacks
|
||||||
|
echo stacks.mapIt(it[it.len - 1]).foldl(a & b, "")
|
||||||
|
|
||||||
|
proc solvePart2() =
|
||||||
|
let inputData = input.split("\n\n")
|
||||||
|
var stacks = readStacks(inputData[0])
|
||||||
|
for operation in inputData[1].splitLines:
|
||||||
|
stacks.moveCrate(operation, true)
|
||||||
|
|
||||||
|
stacks.echoStacks
|
||||||
|
echo stacks.mapIt(it[it.len - 1]).foldl(a & b, "")
|
||||||
|
|
||||||
|
if isMainModule:
|
||||||
|
solvePart1()
|
||||||
|
solvePart2()
|
||||||
Reference in New Issue
Block a user