Day 5
This commit is contained in:
parent
439885662e
commit
c92c25be29
|
@ -0,0 +1,502 @@
|
||||||
|
move 5 from 4 to 5
|
||||||
|
move 2 from 5 to 8
|
||||||
|
move 2 from 9 to 1
|
||||||
|
move 2 from 9 to 1
|
||||||
|
move 1 from 5 to 3
|
||||||
|
move 10 from 5 to 8
|
||||||
|
move 1 from 4 to 7
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 5 from 3 to 7
|
||||||
|
move 1 from 2 to 8
|
||||||
|
move 21 from 8 to 5
|
||||||
|
move 13 from 5 to 7
|
||||||
|
move 2 from 9 to 4
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 5 from 1 to 4
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 2 from 2 to 7
|
||||||
|
move 1 from 3 to 2
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 7 from 5 to 9
|
||||||
|
move 16 from 7 to 4
|
||||||
|
move 7 from 9 to 3
|
||||||
|
move 1 from 7 to 5
|
||||||
|
move 1 from 3 to 8
|
||||||
|
move 3 from 2 to 7
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 3 from 3 to 6
|
||||||
|
move 21 from 4 to 9
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 4 from 4 to 9
|
||||||
|
move 8 from 6 to 3
|
||||||
|
move 6 from 7 to 1
|
||||||
|
move 12 from 9 to 8
|
||||||
|
move 6 from 7 to 2
|
||||||
|
move 3 from 6 to 5
|
||||||
|
move 1 from 6 to 9
|
||||||
|
move 4 from 8 to 6
|
||||||
|
move 3 from 8 to 5
|
||||||
|
move 4 from 1 to 8
|
||||||
|
move 4 from 6 to 1
|
||||||
|
move 2 from 1 to 3
|
||||||
|
move 1 from 5 to 8
|
||||||
|
move 2 from 2 to 8
|
||||||
|
move 5 from 8 to 3
|
||||||
|
move 4 from 2 to 7
|
||||||
|
move 5 from 8 to 1
|
||||||
|
move 2 from 1 to 7
|
||||||
|
move 1 from 8 to 2
|
||||||
|
move 2 from 1 to 7
|
||||||
|
move 11 from 9 to 2
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 2 from 9 to 4
|
||||||
|
move 3 from 9 to 5
|
||||||
|
move 2 from 5 to 1
|
||||||
|
move 6 from 5 to 8
|
||||||
|
move 2 from 4 to 2
|
||||||
|
move 1 from 5 to 6
|
||||||
|
move 7 from 1 to 8
|
||||||
|
move 2 from 2 to 7
|
||||||
|
move 13 from 8 to 1
|
||||||
|
move 16 from 3 to 1
|
||||||
|
move 3 from 2 to 1
|
||||||
|
move 12 from 7 to 6
|
||||||
|
move 15 from 1 to 8
|
||||||
|
move 2 from 3 to 8
|
||||||
|
move 16 from 1 to 2
|
||||||
|
move 24 from 2 to 8
|
||||||
|
move 1 from 1 to 5
|
||||||
|
move 1 from 5 to 8
|
||||||
|
move 3 from 6 to 7
|
||||||
|
move 26 from 8 to 3
|
||||||
|
move 20 from 3 to 9
|
||||||
|
move 1 from 2 to 9
|
||||||
|
move 16 from 9 to 3
|
||||||
|
move 14 from 3 to 1
|
||||||
|
move 13 from 1 to 6
|
||||||
|
move 3 from 3 to 4
|
||||||
|
move 3 from 9 to 4
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 5 from 8 to 2
|
||||||
|
move 8 from 8 to 5
|
||||||
|
move 18 from 6 to 1
|
||||||
|
move 4 from 8 to 5
|
||||||
|
move 6 from 4 to 1
|
||||||
|
move 2 from 2 to 5
|
||||||
|
move 5 from 3 to 8
|
||||||
|
move 5 from 8 to 7
|
||||||
|
move 2 from 5 to 8
|
||||||
|
move 5 from 5 to 4
|
||||||
|
move 3 from 2 to 8
|
||||||
|
move 22 from 1 to 2
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 5 from 8 to 2
|
||||||
|
move 2 from 5 to 2
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 5 from 5 to 2
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 5 from 4 to 1
|
||||||
|
move 6 from 6 to 9
|
||||||
|
move 3 from 1 to 9
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 8 from 9 to 6
|
||||||
|
move 6 from 7 to 1
|
||||||
|
move 5 from 6 to 5
|
||||||
|
move 27 from 2 to 1
|
||||||
|
move 4 from 5 to 7
|
||||||
|
move 9 from 1 to 5
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 3 from 6 to 2
|
||||||
|
move 9 from 2 to 1
|
||||||
|
move 2 from 7 to 2
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 10 from 5 to 9
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 25 from 1 to 8
|
||||||
|
move 6 from 7 to 4
|
||||||
|
move 11 from 1 to 7
|
||||||
|
move 3 from 8 to 1
|
||||||
|
move 3 from 2 to 6
|
||||||
|
move 3 from 8 to 9
|
||||||
|
move 11 from 8 to 6
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 12 from 6 to 4
|
||||||
|
move 13 from 4 to 5
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 3 from 7 to 5
|
||||||
|
move 5 from 8 to 7
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 5 from 1 to 6
|
||||||
|
move 3 from 6 to 4
|
||||||
|
move 3 from 8 to 6
|
||||||
|
move 2 from 5 to 2
|
||||||
|
move 12 from 5 to 9
|
||||||
|
move 5 from 6 to 2
|
||||||
|
move 2 from 5 to 9
|
||||||
|
move 6 from 4 to 9
|
||||||
|
move 11 from 7 to 3
|
||||||
|
move 1 from 2 to 5
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 2 from 4 to 7
|
||||||
|
move 2 from 6 to 8
|
||||||
|
move 5 from 3 to 6
|
||||||
|
move 2 from 7 to 2
|
||||||
|
move 2 from 2 to 9
|
||||||
|
move 1 from 2 to 9
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 35 from 9 to 7
|
||||||
|
move 2 from 8 to 7
|
||||||
|
move 3 from 3 to 8
|
||||||
|
move 5 from 2 to 4
|
||||||
|
move 3 from 3 to 7
|
||||||
|
move 2 from 4 to 7
|
||||||
|
move 4 from 6 to 5
|
||||||
|
move 4 from 5 to 9
|
||||||
|
move 3 from 4 to 5
|
||||||
|
move 1 from 8 to 3
|
||||||
|
move 4 from 9 to 8
|
||||||
|
move 1 from 9 to 6
|
||||||
|
move 38 from 7 to 2
|
||||||
|
move 1 from 3 to 5
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 4 from 7 to 3
|
||||||
|
move 3 from 6 to 1
|
||||||
|
move 22 from 2 to 7
|
||||||
|
move 1 from 5 to 8
|
||||||
|
move 7 from 8 to 4
|
||||||
|
move 8 from 2 to 8
|
||||||
|
move 3 from 5 to 1
|
||||||
|
move 4 from 3 to 9
|
||||||
|
move 1 from 8 to 3
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 2 from 2 to 3
|
||||||
|
move 5 from 8 to 9
|
||||||
|
move 3 from 9 to 1
|
||||||
|
move 2 from 1 to 7
|
||||||
|
move 6 from 2 to 3
|
||||||
|
move 6 from 3 to 1
|
||||||
|
move 2 from 3 to 6
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 14 from 7 to 2
|
||||||
|
move 4 from 1 to 6
|
||||||
|
move 8 from 1 to 3
|
||||||
|
move 4 from 3 to 6
|
||||||
|
move 3 from 9 to 5
|
||||||
|
move 1 from 8 to 6
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 9 from 7 to 1
|
||||||
|
move 8 from 2 to 4
|
||||||
|
move 4 from 2 to 9
|
||||||
|
move 2 from 2 to 1
|
||||||
|
move 3 from 5 to 8
|
||||||
|
move 1 from 8 to 6
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 3 from 9 to 5
|
||||||
|
move 2 from 9 to 5
|
||||||
|
move 4 from 3 to 9
|
||||||
|
move 3 from 6 to 3
|
||||||
|
move 3 from 6 to 9
|
||||||
|
move 9 from 4 to 1
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 3 from 3 to 6
|
||||||
|
move 2 from 7 to 4
|
||||||
|
move 4 from 8 to 5
|
||||||
|
move 7 from 5 to 6
|
||||||
|
move 19 from 1 to 9
|
||||||
|
move 5 from 9 to 3
|
||||||
|
move 2 from 1 to 6
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 4 from 3 to 2
|
||||||
|
move 21 from 9 to 7
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 1 from 9 to 1
|
||||||
|
move 1 from 1 to 8
|
||||||
|
move 16 from 7 to 6
|
||||||
|
move 24 from 6 to 5
|
||||||
|
move 7 from 4 to 5
|
||||||
|
move 1 from 8 to 3
|
||||||
|
move 2 from 2 to 8
|
||||||
|
move 31 from 5 to 8
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 2 from 6 to 9
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 3 from 7 to 9
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 2 from 3 to 5
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 24 from 8 to 6
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 30 from 6 to 1
|
||||||
|
move 2 from 5 to 2
|
||||||
|
move 1 from 6 to 9
|
||||||
|
move 6 from 9 to 7
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 23 from 1 to 3
|
||||||
|
move 21 from 3 to 4
|
||||||
|
move 4 from 2 to 6
|
||||||
|
move 3 from 6 to 1
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 4 from 1 to 9
|
||||||
|
move 3 from 9 to 6
|
||||||
|
move 8 from 1 to 6
|
||||||
|
move 4 from 8 to 5
|
||||||
|
move 2 from 7 to 5
|
||||||
|
move 7 from 4 to 3
|
||||||
|
move 3 from 4 to 9
|
||||||
|
move 9 from 3 to 9
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 6 from 5 to 8
|
||||||
|
move 14 from 6 to 2
|
||||||
|
move 4 from 8 to 4
|
||||||
|
move 7 from 4 to 5
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 6 from 4 to 3
|
||||||
|
move 13 from 2 to 6
|
||||||
|
move 5 from 3 to 7
|
||||||
|
move 1 from 3 to 8
|
||||||
|
move 1 from 8 to 2
|
||||||
|
move 4 from 8 to 3
|
||||||
|
move 6 from 6 to 4
|
||||||
|
move 2 from 2 to 8
|
||||||
|
move 5 from 4 to 7
|
||||||
|
move 3 from 7 to 5
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 2 from 3 to 9
|
||||||
|
move 3 from 7 to 3
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 3 from 4 to 1
|
||||||
|
move 6 from 6 to 1
|
||||||
|
move 2 from 7 to 5
|
||||||
|
move 1 from 3 to 5
|
||||||
|
move 11 from 9 to 4
|
||||||
|
move 9 from 4 to 5
|
||||||
|
move 3 from 3 to 4
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 2 from 8 to 1
|
||||||
|
move 9 from 1 to 8
|
||||||
|
move 22 from 5 to 8
|
||||||
|
move 2 from 1 to 3
|
||||||
|
move 3 from 4 to 6
|
||||||
|
move 14 from 8 to 9
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 19 from 9 to 3
|
||||||
|
move 3 from 9 to 4
|
||||||
|
move 2 from 7 to 2
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 1 from 3 to 8
|
||||||
|
move 8 from 3 to 1
|
||||||
|
move 2 from 9 to 6
|
||||||
|
move 1 from 2 to 5
|
||||||
|
move 3 from 4 to 9
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 20 from 8 to 3
|
||||||
|
move 4 from 9 to 5
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 26 from 3 to 5
|
||||||
|
move 1 from 8 to 3
|
||||||
|
move 8 from 1 to 4
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 1 from 6 to 7
|
||||||
|
move 4 from 5 to 3
|
||||||
|
move 3 from 4 to 2
|
||||||
|
move 5 from 5 to 3
|
||||||
|
move 2 from 2 to 6
|
||||||
|
move 3 from 3 to 5
|
||||||
|
move 2 from 4 to 8
|
||||||
|
move 5 from 3 to 9
|
||||||
|
move 5 from 9 to 8
|
||||||
|
move 19 from 5 to 9
|
||||||
|
move 1 from 5 to 2
|
||||||
|
move 2 from 7 to 1
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 13 from 9 to 3
|
||||||
|
move 8 from 6 to 2
|
||||||
|
move 10 from 3 to 5
|
||||||
|
move 14 from 5 to 4
|
||||||
|
move 7 from 8 to 4
|
||||||
|
move 1 from 6 to 2
|
||||||
|
move 6 from 3 to 8
|
||||||
|
move 4 from 9 to 7
|
||||||
|
move 2 from 9 to 8
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 3 from 2 to 7
|
||||||
|
move 1 from 5 to 3
|
||||||
|
move 7 from 8 to 6
|
||||||
|
move 5 from 6 to 2
|
||||||
|
move 8 from 4 to 5
|
||||||
|
move 3 from 5 to 8
|
||||||
|
move 3 from 8 to 6
|
||||||
|
move 5 from 7 to 9
|
||||||
|
move 5 from 3 to 6
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 17 from 4 to 7
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 12 from 7 to 8
|
||||||
|
move 3 from 1 to 4
|
||||||
|
move 2 from 4 to 6
|
||||||
|
move 8 from 6 to 1
|
||||||
|
move 4 from 6 to 3
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 5 from 5 to 8
|
||||||
|
move 4 from 7 to 1
|
||||||
|
move 3 from 2 to 6
|
||||||
|
move 2 from 5 to 1
|
||||||
|
move 6 from 1 to 6
|
||||||
|
move 4 from 3 to 5
|
||||||
|
move 4 from 5 to 3
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 3 from 3 to 2
|
||||||
|
move 17 from 8 to 4
|
||||||
|
move 6 from 6 to 3
|
||||||
|
move 14 from 4 to 9
|
||||||
|
move 1 from 3 to 8
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 3 from 8 to 3
|
||||||
|
move 5 from 2 to 5
|
||||||
|
move 6 from 1 to 7
|
||||||
|
move 2 from 6 to 4
|
||||||
|
move 4 from 5 to 7
|
||||||
|
move 1 from 1 to 5
|
||||||
|
move 1 from 6 to 3
|
||||||
|
move 10 from 7 to 4
|
||||||
|
move 1 from 5 to 4
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 15 from 4 to 5
|
||||||
|
move 3 from 3 to 1
|
||||||
|
move 6 from 2 to 6
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 2 from 4 to 7
|
||||||
|
move 2 from 7 to 8
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 2 from 1 to 7
|
||||||
|
move 1 from 7 to 2
|
||||||
|
move 12 from 9 to 1
|
||||||
|
move 4 from 9 to 5
|
||||||
|
move 4 from 6 to 2
|
||||||
|
move 1 from 7 to 3
|
||||||
|
move 6 from 2 to 4
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 2 from 4 to 2
|
||||||
|
move 11 from 1 to 7
|
||||||
|
move 3 from 1 to 4
|
||||||
|
move 17 from 5 to 6
|
||||||
|
move 15 from 6 to 4
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 10 from 4 to 1
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 2 from 6 to 5
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 4 from 5 to 6
|
||||||
|
move 4 from 1 to 2
|
||||||
|
move 6 from 6 to 7
|
||||||
|
move 2 from 2 to 6
|
||||||
|
move 9 from 4 to 9
|
||||||
|
move 6 from 1 to 2
|
||||||
|
move 3 from 4 to 1
|
||||||
|
move 10 from 9 to 8
|
||||||
|
move 4 from 2 to 1
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 5 from 8 to 6
|
||||||
|
move 1 from 2 to 7
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 2 from 6 to 9
|
||||||
|
move 13 from 7 to 2
|
||||||
|
move 5 from 7 to 5
|
||||||
|
move 2 from 5 to 2
|
||||||
|
move 1 from 4 to 5
|
||||||
|
move 4 from 8 to 4
|
||||||
|
move 17 from 2 to 6
|
||||||
|
move 3 from 4 to 6
|
||||||
|
move 2 from 9 to 1
|
||||||
|
move 7 from 6 to 8
|
||||||
|
move 1 from 5 to 2
|
||||||
|
move 1 from 4 to 1
|
||||||
|
move 2 from 9 to 4
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 4 from 3 to 7
|
||||||
|
move 2 from 8 to 5
|
||||||
|
move 3 from 7 to 5
|
||||||
|
move 10 from 5 to 8
|
||||||
|
move 2 from 2 to 4
|
||||||
|
move 6 from 1 to 2
|
||||||
|
move 4 from 6 to 3
|
||||||
|
move 8 from 2 to 6
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 5 from 4 to 5
|
||||||
|
move 7 from 6 to 7
|
||||||
|
move 5 from 3 to 5
|
||||||
|
move 5 from 5 to 2
|
||||||
|
move 4 from 8 to 1
|
||||||
|
move 6 from 1 to 6
|
||||||
|
move 3 from 3 to 2
|
||||||
|
move 22 from 6 to 2
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 8 from 8 to 6
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 2 from 5 to 7
|
||||||
|
move 4 from 8 to 5
|
||||||
|
move 7 from 6 to 7
|
||||||
|
move 2 from 6 to 4
|
||||||
|
move 14 from 2 to 1
|
||||||
|
move 7 from 1 to 3
|
||||||
|
move 12 from 7 to 3
|
||||||
|
move 1 from 4 to 3
|
||||||
|
move 2 from 5 to 8
|
||||||
|
move 2 from 8 to 1
|
||||||
|
move 1 from 4 to 3
|
||||||
|
move 6 from 2 to 9
|
||||||
|
move 6 from 9 to 2
|
||||||
|
move 2 from 2 to 7
|
||||||
|
move 6 from 7 to 5
|
||||||
|
move 13 from 3 to 5
|
||||||
|
move 5 from 2 to 6
|
||||||
|
move 5 from 6 to 1
|
||||||
|
move 2 from 3 to 6
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 3 from 1 to 9
|
||||||
|
move 6 from 2 to 7
|
||||||
|
move 1 from 2 to 3
|
||||||
|
move 24 from 5 to 2
|
||||||
|
move 7 from 3 to 7
|
||||||
|
move 13 from 7 to 9
|
||||||
|
move 4 from 1 to 9
|
||||||
|
move 4 from 1 to 6
|
||||||
|
move 1 from 5 to 6
|
||||||
|
move 16 from 9 to 5
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 1 from 5 to 2
|
||||||
|
move 5 from 1 to 3
|
||||||
|
move 11 from 2 to 1
|
||||||
|
move 4 from 9 to 6
|
||||||
|
move 1 from 4 to 7
|
||||||
|
move 2 from 3 to 4
|
||||||
|
move 6 from 6 to 9
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 2 from 9 to 4
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 4 from 2 to 9
|
||||||
|
move 8 from 9 to 2
|
||||||
|
move 3 from 3 to 2
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 5 from 1 to 7
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 2 from 1 to 9
|
||||||
|
move 1 from 8 to 7
|
||||||
|
move 6 from 5 to 3
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 5 from 2 to 3
|
||||||
|
move 4 from 1 to 5
|
||||||
|
move 4 from 7 to 1
|
||||||
|
move 8 from 5 to 8
|
4
lib.rkt
4
lib.rkt
|
@ -306,8 +306,8 @@
|
||||||
(vector-ref vec (sub1 (vector-length vec))))
|
(vector-ref vec (sub1 (vector-length vec))))
|
||||||
|
|
||||||
;; vector-ref* : (vectorof any) -> number -> any -> any
|
;; vector-ref* : (vectorof any) -> number -> any -> any
|
||||||
;; Same as list-ref, except a default value is provided
|
;; Same as vector-ref, except a default value is provided
|
||||||
;; if the index is beyond the length of the list.
|
;; if the index is beyond the length of the vector.
|
||||||
(define (vector-ref* vec pos failure-result)
|
(define (vector-ref* vec pos failure-result)
|
||||||
(if (>= pos (vector-length vec))
|
(if (>= pos (vector-length vec))
|
||||||
failure-result
|
failure-result
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
#lang curly-fn racket
|
||||||
|
|
||||||
|
(require "../lib.rkt")
|
||||||
|
|
||||||
|
(define input
|
||||||
|
(for/list ([instr (problem-input 5)])
|
||||||
|
(map string->number (regexp-match* #px"\\d+" instr))))
|
||||||
|
|
||||||
|
;; crates? = (listof symbol?)
|
||||||
|
;; supplies? = (listof crates?)
|
||||||
|
;; stack? = (integer-in 1 9)
|
||||||
|
|
||||||
|
;; initial : supplies?
|
||||||
|
(define initial
|
||||||
|
(list '(||) ;; dummy stack since they start at 1
|
||||||
|
'(W L S)
|
||||||
|
'(Q N T J)
|
||||||
|
'(J F H C S)
|
||||||
|
'(B G N W M R T)
|
||||||
|
'(B Q H D S L R T)
|
||||||
|
'(L R H F V B J M)
|
||||||
|
'(M J N R W D)
|
||||||
|
'(J D N H F T Z B)
|
||||||
|
'(T F B N Q L H)))
|
||||||
|
|
||||||
|
;; squish : crates? -> string?
|
||||||
|
(define (squish symbols)
|
||||||
|
(~>> symbols
|
||||||
|
(map symbol->string)
|
||||||
|
(apply string-append)))
|
||||||
|
|
||||||
|
;; move : supplies? (crates? -> crates?) -> number? stack? stack? -> supplies?
|
||||||
|
(define ((move crates f) num from to)
|
||||||
|
(define transfer (take (list-ref crates from) num))
|
||||||
|
(~> crates
|
||||||
|
(list-update from #{drop % num})
|
||||||
|
(list-update to #{append (f transfer) %})))
|
||||||
|
|
||||||
|
;; moves : (crates? -> crates?) -> string?
|
||||||
|
(define (moves f)
|
||||||
|
(for/fold ([crates initial]
|
||||||
|
#:result (squish (map first crates)))
|
||||||
|
([instr input])
|
||||||
|
(apply (move crates f) instr)))
|
||||||
|
|
||||||
|
(define part1
|
||||||
|
(moves reverse))
|
||||||
|
|
||||||
|
(define part2
|
||||||
|
(moves identity))
|
||||||
|
|
||||||
|
(show-solution part1 part2)
|
Loading…
Reference in New Issue