Compare commits
7 Commits
0dcd675042
...
21a8457a32
| Author | SHA1 | Date | |
|---|---|---|---|
| 21a8457a32 | |||
| 1b9a66f49b | |||
| deec2b4981 | |||
| e21df10751 | |||
| 0abdabad64 | |||
| c2717ae9ab | |||
| 0fb22d2358 |
200
day10/input
Normal file
200
day10/input
Normal file
@ -0,0 +1,200 @@
|
|||||||
|
[.#.#] (0,2,3) (1,3) (2,3) (0,1,2) (0) {31,4,31,29}
|
||||||
|
[#..#..##.#] (1,2,3,4,5,6,7,8,9) (2,5,6,7) (0,1,3,5,7,8) (0,2,3,5,6,8,9) (0,1,3,5,6,7,8,9) (4,7) (3,5,7) (4,6) (1,2,4) (0,1,2,4,5,7,8,9) {34,50,61,55,68,80,58,88,50,48}
|
||||||
|
[....#] (0,2,3,4) (1,2) (0,2,3) (0,1) (0,4) (0,2,4) {56,27,37,17,27}
|
||||||
|
[#..#.###.] (2,7) (0,2,3,5,6) (1,2,4) (0,1,8) (0,1,3,4) (4,5,7) (0,1,3,5,6,7,8) (2,3,4,5,7,8) {162,179,40,30,44,38,18,52,161}
|
||||||
|
[#.###] (1,2,4) (2,4) (0,1) (1,3,4) (0,1,4) {10,33,28,15,44}
|
||||||
|
[#.#.] (1,2,3) (0,2) {4,1,5,1}
|
||||||
|
[.###..###.] (2,3,4,5,8) (0,2,3,5,7,8,9) (2,4,5,8,9) (1,7) (2,5,6,9) (1,2,4,5,6,7,8,9) (2,4,5,7) (1,5,6,9) {16,33,62,32,46,78,30,46,49,49}
|
||||||
|
[#.##.#.#.#] (0,1,2,3,4,5,8) (1,8) (1,4,5,6,8,9) (1,2,5,8,9) (0,1,2,3,4,5,6,8,9) (2,3,4,6,8,9) (5,7,9) (0,1,2,3,4,5,6,7,8) (0,2,4,5,6,7,8,9) {39,76,63,40,67,92,61,46,93,76}
|
||||||
|
[###.#..] (0,1,3,5,6) (1,4,5,6) (2,6) (1,3,6) (1,3,4,5,6) {1,27,6,11,20,21,33}
|
||||||
|
[###..#.#] (1,2,3,4,5,6) (2,3) (0,2,4,6) (0,5,6) (3,5) (0,1,2,4,5,7) {21,10,16,2,16,17,15,8}
|
||||||
|
[.#.####...] (0,1,4,6,7,8) (1,5,8,9) (1,6) (0,2,4,5,9) (1,3,4,6,8) (0,4,5,8,9) (2,6,7,8) (1,2,3,5,6,7,8) (0,2,6,7) (1,4,5,8,9) (1,2,3,4,5,8,9) (0,1,2,3,4,5,7,8) (1,3,5,6,8) {29,77,54,44,63,72,44,37,84,49}
|
||||||
|
[..#...#] (0,2,3,5,6) (2,5) (1,4,5) (1,2,3,5) (1,2) (2,3,5,6) {9,199,39,17,182,204,17}
|
||||||
|
[##.#.#] (1) (0,1,2,3) (0,1,2,5) (3,4) (0,4) (1,5) (2,5) {39,42,22,21,24,26}
|
||||||
|
[......###.] (0,2,3,4,6,8) (5,8,9) (2,6,7) (1,2,5,6,7) (1,2,3,4,5,7,8,9) (0,5) (0,5,6) (1,4,5,6,8,9) (2,8) (3,5,7,9) (0,1,6) {53,45,19,12,24,193,66,21,153,155}
|
||||||
|
[.##..#] (1,2,5) (0,1,2,3) (0,4,5) (0,3) {17,21,21,17,0,5}
|
||||||
|
[####.#.#.#] (3,4,6,8) (1,3,4,6,8) (2,3,5,6) (0,1,6,7,8,9) (0,1,2,8) (0,1,2,3,7,8,9) (1,2,4,6) (0,4,5,6,9) (0,1,2,3,5,7,9) (0,3,4,5,6,7,9) {51,38,54,49,28,47,49,24,31,37}
|
||||||
|
[...##..] (1,4) (2,3,4) (0,1,2,4,5,6) (0,5,6) (1,2,3,4,5,6) {18,38,32,28,48,36,36}
|
||||||
|
[.##.####] (0,1,2) (0,7) (0,1,2,6,7) (1,3,4,6,7) (2,4,5,6,7) (0,1,3,4,6,7) (3,7) (2,7) (0,1,2,3,5,6,7) (0,4,7) {225,72,54,66,44,18,71,271}
|
||||||
|
[####...#.#] (2,6,8,9) (0,2,4,7) (0,1,6,7) (1,2,6,7,9) (0,1,2,3,4,6,7) (0,2,4) (0,1,2,4,5,6,8) (3,5,6,8) (0,6,9) (0,1,4,5,6) (0,1,4,5,6,7) (3,8) (1,6,7) {70,85,46,29,50,35,103,69,25,22}
|
||||||
|
[#...#..##.] (1,2,3,4,6,9) (4,9) (1,2,3,4,5,6,7) (1,3,4,5,6,7,9) (1,3,4,8,9) (2,3,8) (1,4,5,6,7) (1,4,5) (1,2,3,6,7,9) (0,1,2,3,4,5,7,8) (0,4,5,7) (0,1,2,4,6,7,8) {14,78,67,67,84,35,68,57,17,62}
|
||||||
|
[#.##.##..#] (1,2,3,4,6,7,8,9) (0,3,4,5,6,7,8) (1,2,3,4,6,7,9) (0,3,5,6,7,9) (0,1,4,5,6,7) (2,3,4,7,8) (0,1,3,4,5,7) (0,1,3,4,5,6,8,9) (0,1,3,9) (0,1,2,4,5,7,8,9) (1,2) (6,9) {92,75,35,75,73,73,80,84,42,88}
|
||||||
|
[#......#..] (2,9) (2,3,4,5,6,8,9) (0,1,2,3,4,5,6,7,9) (0,2,3,4,5,6,7,8,9) (6) (0,1,2,9) (0,2,3,4,5,6,8,9) (0,7,8) {61,32,72,42,42,42,47,31,45,72}
|
||||||
|
[#.#.#] (0,1,2,3,4) (0,2,4) (0,2,3) {29,17,29,20,26}
|
||||||
|
[....#] (0,2) (2) (1,2,3) (0,4) (4) (0,1,3,4) {10,10,136,10,12}
|
||||||
|
[.#...] (1,2,3) (3,4) (2,3) (0,2,4) (1,3,4) (0,4) (1,2) {29,19,33,36,42}
|
||||||
|
[#####] (0,1,2,4) (0,1,2) (3) (1,3,4) (2,3) (0,1,4) (1,2,3) {37,61,65,42,32}
|
||||||
|
[#.#..#.#] (3,5,6) (0,2,3,5) (2,5,6,7) (2,3) (1,3,5) (0,1,2,3,4,5,7) (2,4,6) {21,30,53,56,28,72,49,28}
|
||||||
|
[#.##..#.] (1,2,3,5,7) (5,6) (1,2,3,4,5,6,7) (0,5,6) (3,4,5,6) (2,5) (2,4,5,6,7) (3,5,6,7) (0,1,2,4,6,7) {12,23,50,200,198,246,224,38}
|
||||||
|
[.#.#..#] (1,5) (4,5) (0,1,2,3,4,6) (1,2,3,5,6) (0,1,2,3) (2,6) {23,44,43,27,16,24,33}
|
||||||
|
[..#...#] (0,3,4,5,6) (1,2,5,6) (0,1,3,5,6) (3,4) (1,4,6) (0,1,3,4) (2,4,5,6) (0,1,2,3,4,5) (0) {55,47,38,59,73,61,50}
|
||||||
|
[####...] (1,2,3,5) (4,5,6) (0,6) (0,1,2,3) (0,1,5,6) (1,2,3,4) (0,1,3) {26,39,17,23,13,22,19}
|
||||||
|
[##.#] (1) (0,1,3) (0,3) (2,3) {33,15,15,48}
|
||||||
|
[#.##] (1,2) (2,3) (2) (0) (1,2,3) (0,2,3) {20,9,43,36}
|
||||||
|
[..###..###] (0,1,2,3,4,5,7,9) (4,5) (2,3,4,7,8,9) (0,1,2,5,6) (0,3,5,6,7) (0,2,3,4,6,7,8,9) (0,1,4,6,7,8,9) (0,3,4,5,8,9) (0,1,2,3,4,6,7,8,9) (1,3,7,8,9) (1,3,4,5,6,7) {64,39,47,79,241,231,47,69,35,55}
|
||||||
|
[.#####] (0,1,3) (0,4,5) (0,1,3,5) (0,2,4,5) {40,23,3,23,17,22}
|
||||||
|
[.#..##..] (0,1,3,4,5,7) (0,2) (1) (0,1,2,4,5) (2,4,5,6,7) (0,1,2,5,6) (2,3,4,5) (0,2,3,5,6,7) (1,3,4,5,6,7) {71,67,86,73,89,106,49,66}
|
||||||
|
[.#.#.] (0,3,4) (2,3) (1,4) (0,1,2,3,4) {17,156,18,20,158}
|
||||||
|
[###.] (2,3) (0,1,3) (0,1) {14,14,11,12}
|
||||||
|
[..#...] (1,4,5) (0,1,2,3,4) (2,5) (0,2,4) (0,5) (1,2,3,5) (0) {31,25,30,24,14,31}
|
||||||
|
[#.##.] (0,1) (3) (1,2,3) (0,2,3) (1,4) (0,2) {165,164,35,44,10}
|
||||||
|
[#.#.#.] (1,2,5) (1,2,4,5) (1,3,5) (0,3,4) {1,33,19,15,16,33}
|
||||||
|
[#..#...] (1,3,4,5,6) (1,2,3,4,5) (0,2,5,6) (0,1,2) (0,4,5) (0,1,2,4,5) {44,51,39,30,56,63,26}
|
||||||
|
[..##] (0,1,2) (0,1) (0,2) (0,3) {48,15,25,14}
|
||||||
|
[#..#.....] (0,3,4,5,7,8) (2,5) (3,5,6) (4,6,7,8) (2,3,4,5) (2,3,4,7) (1,3) (0,5,7,8) (0,2,4,5,6,7) (0,2,3,7) (5,6,7) {35,16,53,64,58,76,37,69,36}
|
||||||
|
[.#....] (0,1,4) (0,2,5) (1,2,4,5) (1,2,3) (0,1,3) (2,4) (0,2,3) (1,3) {60,49,47,39,29,25}
|
||||||
|
[#.#.] (0,1,3) (0,2) (0,1,2) (1,3) {52,37,32,25}
|
||||||
|
[#.#..#.#] (1,2,5,6) (0,1,2,3,4,7) (1,2,4,5,6,7) (1,2,3,4,5,6) (2,3,4,5,6,7) (0,2,3,4,5,7) (0,4,5,7) (2,3,5,6) (0,1) (0,4,6,7) {160,44,65,54,178,185,72,164}
|
||||||
|
[.#####...] (3,5) (0,1,2,4,5,6,7,8) (1,2,3,4,6,7,8) (0,3,4,5,6,7) (1,2,3,4,5,6) (0,1,2,4,5,7,8) (5) {41,48,48,42,60,52,46,60,48}
|
||||||
|
[..#.#.#] (0,4,5,6) (0,3,5) (2,6) (1,6) (0,2,3,4,5,6) {23,11,29,21,20,23,42}
|
||||||
|
[##.#.#.##.] (3,4,6) (0,1,4,6,7,8,9) (0,1,2,5,7,9) (1,3,7,8,9) (1,2,3,4,5,7,8,9) (0,1,2,3,4,7) (1,2,3,8) (0,1,2,4,5,8) (1,3,6,9) (1,3,7,9) (3,5) (0,1,2,3,4,6,7,8,9) (0,1,4,5,8,9) {167,207,67,89,174,32,150,167,166,169}
|
||||||
|
[#..#.##] (1,2,3,4) (1,5) (2,3,5) (1,2) (0,5) (2,5,6) (1,3,4,6) {2,22,32,28,11,23,6}
|
||||||
|
[##.#.] (0,4) (1,2) (0,2,3) (3,4) (1,3) (2,3) (0,2,3,4) {40,16,52,71,29}
|
||||||
|
[#........] (0,1,3,4,7) (0,2,5,7,8) (0,3,6,7,8) (0,2,3,4,6,7,8) (1,2,5,6,7) (0,1,2) (1,3,4,7) (4,6) (0,2) {52,41,47,43,36,22,35,65,33}
|
||||||
|
[...##.#.##] (0,1,3,4,5,6,7,8) (0,1,3,4,7,8) (0,1,2,4,6,7,8,9) (0,1,8) (0,1,2,3,4,5) (8,9) (2,5) (3) (1,3,4,5,6,7,8,9) (4,8) (1,2,4,5,6,7,8) {83,121,67,77,123,90,72,91,127,48}
|
||||||
|
[.##.#.] (0,5) (0,1,2,3,5) (0,1,4,5) (0,1,4) (1,3) {31,37,9,20,17,22}
|
||||||
|
[###..#...] (1,3,4) (0,2,3,6,7) (0,2,3,5,7,8) (0,2,7) (0,2,3,5,6,7,8) (0,1,4,6,7,8) (0,1,2,3,5,6) (0,1,2,4,5,7,8) {73,54,71,63,40,60,35,59,48}
|
||||||
|
[.#.##.#] (0,2,3,5,6) (4,5) (0,1,4,5,6) (1,2,5) (0,1,2,3) (2,5,6) {216,216,242,216,0,42,26}
|
||||||
|
[.###..#.#.] (1,2,5,6,7,8) (1,5,7,9) (1,3,4,5,8,9) (0,5,7) (1,2,3,4,8,9) (2,3,5,8,9) (1,2,4,5,6,7) (1,3,4,9) (2,3,4,5,7,9) (1,5,9) (0,2,6) {17,74,36,44,45,76,12,38,49,67}
|
||||||
|
[##.#####] (0,2,3,4,5,6,7) (0,1,5) (0,2,6) (0,2,3,4,5,6) (0,1,3,4,5,6,7) (0,6,7) (0,1,2,3,6,7) {107,49,64,63,47,62,92,54}
|
||||||
|
[...#.##] (4,5) (0,3,4) (0,1,4,6) (0,2,3,5) (1,5) (0,1,2,3,5) {65,43,34,54,34,49,11}
|
||||||
|
[###.#.##] (1,2,3,5,6) (1,4,5) (1,3,4,7) (2,4,5,6) (0,1,2,4,6,7) (1,2) (0,5,7) {19,38,10,21,30,40,7,34}
|
||||||
|
[#######.] (1,3,5) (1,3,4,5,7) (1,2,3,4,5,7) (0,4,6,7) (2,3,7) (1,3,4,6,7) (1,4,5,6,7) (0,1,6) (0,2,3,4,6,7) {23,198,30,208,50,183,41,55}
|
||||||
|
[.##.#...#] (1,2,3,6,8) (0,1,3,4,6) (0,7) (0,4,6) (5,7) (1,2,3,5,6,7,8) (1,2,3) (0,2,3,4,5,7) (0,3,4,5,6,7,8) (3,7) {217,61,201,236,204,199,80,217,46}
|
||||||
|
[..###] (2,3,4) (0,1,4) (0,1) (0,1,2,4) (1,2,4) {222,242,228,14,241}
|
||||||
|
[..#.#..##] (1,3,6,7,8) (1,3,4,5,6,8) (0,1,4,5,6,7,8) (0,3,5,6,7,8) (0,1,2,6,7) (0,1,3,4,6,7,8) (1,3,4,5,7) {46,73,18,66,38,38,73,76,55}
|
||||||
|
[#.###] (0,2,3,4) (1,2,4) (0,1,2,4) {135,128,147,19,147}
|
||||||
|
[..##] (0,1,2) (1) (0,3) (0,2) {34,34,22,12}
|
||||||
|
[.##...#.] (0,2,5,7) (2,3) (4) (0,4,5,6,7) (0,1,2,3,4,5,6,7) (0,2,3,4,5,6) {32,9,39,34,29,32,27,14}
|
||||||
|
[.#..#.#] (0,2,6) (0,1,3,5) (0,1,3,5,6) (1,3,4) (0,3,4,5,6) (1,4,6) (0,3) (0,1,2,3,5) {63,42,20,59,14,36,23}
|
||||||
|
[.#.#####.#] (0,2,3,4,6,7,8,9) (0,2,6,8) (0,1,2,6,8,9) (2,3,4,5) (2,3,4,5,6,7,8,9) (0,2) (1,2,3,4,6,9) (0,2,5,7,8) {40,27,70,38,38,23,56,26,49,48}
|
||||||
|
[#.#.#.#] (0,5,6) (0,1,2,3,4) (0,1,2,5,6) (0,1,3,4,6) (0,2,4,6) (5) (0,1,4) (0,1,2,3,4,5) (4) {48,38,24,9,35,41,23}
|
||||||
|
[###....#..] (0,2,4,9) (0,7) (1,2,4,6) (1,4,5,7,8) (0,1,3,5,7,8,9) (0,2,5) (0,1,2,3,6,7) (1,2,4,5,7,9) (5,6,8,9) (0,4,6,8) (0,1,2,3,4,5,6,8,9) (1,2,3,4,5,6) {197,55,181,40,62,198,45,41,53,50}
|
||||||
|
[.##....##] (1,2,4,7) (0,2,3,4,6,7,8) (2,4,6) (0,2,3,6,7,8) (1,2,8) (3) (0,1,2,3,5,7,8) (0,2,5,6) {55,42,84,51,34,35,42,51,51}
|
||||||
|
[.#####.] (1,3,4,6) (1,3,4) (1,3,4,5) (1,2,3,4,5) (0,1,2,4) (4,5) (0,1,2,3,5) (1,6) {17,76,29,49,66,47,31}
|
||||||
|
[.#..] (3) (0,3) (1,2) (0,1,3) (1) (0) {54,44,17,39}
|
||||||
|
[#.##] (0,1,3) (0,2,3) {27,16,11,27}
|
||||||
|
[#.....] (3,5) (0,1,3,4,5) (0,2,3,4,5) (0,1,5) (1,4) (0,1,2,5) {200,207,5,20,29,201}
|
||||||
|
[.#..###.#] (0,1,2,4,5,6,7,8) (1,3,4,6,7,8) (1,3,6) (0,1,3,4,5) (1,2,3,4,5,6,8) (4,8) (0,2,4,7) (4) (2,3,4,5,8) (0,3,5,6,7,8) {41,50,22,46,84,39,34,30,43}
|
||||||
|
[.####.] (0,2) (1,2) (1) (0,5) (0,2,3) (0,1,4) (1,3,4,5) (1,2,4,5) {12,28,23,5,15,12}
|
||||||
|
[#....#.#] (0,2,3,5,6) (2,5,7) (0,1,4,5,6,7) (2,6) (3,4,6) (1,7) (0,6) (0,1,2,3,4,7) {42,23,38,27,21,30,50,27}
|
||||||
|
[###.] (0,1,2) (1,2) (1,2,3) (0,3) (1) {148,181,171,15}
|
||||||
|
[#.#....#] (0,3,6) (2,4,5,6) (3,5) (1,2,3,5,6) (1,2,4,6,7) (1,3) {10,23,8,185,3,160,18,1}
|
||||||
|
[#.#.##.] (0,1,3,5) (0,3,5,6) (1,2,3) (0,6) (0,2,3,4,6) (2,5) (0,4,5) (1,3,6) {228,210,37,243,30,213,50}
|
||||||
|
[..#.#..#] (2,5,6,7) (1,2,7) (0,1,4,5,6) (0,3,4,5,6) (0,1,5,6,7) (0,1,2,3,7) (0,1,2,5,6,7) (4,7) {45,49,41,21,18,31,31,52}
|
||||||
|
[.##.] (2,3) (0,3) (1,2) (0,2) (1) (3) {20,21,30,47}
|
||||||
|
[.###.##] (0,1,2,6) (0,3,5) (0,1,2,4,6) (3,4,5,6) (1,2,3,4,6) {25,32,32,205,222,198,230}
|
||||||
|
[##..##] (0,2,4,5) (2,4) (1,3,4,5) (0,1,3,4) (2,3) (1,4) {185,43,206,45,229,188}
|
||||||
|
[..#.##] (0,2,4,5) (2,4,5) (1,2,3,4) (0,1,2,4,5) (0,3,4) (1,3,5) {29,21,47,33,59,28}
|
||||||
|
[.#....#.##] (2,3,5) (1,4,6,7,8) (3,4,5,6,8) (1,2,3,5,7,8,9) (0,2,3,4,5,6,9) (0,1,3,4,5,7,8,9) (1,9) (0,2,4,5,8) {18,38,43,46,34,59,20,20,48,41}
|
||||||
|
[#..#] (1,2,3) (1,2) (0,3) {19,11,11,25}
|
||||||
|
[##..##] (1,2,3,4) (3,5) (1,2,5) (1,2,4,5) (0,1,5) {9,33,24,18,14,39}
|
||||||
|
[#.#....###] (5,7,8) (0,1,3,5,7) (0,3,8) (0,1,2,3,5,6,7) (0,1,2,3,5,6,7,9) (0,2,4,5) (4,9) (3,5,7,8) (0,1,2,4,6,7,9) (1,2,3,4,5,6,7,9) (2,4,6) {70,64,67,63,56,90,50,84,28,44}
|
||||||
|
[#...#.] (0,2,3,4,5) (0,1) (0,1,2,3) (0,2,3,5) (1,4) {47,44,34,34,14,14}
|
||||||
|
[.#.##.#...] (0,6) (4,5,6,7) (0,1,2,3,4,5,9) (1,2,3,4,5,6,7,9) (4,7) (1,3,4,6) (2,3,6,8) (0,1,3,9) (0,2,3,4,5) (0,3,4,6,7,9) {54,34,43,69,61,33,40,17,10,26}
|
||||||
|
[.##..##] (0,2,4,5,6) (2,3,4,6) (0,1,2,3,4) (1,2,5,6) (0,3,5) {26,2,19,13,17,28,19}
|
||||||
|
[...####] (5) (1,3,4,5,6) (0,1,2,3) (0,1,2,3,5) (2,6) (1,2,5,6) (2,3) {26,41,175,48,5,32,137}
|
||||||
|
[.#...#] (1,2,4) (0,1,2,3) (0,2,3) (1,3,4) (2,3) (1,3,4,5) {23,124,29,139,110,109}
|
||||||
|
[####...] (0,1,2,5,6) (2,5) (0,1,2,3,4,6) (1,2,6) (1,2,3,4,5,6) (5) (0,3,5,6) (0,2,3,4,5) (0,2,4,6) {28,37,59,16,17,55,40}
|
||||||
|
[..#.#.##] (0,1,2,3,4,5,7) (3,7) (0,1,3,5,6) (0,1,2,4,5,6,7) (1,3,4,5,7) (0,1,2,3,6,7) (0,2,4,5,6,7) (0,1,2,3,4,7) (0,5,6,7) (5,6) {66,61,39,79,51,79,54,85}
|
||||||
|
[###.] (0,2) (0,1) (0,1,3) (1,2,3) (3) (1) {27,33,6,22}
|
||||||
|
[.#..##.] (2,3,4,6) (0,2,3,4) (2,3,4,5,6) (0,1,3,4,5,6) (0,1,4,5,6) (4,5) (0,1,3,6) (0,2) {35,28,16,32,58,51,37}
|
||||||
|
[.#.#] (1,3) (0,2) (0,1) (0,3) {25,10,2,23}
|
||||||
|
[##.##] (0,4) (2) (0,1,2,4) (0,1,4) (1,3) (0) (2,4) {31,28,27,10,29}
|
||||||
|
[..##.] (0,2,4) (0,3,4) (0,1,2,4) {210,1,190,20,210}
|
||||||
|
[##.#.] (3) (0,1,2,4) (1,2,4) (0,2,4) (0,2,3,4) {24,14,35,20,35}
|
||||||
|
[####.] (0,3,4) (0,2,3,4) (1,2,3) (2,3,4) {4,14,19,19,5}
|
||||||
|
[###.#] (0,1,2,3,4) (0,1,2,4) (2,3) {138,138,154,25,138}
|
||||||
|
[#..##.] (0,2,4,5) (5) (0,1,3,4) (1,2) (1,3,4) (0,1,5) {38,50,14,29,39,42}
|
||||||
|
[.##.##..#] (0,2,3,4,7,8) (1,2,4) (1,2,3,4) (0,1,2,5,6,8) (0,1,2,3,4,8) (0,1,2,3,4) (6,8) (1,5,7) (3,6,8) (2,4,5,7) {63,68,98,85,86,37,38,42,73}
|
||||||
|
[.###.#..#] (0,1,2,3,4,5,7) (0,1,4,5,7,8) (0,2,3,5,6) (1,3,5,6,8) (0,4) (2,5,6) (4,6) (0,4,8) {46,23,28,33,52,37,39,14,13}
|
||||||
|
[####...#] (3,4,5,7) (0,1,2,5,6,7) (0,1,3,6,7) (0,2,3,4,5,6,7) (5,7) (0,6) (2,3,5,6,7) (0,1,2) {36,28,33,44,11,36,41,52}
|
||||||
|
[##.##.#.] (0,3) (2,3,4,5) (0,2,7) (0,1,2,4,6) (4,5) (1,3,4,6,7) {206,26,31,198,43,17,26,31}
|
||||||
|
[..#.#.] (1,2,4,5) (0,1,3,4,5) (0,2,4) (3,4) (0,1,2,3,5) {19,20,19,207,198,20}
|
||||||
|
[##.###.#.#] (0,7,9) (2,3,4,5,6,7,8,9) (3,4,5) (1,2,3,5,6,9) (0,1,7) (2,6) (0,1,2,3,5,6,9) (1,2,3,4,5,7,8,9) (3,4,5,8,9) {18,45,62,69,46,69,46,37,26,56}
|
||||||
|
[##.###..#] (1,4,6) (1,5) (2,5,7,8) (0,2,3,4,5,6,8) (2,3) (0,2,3,5,6,7,8) (0,3,7,8) (0,1,2,4) {34,25,33,33,20,32,19,35,40}
|
||||||
|
[.#.###] (3,5) (0,2,4) (2,4) (1,3,4,5) {7,14,27,27,41,27}
|
||||||
|
[..##.#..] (0,1,3,4,6,7) (0,1,4,5,6,7) (0,1,2,3,4,6) (0,2,3,5) (0,1,2,4,5,6,7) (1,2,3,5,6,7) (0,4,5,6,7) {80,60,48,37,70,55,71,53}
|
||||||
|
[..###..] (2,3,4) (0,1,3,4,5) (0,2) (1,2,3,5) (1,2,6) (1,2,3,4,5) (1,5) {15,55,55,57,48,50,5}
|
||||||
|
[######] (0,2,3,4) (0,2,4,5) (0,2,3,5) (0,1,2,4) (1,4) {18,10,18,9,20,7}
|
||||||
|
[#.##] (2) (2,3) (0,1,3) (1) {0,4,198,11}
|
||||||
|
[###.....#] (3,5) (1,4,6,7) (0,1,3,4,5) (0,1,3,4,6,7) (0,1,3,5,7) (2,3,7) (1,2,3,4,5,6,8) {28,211,185,231,202,202,199,49,172}
|
||||||
|
[....#.#..#] (0,2,5,6) (0,1,2,3,4,5,6,9) (2,4,5,8,9) (3,4,7,8,9) (4,8) (0,3,7,8,9) (0,1,4,5,7,8) (0,1,2,3,5,6,8,9) (1,4,6) {241,218,216,244,241,227,211,48,85,249}
|
||||||
|
[..#..###.] (2,8) (5,7) (0,4,7) (0,2,3,7,8) (0,2,4,5,6,8) (3,4,6) (0,1,3,4,5,7,8) (2,5,6) (2,3) (1,5) (1,2,4) {22,21,21,30,40,36,29,23,18}
|
||||||
|
[#.#.] (1,2,3) (0,2) {15,4,19,4}
|
||||||
|
[#.###.] (4) (0,1,2,5) (0,2,3,4) (0,2) (0,2,4,5) (2) {214,8,214,9,19,8}
|
||||||
|
[###.###] (0,2,4,5) (0,1,3) (1,3,4,5) (0,1,3,4,5) (0,1,2,4,5) (0,1,4,5,6) (0,4) (1,2) (0,3,4,5,6) {223,77,39,188,225,207,166}
|
||||||
|
[##.#....] (2,3,4,6,7) (0,1,2,5,6,7) (0,1,2,4,6) (0,2,3,7) (0,1,3,4,5,6,7) (1,2,3,4,5,6) (5,6) (0,1,3) (0,2,3,4,6) {52,31,35,56,21,17,30,32}
|
||||||
|
[#.#.#.] (1,2,3,4) (0,4,5) (2,4,5) (0,1,3,4) (0,2,4) {132,3,34,3,152,135}
|
||||||
|
[..###] (0,1,3) (1,4) (1,2,3) {8,27,0,8,19}
|
||||||
|
[.##.#.] (0,1,2,3,4) (2) (0,2) (0,1,3,5) (0,2,3,4,5) (2,3,5) (1,2,4,5) {50,19,69,42,23,33}
|
||||||
|
[#####.#] (0,2,3,4,6) (0,3,4,5) (1,6) (0,2,4) (0,1,2,4,6) (3,5,6) (0,1,3,4,5,6) (0,1,2,3,5) (0,1,2,4,5) {90,67,71,72,72,69,67}
|
||||||
|
[##.#.####] (0,1,3,5,6,7,8) (0,1,2,3,4,5,7,8) (1,2,3,7) (0,2,5,6,7) (0,4,5,6,7) (1,3,4,5,6,7,8) (1,2,3,4,5,7,8) {48,38,43,38,27,61,43,66,33}
|
||||||
|
[#...#] (0,4) (1) (0,1,3,4) (2,4) (2) (0,2,4) (0) {30,23,171,3,187}
|
||||||
|
[.##.#.] (0,1,2,3,4) (3) (0,1,3,4,5) (1,2,3,4) {18,29,29,48,29,0}
|
||||||
|
[.##.######] (3,6) (3,5,6,9) (0,1,4,6,7,9) (0,1,2,4,5,6,7,9) (2,3,8) (0,1,2,3,4,5,6,9) (1,4,6,7,9) (1,4,5,6,8,9) (0,1,4,5,9) (0,1,2,3,5,6) (2,5,6,7,8) (0,3,4,5,8) (2,3,7) {75,76,84,94,78,111,115,77,46,79}
|
||||||
|
[...###.] (0,2,6) (0,1,4,5,6) (0,3,4,5,6) (0,2,3,4,6) (0,1,2,4,5,6) {134,118,125,13,131,123,134}
|
||||||
|
[#.#.#.#.] (6,7) (0,3,6) (0,2,4,5,6,7) (4,6) (0,1,2,4,5,6) (1,3,4,5) (1,2,3,5,7) (0,2,3,5,6,7) {41,38,56,40,45,64,67,62}
|
||||||
|
[.#.....#] (1,3,5,6,7) (2,3,5,6,7) (0,1,2,4) (0,1,4,7) (0,1,6,7) (1,4,5) {200,229,196,25,217,43,26,43}
|
||||||
|
[#.#.####] (0,6) (0,4,5,6,7) (0,1,4,5,6,7) (6,7) (1,4) (2,7) (0,2,4,5,7) (5,6) (3,7) (1,2) {46,24,27,13,37,30,56,64}
|
||||||
|
[##.#] (0,1,2) (1,2) (0,2,3) {16,20,26,6}
|
||||||
|
[.#.#..] (0,1,3) (0,1,4,5) (1,4,5) (0,4,5) (0,1,2,3) (0,2,4,5) (0,2) (0,2,3,4,5) {204,36,42,30,195,195}
|
||||||
|
[##...#.##] (2,4,6,8) (0,1,3,5,7) (2,3,4) (1,2,3) (4,5,6,8) (0,1,3,4,5,7) (1,4,5,6) (1,2,7,8) (0,1,3,5,8) (5,8) (0,5,7) {30,54,56,41,38,55,24,36,73}
|
||||||
|
[..#.#.##] (2) (0,3,4,5,6,7) (0,4,5,6,7) (1,2,3,5) (0,1,2,3,4,6,7) (0,2,3,5) {42,20,50,40,32,36,32,32}
|
||||||
|
[####] (0,3) (1,3) (0,2) {13,196,6,203}
|
||||||
|
[.#####] (1,5) (0,1,3,4) (1,2,3,5) (2,3,4) {7,30,19,26,8,23}
|
||||||
|
[.#..#####.] (1,2,3,5,6,7,9) (1,2,3,4,5,7,9) (1,5,7,8) (0,1,2,3,4,5,7,9) (1,3,5) (0,3,5,6) (1,2,7) (1,3,5,7) (1,3,4,7,8) (0,2,3,4,5,7,8,9) {29,183,37,189,158,63,19,188,154,36}
|
||||||
|
[###.] (1,2) (0,1,2) (0,1,3) {28,35,26,9}
|
||||||
|
[#.#.] (0,1,3) (0,2) {27,17,10,17}
|
||||||
|
[.####.##] (3,5,6) (0,4,6) (5) (0,2,3,4) (0,3,5,6) (0,1,2,5,6) (3,4,7) (0,2,4) {51,9,25,37,37,44,50,4}
|
||||||
|
[...#.#..##] (4,8,9) (0,1,2,3,6,8,9) (0,2) (0,1,2,3,8) (1,2,6) (1,2,4,6,8,9) (2,3,5,9) (1,5,9) (0,1,2,4,5,8) (1,2,3,4,5,6,7,8,9) {55,63,75,44,32,30,35,14,61,36}
|
||||||
|
[....#.#] (3,6) (0,6) (2,5) (1,2,3,4,6) (2) (0,4) (1,3,5) (0,1,2,3,6) {39,29,41,47,12,29,57}
|
||||||
|
[##.##] (0,1,3) (0,1,2,3) (1,2,3,4) (1,2,3) (0,3,4) (1,3,4) {20,27,14,34,11}
|
||||||
|
[#.##] (1,3) (0,2,3) {11,15,11,26}
|
||||||
|
[#.#..#] (0,1,3) (0,1,2,3,4) (0,1,3,4) (1,3,4,5) (0,1,4,5) (0,2,3,4,5) (0,1,5) (0,2,3,4) {94,87,39,88,81,55}
|
||||||
|
[...#..#] (0,1,2,3,5,6) (0,3,5) (0,1,2,3,5) (0) (0,1,3,4,6) (1,4,6) (0,6) (1,3,4) (1,2) {39,52,11,40,41,8,35}
|
||||||
|
[##...##.#] (0,2,4,5,6,7) (1,2,3,4,5,6,7) (0,2,3,4,6,7) (0,1,2,4,5,6,7,8) (0,2,3,6) (0,1,5,6) (0,1,3,4,5) (0,1,2,3,6,7) (0,1,3,5) {62,54,41,40,48,56,55,39,14}
|
||||||
|
[.#.#] (1,3) (0,1,3) (2,3) {14,23,14,37}
|
||||||
|
[.#...#] (1,2,3,4) (0,4,5) (3) (0) (0,1,2,5) (0,2) (1,5) {21,30,20,115,1,31}
|
||||||
|
[##.#..#.##] (0,9) (0,1,2,3,4,5,6,9) (0,1,2,4,6,9) (0,6,7) (0,1,4,6,7,8) (3,4,7) (0,1,3,4,5,6,7,8) (0,1,4,5,6,7,9) (0,2,3,4,6,7,8) (0,1,2,5) {99,74,29,30,66,49,67,56,36,45}
|
||||||
|
[#.#....] (0,2,5,6) (3,6) (0,1,2,6) (0,1,2,4,5) (3,5,6) (1,3,4,5,6) (0,1,3,5) {46,48,36,43,32,69,50}
|
||||||
|
[#.###] (2,3) (2,4) (0,1,2) (0,4) {25,15,37,6,26}
|
||||||
|
[#...##] (0,2,3,5) (0) (0,1,4) (2,3,5) (2,3) (0,1,3) (0,1,4,5) (2,3,4) {54,46,37,52,38,31}
|
||||||
|
[.##.##] (0,1,2,3,4) (1,2) (1,2,3,5) (0,5) (2,5) (0,1,2,3) (1,2,4,5) (0,2,4) {18,45,58,22,23,50}
|
||||||
|
[#...#.##.] (1,2,4) (2,5,6,8) (0,2,3,7,8) (0,1,2,3,5,8) (0,3,7) (0,2,3,4,7,8) (0,1,3,7,8) (5,6) (0,2,3,4,6,7,8) (2,3,4,5,6,7,8) (0,8) {248,197,238,250,51,202,49,79,264}
|
||||||
|
[##..] (0,2) (1) (1,2,3) (3) (0,1) (0) {27,215,20,24}
|
||||||
|
[..#..#.###] (0,2,3,4,5,6,8,9) (3,4,5,9) (0,1,2,4) (0,2,4,6,7,8) (0,1,2,3,4,5,6,8,9) (0,2,3,4,5) (0,1,3,4,7,8,9) (2,4,9) {58,26,202,45,228,29,27,30,43,199}
|
||||||
|
[##..#....] (0,2,3,5,6) (0,1,2,5,6,8) (1,2,4) (0,1,2,3,6,7,8) (0,1,2,3,4,5,6,7) (0,1,5,6,8) (1,2,3,5,6,7,8) (1,7) (0,1,2,3,4,6) {73,97,77,62,29,59,85,58,49}
|
||||||
|
[......#.] (0,1,3,4,5,7) (2,6) (0,2) (1,2,3,4,7) (0,1,2,4,7) (0,4,5,7) (2,3,4,5,6) (4,7) (1,2) (1,3) {19,35,49,11,30,5,17,30}
|
||||||
|
[...###.#.] (4,5) (0,2,4,8) (3,6,7) (0,1,2,6,7) (0,1,2,3,4,5,8) (0,4,8) (1,3,6,8) (6) (0,3,4,8) (3,6) (0,1,3,4,5,7) {48,30,24,67,52,24,57,28,45}
|
||||||
|
[..#..#] (2,5) (1,2,3,4) (2,4,5) (0,1,3) (1,5) (2,3,4,5) {17,31,45,30,32,45}
|
||||||
|
[##.#....] (0,2,5,7) (0,2,3,7) (1,2,3) (0,3) (1,2,5,6) (4,5,6,7) (2,4,5,6,7) (0,6,7) (1,2,3,4,5,6) {38,21,44,25,19,39,50,45}
|
||||||
|
[...#.###] (0,4,7) (0,1,4,5,6,7) (0,1,2,3,5,7) (3) (1,2,4) (0,1,3,7) (2,3,4,5,7) {54,54,36,32,42,26,7,55}
|
||||||
|
[.#..#] (2,4) (0,2,3) (1,4) (0,2,3,4) (2,3,4) {16,19,52,36,63}
|
||||||
|
[..#.#....] (1,2,3,4,6,7,8) (2,3,5,6,7,8) (2,3,4,6,7) (4,6) (2,4) (0,1,2,6,7,8) (0,3,4,5,6,8) {29,15,62,65,67,40,88,54,55}
|
||||||
|
[.#.#...#.#] (1,4,5,6,7,9) (3,6) (0,1,6,7,9) (0,1,2,3,5,6,7) (1,3,4,5,6,7,8) (0,4,5,6) (0,4,6,9) (0,2,8,9) (1,2,3,4,5,7,8,9) (0,2,3,6,8,9) (1,9) (0,3,4,5,6,7) (0,1,5,7,8,9) {70,49,40,51,45,46,81,42,49,67}
|
||||||
|
[.###.#.#.] (2,3,4,5,6,7,8) (1,7) (0,3,6) (0,3,7) (0,2,4,6,8) (2,3,4,6,7,8) (1,2,5) (2,4,5,6,7) (1,2,4,5,6,7,8) {41,36,70,63,57,47,76,82,42}
|
||||||
|
[#.##.#..] (5,6,7) (0,1,3,4,5,6) (0,1,3,5,7) (2,4,5,6) (0,1,2,3,5,7) (1,2,5) (0,1,2,4,5,6) (0,1,2,3,4,5) {56,61,40,50,31,67,26,31}
|
||||||
|
[..#######] (1,4,8) (2,5,6) (6) (0,1,2,3,4,6,8) (7) (1,2,5,6,7,8) (1,2,3,4,6,7,8) (1,6) (0,2,3,4,5,6,7,8) (7,8) (0,7,8) {30,60,62,40,53,34,93,44,69}
|
||||||
|
[###..#] (0,1,4,5) (1,5) (1,2,3,4) (1,2) (0,1,2,3,4) (0,2) (0,1,2,5) (2,3) {52,66,67,27,29,36}
|
||||||
|
[.##.#.#..] (0,1,2,3,5,6,7) (1,2,3,7,8) (0,2,6) (0,5,7) (1,2,4,6) (1,6,7,8) (0,1,2,3,4,5) {51,34,42,16,20,32,37,33,14}
|
||||||
|
[###.###.#.] (0,1,4,5,6,7,8,9) (0,2,3,4,5,8) (1,2,3,4,6,8,9) (0,1,2,3,5,7) (0,3,5,7,8,9) (0,4,5,6,7,8,9) (0,1,3,4,5,6,8) (1,7,8) (0,2,5,6,8,9) {78,50,56,53,57,78,64,56,97,77}
|
||||||
|
[##.#] (1,3) (0,1,2) (0,2) (2,3) (1,2) {35,44,75,26}
|
||||||
|
[##..##] (0,1,4,5) (1,2,3,4) (1,2,4) (4,5) (0,1,5) {33,59,26,15,53,45}
|
||||||
|
[.####] (1,2,4) (0,3,4) (0,1,4) (0,4) {39,14,9,14,48}
|
||||||
|
[.....#####] (2,7) (6,7,8) (2,5,8,9) (4,6,8) (0,5,6) (0,1,2,3,4,5,6,8) (0,1,6,8) (0,1,2,3,4,5,6,7) (1,2,3,4,5,7,8) (2,4,5,7,8) (0,1,2,4,5,6,8,9) {61,58,77,23,66,63,90,69,85,22}
|
||||||
|
[..##.] (2) (4) (3) (0,2) (1) {8,6,18,17,4}
|
||||||
|
[...#] (2,3) (0,2) (1,2) (1) (1,3) {10,47,180,162}
|
||||||
|
[..##..#.##] (0,1,2,3,4,5,6,8) (1,3,4,5,6,7,8,9) (1,3,4,6,8) (0,4,6) (1,2,3,6,8) (0,1,2,3,5,7,8,9) (9) (0,3,4,7,8,9) (0,1,3,4,7,8,9) (0,4) (0,1,2,3,4,5,7,8) (0,2,3,5,6,9) {100,206,46,235,240,43,206,53,226,77}
|
||||||
|
[.##.....#] (1,2,4,5,6,8) (0,2,4,5,7) (3,4,8) (1,2,4,5,6,7,8) (3,4,5,6,7,8) (1,4) (0,2,3,4,5,6,8) (1,2,3,4,5,6,8) (0,1,3,4,5,6,7) (2,3,4,5,7) {23,59,82,43,93,90,63,53,57}
|
||||||
|
[######..#] (0,1,2,3,5,7) (0,1,2,3,4,5,8) (2,3,4,5,6,7,8) (0,1,2,3,4,8) (2,6,8) (1,4,5,7) (2,7,8) (1,3,6) (0,3,4,5,6,8) {54,69,76,88,62,55,56,44,75}
|
||||||
|
[.##..#.] (2,3,4,5,6) (0,1,2,5,6) (0,5) (0,1,5,6) (1,2,4,5) (0,2,3,5,6) (0,1,3,5,6) (0,2,3,4,5,6) {52,34,49,31,13,64,50}
|
||||||
|
[#..##.] (2,3,5) (1,3,5) (0,2,4,5) (0,3,4) (2,4) {14,4,44,31,33,29}
|
||||||
|
[.#.#.#] (0,4,5) (2,3,4) (0) (1,2) (0,2,3,5) (1,3,5) (4) {11,4,16,14,16,6}
|
||||||
|
[#.##] (0,1,2) (0,2) (2) (1,2) (0,3) {2,6,25,0}
|
||||||
|
[###.#....#] (0,2,3,5,6,8,9) (0,1,2,3,4,5,8) (1,6,8) (0,2,4,5,6,7) (0,1,2,3,4,6,7,8) (0,2,4,5,6,7,9) (3,7) (1,3,4,8) (0,1,2,3,4,5,7,8) {199,66,199,195,63,185,184,43,209,144}
|
||||||
|
[##.###.#.] (2,3,4,5,8) (0,1,7,8) (0,5,6,7) (1) (0,1,2,3,4,5,8) (3,4) (1,6) (1,2,4,5,6,7,8) {26,51,25,23,34,37,39,25,27}
|
||||||
|
[.#.##...##] (0,1,2,3,5,6) (0,1,4,7,8) (1,3,8) (0,1,4,5,7,8,9) (1,4,5,7,9) (1,4,6,9) (1,5) (0,2,4,6,7,8) (0,3,5,6,8,9) (2,3,4,5,6,7,8,9) (0,1,2,3,7,8,9) {63,102,51,48,84,61,65,70,72,51}
|
||||||
|
[#.#..#.#.] (0,2,3,6,7) (2,4,7) (0,2) (1,2,3,5,6,7,8) (0,1,2,3,4,6,7,8) (1,2,3,6) (0,3,6,8) (4,6,7) (4,5,8) {51,44,69,77,48,22,85,62,59}
|
||||||
|
[#.#....#] (2,4,5) (3,4) (0,1,2,3,5,6,7) (0,1,2,3,4,5,7) (1,4) (0,1,2,4,6) (2,3,6) {14,34,36,37,45,14,24,10}
|
||||||
|
[####..#.#] (0,1,3,4,5,6,7) (2,4) (3,5) (1,2,8) (0,5,6) (3,6) (1,4) {18,18,13,24,17,25,29,6,7}
|
||||||
200
day10/input.x
Normal file
200
day10/input.x
Normal file
@ -0,0 +1,200 @@
|
|||||||
|
0x5 0xb 0x5 0x3 0xe 0x8
|
||||||
|
0x24d 0x1ff 0x9c 0x356 0x2db 0x35f 0x24 0x54 0x28 0x1a0 0x3b7
|
||||||
|
0x1 0x17 0xc 0x16 0x18 0x11 0x15
|
||||||
|
0x12e 0x42 0x16c 0xd0 0x181 0x1b0 0x1a 0x1af 0x7b
|
||||||
|
0x17 0xd 0x5 0x18 0xb 0x19
|
||||||
|
0xa 0x7 0xa
|
||||||
|
0x1ce 0xf2 0x2d7 0xb3 0x104 0x99 0x1bf 0xb4 0x119
|
||||||
|
0x2d5 0x3f2 0x102 0x13b 0x193 0x3fb 0xeb 0x15 0x3fe 0x2bf
|
||||||
|
0x74 0x6b 0x27 0x11 0x29 0x2f
|
||||||
|
0xe5 0x7e 0x30 0xaa 0x86 0x14 0xed
|
||||||
|
0x178 0x32e 0x113 0x108 0x2b1 0x16a 0x233 0x8e 0x1de 0x28c 0x133 0x1f3 0x3f6 0x15a
|
||||||
|
0x11 0x5b 0x12 0x26 0x3a 0x30 0x1b
|
||||||
|
0x35 0x10 0x3c 0x39 0x6 0x22 0x11 0x9
|
||||||
|
0xe 0x2ea 0x13 0x8c 0x19c 0x1f7 0x210 0x218 0x13b 0x82 0x55 0x308
|
||||||
|
0x19 0x19 0x3c 0x23 0x24
|
||||||
|
0x3d5 0x6a 0x16a 0xd8 0x30f 0x382 0x3c7 0x1a8 0x239 0x3d5 0x27d
|
||||||
|
0xc 0x24 0x1c 0x77 0x43 0x3f
|
||||||
|
0x6f 0xe0 0x81 0xe3 0x5b 0x2f 0xdb 0x11 0x21 0xf7 0x89
|
||||||
|
0x3c5 0x8b 0x2a4 0x30c 0x18d 0x3ec 0x2a0 0x3ba 0x5a 0x209 0x338 0x33c 0x42 0x10c
|
||||||
|
0x226 0x1e9 0x21 0x1fc 0x17d 0x163 0xc2 0x13c 0x130 0x1cd 0x3f6 0x234 0x3ae
|
||||||
|
0x2d9 0x1ef 0x27e 0x1ed 0x25d 0x33c 0xe6 0x374 0x37b 0x341 0x3b7 0x180 0x9
|
||||||
|
0x204 0x81 0xfb 0x3fd 0x2ff 0x8 0x381 0x2fb 0x206
|
||||||
|
0x15 0x1f 0x15 0x16
|
||||||
|
0x1 0x14 0x4 0xe 0x11 0x1 0x1b
|
||||||
|
0x8 0xe 0x3 0x6 0x15 0xb 0x11 0xc
|
||||||
|
0x1f 0x1d 0x1c 0x2 0xb 0x6 0x19 0xe
|
||||||
|
0xa5 0x16 0xb4 0x27 0x30 0x54 0xfd 0x2a
|
||||||
|
0xb2 0x75 0x6 0x7f 0x86 0x1e 0x24 0x2f 0x17 0xeb
|
||||||
|
0x29 0x22 0x6 0x7d 0x3b 0x78 0x11
|
||||||
|
0x11 0x4f 0x33 0x6b 0xc 0x25 0x6c 0x17 0x7e 0x40
|
||||||
|
0x78 0x3a 0x7 0x41 0x78 0x63 0x3c 0x68
|
||||||
|
0xd 0x4 0xd 0x9 0x3
|
||||||
|
0xb 0x6 0x3 0x2 0x8 0x7 0xb
|
||||||
|
0xe7 0x3f5 0x30 0xe7 0x398 0x25c 0x2ef 0x32f 0x273 0x3ef 0x147 0x17c
|
||||||
|
0x1f 0x34 0x23 0x35 0x2b
|
||||||
|
0x4c 0xdd 0xa0 0x40 0xec 0x2f 0xe6 0x3c 0xb7 0x5f
|
||||||
|
0xa 0x13 0x6 0x9 0x1f
|
||||||
|
0xe 0x3 0xd 0xc
|
||||||
|
0x8 0x13 0x3e 0x9 0x2a 0x21 0x1d 0x20
|
||||||
|
0x16 0x18 0x2 0xe 0x16 0x9 0x14
|
||||||
|
0x2a 0x19 0x1b 0x15 0x26
|
||||||
|
0x48 0x2f 0x3e 0x53 0x70 0x46 0x76
|
||||||
|
0x3 0xe 0xc 0xa 0x9
|
||||||
|
0x120 0x13b 0x48 0x2c 0x17 0x78 0x72 0xa0 0x10b 0x15e 0x162 0xe
|
||||||
|
0x10 0x32 0x29 0x1b 0x1c 0x34 0xa 0x2c 0x14
|
||||||
|
0xa 0xd 0xa 0xe 0x5
|
||||||
|
0xa5 0x66 0xf9 0x6f 0x7e 0x3f 0xbd 0x8d 0x36 0xc0 0x8b
|
||||||
|
0xf8 0x28 0x1df 0xf7 0x13e 0xfc 0x1db 0x8
|
||||||
|
0x15 0x47 0x4a 0x11 0x21 0x5f
|
||||||
|
0x356 0x68 0x32f 0x395 0x147 0x1f7 0x3e4 0x1c2 0x3b2 0x149 0x145 0x50 0x3ef 0x333
|
||||||
|
0x4b 0x3c 0x22 0x1a 0x30 0x42 0x13 0x2d
|
||||||
|
0x1a 0x11 0xc 0x16 0x3 0xa 0x6 0x17
|
||||||
|
0x100 0x1b2 0x14b 0x127 0x177 0xce 0x1c0 0xb2 0x14 0x140
|
||||||
|
0x6b 0x37e 0x366 0x3af 0x302 0x3f0 0x3 0x90 0x40 0x17f 0x22 0x1be
|
||||||
|
0x1a 0x21 0x3d 0x33 0x32 0x14
|
||||||
|
0x1c8 0xb0 0x166 0x16b 0x142 0x16f 0x197 0x1ec 0x1db
|
||||||
|
0x2d 0x5b 0x6 0x67 0x32 0x78 0x13
|
||||||
|
0x1ca 0x19e 0x115 0x173 0x214 0x1e3 0xd3 0x1bc 0x161 0xf5 0x111 0x288
|
||||||
|
0xdf 0xbf 0xc4 0xa2 0xbe 0xdf 0x83 0xf3
|
||||||
|
0xb 0x6 0x4c 0x65 0x5a 0x22 0x7a
|
||||||
|
0xeb 0x76 0x4c 0x59 0x2e 0xeb 0x60 0x85
|
||||||
|
0xfe 0x54 0x5d 0x7d 0x8b 0x31 0x5b 0x4f 0xc2 0xbb
|
||||||
|
0xd1 0xe5 0x1b4 0x102 0x114 0xa 0xef 0xe0 0x17a 0x13f 0x22
|
||||||
|
0x7 0x7 0x19 0x18 0x1d 0xd
|
||||||
|
0x53 0xa7 0xbd 0x19f 0x12f 0x1c6 0x1b7 0xba
|
||||||
|
0x17 0x17 0xd 0x1d
|
||||||
|
0x3 0xe 0x4 0x9 0xa
|
||||||
|
0x62 0xa5 0x30 0x8 0x8f 0xff 0xbe
|
||||||
|
0x25 0x51 0x6a 0x6b 0x2c 0x4f 0x25 0x48 0x7a
|
||||||
|
0x17d 0x2ef 0x28a 0x38b 0xf0 0xff 0x280 0x1e9 0x296
|
||||||
|
0x55 0x43 0x7c 0x73 0x6d 0x55 0x2 0x64 0x7e 0x4
|
||||||
|
0x384 0x2a1 0x204 0x1a8 0x136 0x357 0x290 0x3cc 0x1b5 0x1b 0x22a 0x3fb 0x1f8
|
||||||
|
0xc3 0xd2 0x177 0x54 0x167 0xc1 0x20 0x1eb 0x14c
|
||||||
|
0x3e 0x2d 0x2c 0x2e 0x3e 0x74 0x6 0x7a 0x21
|
||||||
|
0x4 0x1 0x9 0x6 0xd 0x4 0x8
|
||||||
|
0xb 0xd 0xb
|
||||||
|
0x20 0x5 0x37 0x2f 0x31 0x12 0x39
|
||||||
|
0x9d 0x1df 0xb7 0xa4 0x1b8 0xfd 0x11 0x152 0x10 0x79 0x12f
|
||||||
|
0x1e 0x28 0x18 0x10 0x21 0x2c 0x32 0x17 0x1b
|
||||||
|
0x85 0xb6 0x25 0xcf 0x22 0x1a 0x41 0x82 0xf9
|
||||||
|
0xe 0xe 0x6 0x7 0x9 0x4
|
||||||
|
0xa1 0x92 0x2e 0x14 0x76 0x6b 0x50
|
||||||
|
0x56 0x6a 0x4b 0x38 0x41 0x5d 0x12 0x46 0x29
|
||||||
|
0x29 0x27 0x61 0xce 0x9e 0xc7 0xf1 0xe7 0x9
|
||||||
|
0x6 0x3 0x9 0x6 0xa 0x4 0x1
|
||||||
|
0x3b 0x71 0x4a 0x75 0xf 0x3d
|
||||||
|
0x33 0x2b 0xa 0x17 0x36 0xc 0x12
|
||||||
|
0xb 0x2b 0xb 0x1e 0x3b 0x26 0x15
|
||||||
|
0x10b 0xd0 0x12e 0x7a 0x1d7 0x2f9 0x377 0x101 0x2b2
|
||||||
|
0x9 0x7 0x6 0x9
|
||||||
|
0x33 0x1e 0x5 0x19 0x1b 0x31
|
||||||
|
0x287 0x16 0x354 0x242 0x3dc 0x3dd 0x2b0 0x21 0x56 0x3ad 0x1fd 0xa8
|
||||||
|
0x22 0x2f 0x30 0x3c 0x2d 0x12
|
||||||
|
0x168 0x208 0x3c 0x3f1 0x1fd 0x24 0x168 0xca 0x341 0x2f0 0x26d
|
||||||
|
0x33 0x57 0x1d 0x7c 0x33 0x4a
|
||||||
|
0xf 0x2 0x2f 0x78 0x7a 0x11 0x33 0x18
|
||||||
|
0x11 0x1a 0x3c 0x2c 0x16 0xc 0x17
|
||||||
|
0x78 0x73 0x12 0x7d 0x31 0x3f 0x2 0x4b 0x5e 0x55
|
||||||
|
0x2b 0xfd 0x11 0xd6 0xef 0x5d 0xf3 0xaf 0xf9 0x87 0x6
|
||||||
|
0xe 0xa 0xc 0xd 0x7 0x1 0x4
|
||||||
|
0x26 0x1d 0x5c 0x1f 0x6f 0x67 0x6 0x69 0x50
|
||||||
|
0x5 0x5 0xa 0xc 0x9
|
||||||
|
0x1b 0x11 0x4 0x1d 0x19 0xa 0x10 0x5
|
||||||
|
0x6 0x15 0x13 0x1d
|
||||||
|
0x1a 0x2 0x1d 0xd 0x15 0x17
|
||||||
|
0x1e 0x13 0x17 0xe 0x7
|
||||||
|
0x1d 0x1f 0x1d 0x6
|
||||||
|
0x26 0x2b 0x1 0x36 0x18 0x16 0x31
|
||||||
|
0xd9 0x173 0xd0 0xf0 0x1cd 0x1f1 0x1f0 0x5 0x8a 0x25 0x5a
|
||||||
|
0xe9 0x1fa 0x19b 0x16c 0xad 0x110 0x4c 0x14 0x111
|
||||||
|
0xf1 0x1d 0xe7 0xd3 0xbf 0x5 0x82 0x37 0xe0
|
||||||
|
0xda 0x90 0x3c 0xa1 0xea 0xc 0x5b
|
||||||
|
0xa 0x1b 0x37 0x2a 0x6 0x3d
|
||||||
|
0x375 0x205 0xff 0x70 0x1d9 0x304 0x88 0x3d9 0x1f7 0x73
|
||||||
|
0x1b9 0x94 0x88 0x4b 0x17d 0x60 0x16f 0x123 0x1d0
|
||||||
|
0x17 0x5 0x2a 0xa 0x17
|
||||||
|
0x34 0xdb 0xcf 0xfa 0xb4 0xef 0x77 0x8f
|
||||||
|
0x1c 0x1c 0x6e 0x50 0x3a 0x31 0x3e 0x22
|
||||||
|
0x3f 0x2e 0x2b 0x2d 0x3a 0x12
|
||||||
|
0xb 0x2 0x3 0xd 0x4
|
||||||
|
0x1c1 0x28 0x96 0x1b8 0x1b6 0x1aa 0x62 0xfd
|
||||||
|
0x29 0x298 0x3f9 0xb3 0x67 0x22 0x247 0x336 0x3db 0x128
|
||||||
|
0x4e 0x41 0xa 0x112 0x163 0x15d 0x34 0x1bb 0x4c 0x60 0x88 0xd0
|
||||||
|
0xa 0x7 0xa
|
||||||
|
0x2e 0x2 0x39 0x2e 0x28 0x2b 0x8
|
||||||
|
0x77 0x56 0x68 0x2e 0x6e 0x76 0x67 0x44 0x30 0x4f
|
||||||
|
0xd0 0x3b 0xe7 0xea 0xb1 0xdf 0x7e 0x6 0xd0 0xba
|
||||||
|
0x2a 0x1e 0x23 0xb 0x36 0x2a
|
||||||
|
0x7 0x1a 0x9 0xe
|
||||||
|
0x1a 0x3e 0x8 0x28 0x35 0x2f 0xd 0x1b
|
||||||
|
0x7d 0x5d 0x4e 0x21 0x54 0x75 0xb 0x6f 0x7a 0x76
|
||||||
|
0x1af 0x1af 0x1fb 0xe2 0x14e 0x11e 0xbf 0xfb
|
||||||
|
0x11 0x11 0x8 0x1b 0x5 0x4 0x15 0x10
|
||||||
|
0x1a 0x3e 0x4 0x37 0x1e
|
||||||
|
0x1bf 0x48 0x59 0x32d 0x3bd 0xc2 0x3f9 0x12d 0x13b 0x331 0x3d8 0x9e 0x272 0xc4
|
||||||
|
0xe 0x51 0x67 0x4f 0x5d 0x77
|
||||||
|
0xaa 0x3 0x92 0xaf 0xa 0xee 0x5c 0x75 0xb7
|
||||||
|
0x41 0x57 0x37 0xe8 0xc9 0xc3 0x4c
|
||||||
|
0xaf 0x82 0x8f 0xcf 0x3 0x48 0x21 0xad 0x6 0x11 0x60
|
||||||
|
0xd 0xe 0x6 0xb
|
||||||
|
0x14 0x34 0x33 0x13 0x23 0x3c 0x2b 0x28 0x2f
|
||||||
|
0x18b 0x55 0x1aa 0x70 0xe0 0x1d 0x1ba 0x9c 0xc3 0x1a9 0x9 0x10a
|
||||||
|
0x2b 0x20 0x9f 0x8f 0x74 0xfb 0xb4
|
||||||
|
0xf 0x9 0x5 0xa
|
||||||
|
0x1f 0x11 0x36 0x1d 0xe
|
||||||
|
0x13e 0x1dd 0x1f5 0x116 0x3f5 0x150 0x258 0x184 0x154 0x166 0x2f7
|
||||||
|
0xe 0x6 0xe 0xd
|
||||||
|
0xa 0xd 0xa
|
||||||
|
0x7b 0x16 0x8a 0x4 0xb8 0x96 0xe6 0x19 0xa8
|
||||||
|
0x53 0x23 0x3cb 0x280 0x3c2 0x188 0x1ab 0xd1 0x111 0x3b2 0x1ff
|
||||||
|
0x5 0x9 0x41 0x12 0x3d 0x10 0x44 0x2a 0x79
|
||||||
|
0x1b 0x1a 0x1e 0xf 0xe 0x13 0xb
|
||||||
|
0xb 0x5 0xb
|
||||||
|
0x29 0x34 0x3e 0x36 0x17 0x33 0x2f 0x31 0x2e
|
||||||
|
0x9 0x7b 0x4a 0x7a 0x40 0x6d 0x25 0x41 0x2c 0x30
|
||||||
|
0x18d 0x15e 0xfe 0x176 0x1df 0x164 0x18c 0x1b8 0x1e6 0x1a8
|
||||||
|
0x5 0x5 0xd 0x3
|
||||||
|
0x11 0x1e 0x23 0x4 0x20 0x39 0x28 0x11
|
||||||
|
0x34b 0x201 0x3f9 0x3a9 0x20c 0x32e 0x64 0x37e 0x33d 0x2ee 0x390
|
||||||
|
0x50 0x53 0x9 0x71 0x76 0xb 0x2f 0x6a
|
||||||
|
0x17 0x6 0x5 0x1c 0x11
|
||||||
|
0x23 0x2d 0x20 0x32 0xd 0xc 0x34 0x33 0xe
|
||||||
|
0x1b 0x3e 0x18 0x1d 0x21 0x9 0x3c 0x1b 0x2a
|
||||||
|
0x116 0xd0 0x4d 0x163 0x1e9 0x122 0x173 0x1a3 0xc 0x177 0x7f 0x101
|
||||||
|
0xc 0xa 0x4 0x7 0x1 0xc 0x8
|
||||||
|
0x97 0x2fb 0x71 0x3a0 0x2ae 0x3fb 0x2f0 0x367 0xa1
|
||||||
|
0x190 0x16c 0x1cd 0xd0 0x1e7 0x1fe 0x18d 0xef 0x82 0x1f4
|
||||||
|
0x2 0xdd 0x22 0xa0 0x79 0xe9 0x8d 0x3e 0x9 0x60 0x50
|
||||||
|
0x3a 0x18 0x151 0x26 0x1c6 0x1f9 0x111 0xa5 0x4 0x131 0x24 0x1ba
|
||||||
|
0x9 0x9 0x1e 0xb 0x34 0x11 0xf
|
||||||
|
0xd0 0xa5 0xb1 0x70 0x90 0x66 0xf 0x2f 0x83 0x7e
|
||||||
|
0x17 0x89 0xcf 0xf5 0x10 0x68 0xd1 0x3d
|
||||||
|
0x9 0x5 0x16 0x9 0x17 0x7
|
||||||
|
0x50 0xf7 0x6f 0x76 0x14 0x50 0x1c7 0x13d
|
||||||
|
0x145 0x13d 0x48 0x30d 0x3dc 0x17e 0x238 0x229 0x283 0x1f7 0x2cb 0x101 0x27c 0x317
|
||||||
|
0xea 0x7f 0x82 0x124 0x122 0x155 0x77 0xc8 0x5e 0xdf
|
||||||
|
0xb4 0x7 0xde 0xd5 0x2e 0xf5 0x64 0xee 0xfc
|
||||||
|
0x7f 0x91 0x4c 0x4 0x1f5 0x2 0xcf 0xf7 0x84 0x17f 0x3 0x103
|
||||||
|
0x39 0x33 0x11 0x1e 0x18 0x3e 0x28 0x39 0xc
|
||||||
|
0xd4 0x1ee 0xe3 0x144 0x10a 0xd4 0x87 0x1f8
|
||||||
|
0x3ba 0x33f 0x2f2 0x1eb 0x3d4 0x257 0x23f 0x37a 0x106 0x29b
|
||||||
|
0xd 0x5 0xe 0xa 0x3 0x6
|
||||||
|
0x33 0x33 0x1e 0x1a 0x3 0x31
|
||||||
|
0xf 0xd 0x13 0x19 0x11
|
||||||
|
0x1f 0x84 0xe 0x93 0x2a 0x218 0x3fa 0x30a 0x3fc 0x1f6 0xb6 0x3bb
|
||||||
|
0x6 0x4 0x1 0x2 0x14 0x8
|
||||||
|
0x1 0x3 0xa 0x6 0x4 0x5
|
||||||
|
0xcb 0x3fa 0x17f 0x16a 0x228 0x1ca 0x3d7 0x1 0x267 0x367 0x220 0x3f6 0x2d9
|
||||||
|
0xc1 0xdd 0x15a 0x31 0xdf 0x3f 0x90 0x17d 0xfd 0x1be 0x7a
|
||||||
|
0x1f9 0x1ea 0x1f9 0x7f 0x1f1 0x45 0x9a 0x43 0xa4 0x13d
|
||||||
|
0x32 0x1f 0x73 0x42 0x63 0x36 0x5b 0x6b 0x5f
|
||||||
|
0x26 0xd 0x15 0x2b 0x26 0xa
|
||||||
|
0x15 0x23 0xe 0x20 0x18 0x2d 0x15 0x2
|
||||||
|
0xb 0xe 0xa 0x2 0x6 0x9
|
||||||
|
0x3a1 0x2db 0x3f2 0x10a 0x2bc 0x3ee 0x2bd 0x44 0x162 0x3f6
|
||||||
|
0x1ba 0x79 0x183 0x10e 0x80 0x1f9 0x30 0x84 0xdf
|
||||||
|
0x163 0x3d8 0x326 0x142 0x337 0x135 0x129 0x110 0x2ae 0x25b 0xff 0x3c7
|
||||||
|
0x14a 0x166 0x52 0x140 0xef 0x1f7 0xe4 0x125 0x16 0x19
|
||||||
|
0xa1 0x2c 0x18 0xf7 0xfd 0x48 0xea 0x32
|
||||||
|
0x1e5 0x1be 0x50 0x28 0xc1 0x10c 0x24 0x90
|
||||||
15
day10/parse.py
Normal file
15
day10/parse.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import sys
|
||||||
|
for line in sys.stdin:
|
||||||
|
p = line.split()
|
||||||
|
state = p[0].strip("[]")
|
||||||
|
costs = p[-1]
|
||||||
|
|
||||||
|
n = len(state)
|
||||||
|
state = int(state.replace("#","1").replace(".","0"), 2)
|
||||||
|
buttons = []
|
||||||
|
for x in p[1:-1]:
|
||||||
|
val = 0
|
||||||
|
for i in x.strip('()').split(','):
|
||||||
|
val |= 2**(n-int(i)-1)
|
||||||
|
buttons.append(val)
|
||||||
|
print(*map(hex, [state]+buttons))
|
||||||
3
day10/sample
Normal file
3
day10/sample
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[.##.] (3) (1,3) (2) (2,3) (0,2) (0,1) {3,5,4,7}
|
||||||
|
[...#.] (0,2,3,4) (2,3) (0,4) (0,1,2) (1,2,3,4) {7,5,12,7,2}
|
||||||
|
[.###.#] (0,1,2,3,4) (0,3,4) (0,1,2,4,5) (1,2) {10,11,11,5,10,5}
|
||||||
3
day10/sample.x
Normal file
3
day10/sample.x
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
0x6 0x1 0x5 0x2 0x3 0xa 0xc
|
||||||
|
0x2 0x17 0x6 0x11 0x1c 0xf
|
||||||
|
0x1d 0x3e 0x26 0x3b 0x18
|
||||||
110
day10/sol.go
Normal file
110
day10/sol.go
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"container/heap"
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func die(err error) {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func check(err error) {
|
||||||
|
if err != nil {
|
||||||
|
die(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
solve("sample")
|
||||||
|
solve("input")
|
||||||
|
}
|
||||||
|
|
||||||
|
func solve(filename string) {
|
||||||
|
input, err := os.Open(filename + ".x")
|
||||||
|
check(err)
|
||||||
|
|
||||||
|
scanner := bufio.NewScanner(input)
|
||||||
|
scanner.Split(bufio.ScanLines)
|
||||||
|
total := 0
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := scanner.Text()
|
||||||
|
parts := strings.Fields(line)
|
||||||
|
var nums []uint32
|
||||||
|
for _, p := range parts {
|
||||||
|
var x uint32
|
||||||
|
fmt.Sscanf(p, "0x%x", &x)
|
||||||
|
nums = append(nums, x)
|
||||||
|
}
|
||||||
|
//fmt.Printf("%b %v\n", nums, parts)
|
||||||
|
n := best(nums[0], nums[1:])
|
||||||
|
fmt.Printf("%b %v\n", nums, n)
|
||||||
|
total += n
|
||||||
|
//fmt.Println(n)
|
||||||
|
}
|
||||||
|
check(scanner.Err())
|
||||||
|
fmt.Println(total)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// An CostHeap is a min-heap of ints.
|
||||||
|
type CostHeap struct {
|
||||||
|
heap []uint32
|
||||||
|
cost map[uint32]int
|
||||||
|
}
|
||||||
|
|
||||||
|
func (h *CostHeap) Len() int { return len(h.heap) }
|
||||||
|
func (h *CostHeap) Less(i, j int) bool { return h.cost[h.heap[i]] < h.cost[h.heap[j]] }
|
||||||
|
func (h *CostHeap) Swap(i, j int) { h.heap[i], h.heap[j] = h.heap[j], h.heap[i] }
|
||||||
|
|
||||||
|
func (h *CostHeap) Push(x any) {
|
||||||
|
// Push and Pop use pointer receivers because they modify the slice's length,
|
||||||
|
// not just its contents.
|
||||||
|
h.heap = append(h.heap, x.(uint32))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (h *CostHeap) Pop() any {
|
||||||
|
old := h.heap
|
||||||
|
n := len(old)
|
||||||
|
x := old[n-1]
|
||||||
|
h.heap = old[0 : n-1]
|
||||||
|
return x
|
||||||
|
}
|
||||||
|
|
||||||
|
func best(target uint32, pool []uint32) int {
|
||||||
|
//var states = []uint32{}
|
||||||
|
var cost = make(map[uint32]int)
|
||||||
|
h := &CostHeap{nil, cost}
|
||||||
|
heap.Push(h, uint32(0))
|
||||||
|
for h.Len() > 0 {
|
||||||
|
s := heap.Pop(h).(uint32)
|
||||||
|
if s == target {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
// enumerate all the states that can be reached by toggling button p
|
||||||
|
for _, p := range pool {
|
||||||
|
t := s ^ p
|
||||||
|
if cost_t, ok := cost[t]; ok {
|
||||||
|
if cost[s]+1 < cost_t {
|
||||||
|
cost[t] = cost[s] + 1
|
||||||
|
for i, x := range h.heap {
|
||||||
|
if x == t {
|
||||||
|
heap.Fix(h, i)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
cost[t] = cost[s] + 1
|
||||||
|
//states = append(states, t)
|
||||||
|
heap.Push(h, t)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return cost[target]
|
||||||
|
}
|
||||||
153
day10/sol2.go
Normal file
153
day10/sol2.go
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func die(err error) {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func check(err error) {
|
||||||
|
if err != nil {
|
||||||
|
die(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
solve("sample")
|
||||||
|
solve("input")
|
||||||
|
}
|
||||||
|
|
||||||
|
func solve(filename string) {
|
||||||
|
input, err := os.Open(filename)
|
||||||
|
check(err)
|
||||||
|
|
||||||
|
scanner := bufio.NewScanner(input)
|
||||||
|
scanner.Split(bufio.ScanLines)
|
||||||
|
total := 0
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := scanner.Text()
|
||||||
|
parts := strings.Fields(line)
|
||||||
|
parts = parts[1:]
|
||||||
|
var jolts []Jolts
|
||||||
|
for _, p := range parts {
|
||||||
|
j, err := parseJolt(p)
|
||||||
|
check(err)
|
||||||
|
jolts = append(jolts, j)
|
||||||
|
}
|
||||||
|
fmt.Printf("%v %v\n", jolts, parts)
|
||||||
|
n := best(jolts[len(jolts)-1], jolts[:len(jolts)-1])
|
||||||
|
fmt.Printf("%s = %v\n", line, n)
|
||||||
|
total += n
|
||||||
|
//fmt.Println(n)
|
||||||
|
}
|
||||||
|
check(scanner.Err())
|
||||||
|
fmt.Println(total)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
type Jolts [10]int16
|
||||||
|
|
||||||
|
func parseJolt(s string) (Jolts, error) {
|
||||||
|
if s[0] == '(' {
|
||||||
|
return parseJoltByIndex(s)
|
||||||
|
} else if s[0] == '{' {
|
||||||
|
return parseJoltByValue(s)
|
||||||
|
}
|
||||||
|
return Jolts{}, fmt.Errorf("invalid jolts: %q", s)
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseJoltByIndex(s string) (Jolts, error) {
|
||||||
|
var j Jolts
|
||||||
|
s = strings.Trim(s, "()")
|
||||||
|
for _, part := range strings.Split(s, ",") {
|
||||||
|
idx, err := strconv.ParseInt(part, 10, 16)
|
||||||
|
if err != nil {
|
||||||
|
return j, err
|
||||||
|
}
|
||||||
|
j[idx] = 1
|
||||||
|
}
|
||||||
|
return j, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseJoltByValue(s string) (Jolts, error) {
|
||||||
|
var j Jolts
|
||||||
|
s = strings.Trim(s, "{}")
|
||||||
|
for i, part := range strings.Split(s, ",") {
|
||||||
|
val, err := strconv.ParseInt(part, 10, 16)
|
||||||
|
if err != nil {
|
||||||
|
return j, err
|
||||||
|
}
|
||||||
|
j[i] = int16(val)
|
||||||
|
}
|
||||||
|
return j, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// An CostHeap is a min-heap of ints.
|
||||||
|
type CostHeap struct {
|
||||||
|
heap []Jolts
|
||||||
|
cost map[Jolts]int
|
||||||
|
}
|
||||||
|
|
||||||
|
func (h *CostHeap) Len() int { return len(h.heap) }
|
||||||
|
func (h *CostHeap) Less(i, j int) bool { return h.cost[h.heap[i]] < h.cost[h.heap[j]] }
|
||||||
|
func (h *CostHeap) Swap(i, j int) { h.heap[i], h.heap[j] = h.heap[j], h.heap[i] }
|
||||||
|
|
||||||
|
func (h *CostHeap) Push(x any) {
|
||||||
|
// Push and Pop use pointer receivers because they modify the slice's length,
|
||||||
|
// not just its contents.
|
||||||
|
h.heap = append(h.heap, x.(Jolts))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (h *CostHeap) Pop() any {
|
||||||
|
old := h.heap
|
||||||
|
n := len(old)
|
||||||
|
x := old[n-1]
|
||||||
|
h.heap = old[0 : n-1]
|
||||||
|
return x
|
||||||
|
}
|
||||||
|
|
||||||
|
// it doesn't matter what order we push the buttons in --
|
||||||
|
// only how many times we push each one.
|
||||||
|
|
||||||
|
func best(target Jolts, pool []Jolts) int {
|
||||||
|
var cost = make(map[Jolts]int)
|
||||||
|
var states []Jolts
|
||||||
|
states = append(states, Jolts{})
|
||||||
|
cost[Jolts{}] = 0
|
||||||
|
for pi, p := range pool {
|
||||||
|
// enumerate all the states that can be reached by toggling button p
|
||||||
|
queue := states
|
||||||
|
fmt.Print(pi, len(states), len(queue))
|
||||||
|
for _, s := range queue {
|
||||||
|
here:
|
||||||
|
for t, c := s, cost[s]; ; {
|
||||||
|
for i, v := range p {
|
||||||
|
t[i] += v
|
||||||
|
if t[i] > target[i] {
|
||||||
|
// blown target, cut path
|
||||||
|
break here
|
||||||
|
}
|
||||||
|
}
|
||||||
|
c += 1
|
||||||
|
|
||||||
|
if cost_t, ok := cost[t]; ok {
|
||||||
|
if c < cost_t {
|
||||||
|
cost[t] = c
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
cost[t] = c
|
||||||
|
states = append(states, t)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return cost[target]
|
||||||
|
}
|
||||||
60
day10/sol2.py
Normal file
60
day10/sol2.py
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
import sympy
|
||||||
|
import itertools
|
||||||
|
def solve(input):
|
||||||
|
part2 = 0
|
||||||
|
for line in open(input):
|
||||||
|
parts = line.split()[1:]
|
||||||
|
idxs = [delist(p) for p in parts[:-1]]
|
||||||
|
target = delist(parts[-1])
|
||||||
|
|
||||||
|
BTNS = len(idxs)
|
||||||
|
N = len(target)
|
||||||
|
matrix = [[int(i in row) for i in range(N)] for row in idxs]
|
||||||
|
|
||||||
|
#print(matrix, target)
|
||||||
|
M = sympy.Matrix(matrix + [target]).T
|
||||||
|
#print(repr(M))
|
||||||
|
S, pivots = M.rref()
|
||||||
|
if len(pivots) < BTNS:
|
||||||
|
# not solved
|
||||||
|
print(repr(S))
|
||||||
|
coords = []
|
||||||
|
limits = []
|
||||||
|
extra_rows = []
|
||||||
|
for p in range(BTNS):
|
||||||
|
if p not in pivots:
|
||||||
|
print(p, M.col(p))
|
||||||
|
row = [0]*(BTNS+1)
|
||||||
|
row[p] = 1
|
||||||
|
coords.append((M.rows, M.cols-1))
|
||||||
|
extra_rows.append(row)
|
||||||
|
limit = min(target[i] for i,x in enumerate(M.col(p)) if x)
|
||||||
|
limits.append(limit)
|
||||||
|
M = M.col_join(sympy.Matrix(extra_rows))
|
||||||
|
print(repr(M), limits)
|
||||||
|
totals = []
|
||||||
|
for values in itertools.product(*[range(l+1) for l in limits]):
|
||||||
|
for c,v in zip(coords,values):
|
||||||
|
M[c] = v
|
||||||
|
S, newpivot = M.rref()
|
||||||
|
presses = S.col(-1)
|
||||||
|
if all(int(x) >= 0 for x in presses):
|
||||||
|
print(presses.T, flush=True)
|
||||||
|
totals.append(sum(S.col(-1)))
|
||||||
|
if totals:
|
||||||
|
print("*", target, totals, min(totals))
|
||||||
|
part2 += min(totals)
|
||||||
|
else:
|
||||||
|
print("uhoh", target)
|
||||||
|
else:
|
||||||
|
presses = S.col(-1)
|
||||||
|
print("*", target, presses.T, sum(presses))
|
||||||
|
part2 += sum(presses)
|
||||||
|
print(part2)
|
||||||
|
#print(less, greater)
|
||||||
|
|
||||||
|
def delist(s):
|
||||||
|
return [int(x) for x in s.strip("{}()").split(',')]
|
||||||
|
|
||||||
|
#solve("sample")
|
||||||
|
solve("input")
|
||||||
602
day11/input
Normal file
602
day11/input
Normal file
@ -0,0 +1,602 @@
|
|||||||
|
ojt: rum xgy guf mqs
|
||||||
|
srg: mqo ufz
|
||||||
|
lwb: sxb wsf
|
||||||
|
pkk: ium
|
||||||
|
evd: els stn oln
|
||||||
|
ukv: ocs vxd tfl
|
||||||
|
fyk: ikm fox nok
|
||||||
|
bfd: evd kjy smb
|
||||||
|
wqy: srg tgk
|
||||||
|
mix: cmj ufz mqo
|
||||||
|
rew: avm nrs vot mqv
|
||||||
|
tri: hex zvw yuq jeo
|
||||||
|
lbo: dgt ica yws pkk qwp
|
||||||
|
fcn: smr
|
||||||
|
msw: ssg qtf aem
|
||||||
|
zwf: zvl qfe
|
||||||
|
epg: xax pzu
|
||||||
|
mmw: dhg
|
||||||
|
hbd: cji vrr ysi bfd
|
||||||
|
czn: wld cgm gqw tbz
|
||||||
|
qdh: tvc
|
||||||
|
dwh: hux lkt lad
|
||||||
|
ayq: bzr van
|
||||||
|
lor: xrf jwh
|
||||||
|
gkc: pwk hgf cdw
|
||||||
|
jxm: ehg xet fqn
|
||||||
|
qft: qnl evl
|
||||||
|
pek: cvj flu
|
||||||
|
rmo: rxx hbd
|
||||||
|
nwe: out
|
||||||
|
liy: tcc rjb pda
|
||||||
|
xft: azu upo itg
|
||||||
|
ojy: cfp
|
||||||
|
nuq: cvj asi ufb flu
|
||||||
|
ogq: oov dtc ppz
|
||||||
|
rjb: cmj ufz mqo you
|
||||||
|
rdz: cvj ozn ufb asi flu
|
||||||
|
qoa: dgt yws pkk qwp
|
||||||
|
mbw: lik rmf nqr
|
||||||
|
yes: ccc
|
||||||
|
uit: ysj ngh rew
|
||||||
|
hfa: sum clx
|
||||||
|
jqd: ozn flu cvj
|
||||||
|
xfi: dyo zqy
|
||||||
|
lym: kht
|
||||||
|
sqm: rdc oao
|
||||||
|
jmw: nzq
|
||||||
|
sgq: bju lzc bwx
|
||||||
|
xjr: lcx kpp mvl fto
|
||||||
|
tdg: vds kuh
|
||||||
|
aww: der lwb ijy rjq mof obb fmi unx eqn vyj skb wqa aer tas stx vpf oas fzq gfy pua
|
||||||
|
rmb: euk xic
|
||||||
|
hwg: fto xmd kpp lcx
|
||||||
|
nce: mmd sum clx
|
||||||
|
ult: ufb ozn
|
||||||
|
fbj: lcx xmd fto mvl
|
||||||
|
tgk: you mqo cmj
|
||||||
|
ppz: nqr
|
||||||
|
vty: ppz lok mbw dtc oov
|
||||||
|
eit: xvj ccc
|
||||||
|
dtc: xvf nqr lik rmf
|
||||||
|
qso: out
|
||||||
|
tcc: ufz you
|
||||||
|
gwp: xur pto ayw rmb
|
||||||
|
ibm: bwe fuv zkc
|
||||||
|
onk: ibe gdf
|
||||||
|
jax: qnl evl nzq
|
||||||
|
vct: ozn flu asi ufb cvj
|
||||||
|
bju: sfu azu itg
|
||||||
|
amz: you mqo ufz
|
||||||
|
ozn: rqf jzc onk qoa jzs lbk tog fhz vkr hty pnw tej hmv erl mcm msw qky umv
|
||||||
|
eux: kuc xpq gxc
|
||||||
|
vmi: mqo you cmj
|
||||||
|
lft: sum clx fbs
|
||||||
|
lgv: ufz mqo
|
||||||
|
quc: npv
|
||||||
|
bzr: leu ehk
|
||||||
|
bwx: sfu upo azu
|
||||||
|
cnk: mmd fbs
|
||||||
|
xpq: qyh
|
||||||
|
zon: bwe npv zkc
|
||||||
|
pqe: mqo ufz you
|
||||||
|
rks: tje isv
|
||||||
|
hmv: gdf
|
||||||
|
evl: tbt ftw lco
|
||||||
|
vux: rxx zbg
|
||||||
|
yoa: trv
|
||||||
|
tpq: cvj
|
||||||
|
jws: tpq lyi jqd nuq rdz
|
||||||
|
qzs: clx fbs mmd
|
||||||
|
vds: amz pid xax
|
||||||
|
xfg: fof
|
||||||
|
xak: xjo gwd rcb wzr
|
||||||
|
erl: aem vux ssg qtf rmo
|
||||||
|
tzu: out
|
||||||
|
oht: xmd fto mvl kpp
|
||||||
|
ogz: ojy gdf
|
||||||
|
yly: czn fjq
|
||||||
|
nrs: you ufz mqo
|
||||||
|
rna: mvl
|
||||||
|
ins: fbs gyg sum
|
||||||
|
vwu: ilb wqy bud bba
|
||||||
|
nxi: npt kht
|
||||||
|
gfx: hfd sia
|
||||||
|
itg: cvj ufb asi ozn
|
||||||
|
nxy: fto xmd
|
||||||
|
zcq: yoa wvx
|
||||||
|
jok: rna msk sna
|
||||||
|
vqb: tdg shp gru
|
||||||
|
vep: ocg bvi znu
|
||||||
|
tqa: ame pfb eux
|
||||||
|
eer: out
|
||||||
|
lna: blf uph bzr
|
||||||
|
dyo: ypx kth wcn
|
||||||
|
ejr: vct tpt joe
|
||||||
|
vpk: jer fmw erg hwg
|
||||||
|
lkt: yrk
|
||||||
|
bok: xet
|
||||||
|
anx: tpt joe atl vct
|
||||||
|
yrk: mqs guf
|
||||||
|
vpd: zle tdg gru shp
|
||||||
|
htv: auw oyn pek ikf
|
||||||
|
icv: fto xmd lcx
|
||||||
|
wfb: you cmj
|
||||||
|
lrx: xet fqn tzu
|
||||||
|
wjh: clx gyg sum fbs
|
||||||
|
xet: out
|
||||||
|
hgf: fto
|
||||||
|
tvc: smr tyc irq
|
||||||
|
gra: cdw hgf rqb
|
||||||
|
brr: xft mbe
|
||||||
|
fui: cgm wld ahr gqw
|
||||||
|
kht: bqw fmu
|
||||||
|
asi: rqf jzc hmv pnw vkr umv jzs jtv erl msw
|
||||||
|
dxr: rjk rgc gfg
|
||||||
|
xic: nys xak xxh
|
||||||
|
smr: cmj you ufz mqo
|
||||||
|
bvi: xjr bgh igy oht bzh
|
||||||
|
fkj: bqr pto rmb
|
||||||
|
nnm: fbs gyg
|
||||||
|
zih: tzu fqn ehg xet
|
||||||
|
npb: thy zao
|
||||||
|
bhz: you
|
||||||
|
eny: lor
|
||||||
|
fqn: out
|
||||||
|
sna: lcx kpp xmd mvl fto
|
||||||
|
azu: ozn asi flu
|
||||||
|
ilh: acj vdg zpt zcq qwn qft aic fay fjj ycs wdh cyp ymi gfx tjs fug jmw abi nih
|
||||||
|
lad: ojt tqj yrk
|
||||||
|
abh: ikm nmg
|
||||||
|
mof: dxr yal
|
||||||
|
xtl: jar wsf
|
||||||
|
aem: rxx hbd qdy
|
||||||
|
clx: veu yes fej yfb zdm vwu vpd tcj imw bfo sak fpe vqb lwp apx uit ysq jsl tyr ahw wec rzx
|
||||||
|
leu: xjj tji qzs
|
||||||
|
zww: isz sgq brr
|
||||||
|
jvq: htl iao uix
|
||||||
|
cbk: nuq rdz lyi
|
||||||
|
qfe: out
|
||||||
|
bei: xxh nys
|
||||||
|
qsk: you ufz cmj
|
||||||
|
lik: jgk wce nwe
|
||||||
|
hfd: qnr ult
|
||||||
|
bqr: euk xic
|
||||||
|
fxy: nxi iyn
|
||||||
|
wvb: fof dzk
|
||||||
|
ill: weg vpk yqv toh
|
||||||
|
srl: gfg
|
||||||
|
svr: xzk ilh xkb gtf ebx
|
||||||
|
kko: eph czn fui
|
||||||
|
fay: wya wvx
|
||||||
|
ikm: qie
|
||||||
|
sju: lrx
|
||||||
|
lbk: gdf
|
||||||
|
fjg: hfn ibm
|
||||||
|
vso: jwh scd ins xrf
|
||||||
|
vsi: jxm zih
|
||||||
|
iao: lcx xmd mvl
|
||||||
|
ley: out
|
||||||
|
apx: ysj
|
||||||
|
pnw: hak hvg fft
|
||||||
|
fej: ngh ysj
|
||||||
|
xkz: wjb vso xxn aty
|
||||||
|
lok: rmf nqr xvf
|
||||||
|
tjs: nzq
|
||||||
|
gdf: yck eqp
|
||||||
|
ubl: gru shp
|
||||||
|
xdh: anb dzk fof
|
||||||
|
afd: teg
|
||||||
|
rbe: out
|
||||||
|
vdg: nzq evl
|
||||||
|
ejz: dgg
|
||||||
|
hux: ojt tqj bgr
|
||||||
|
xxn: scd
|
||||||
|
bgh: lcx kpp xmd mvl
|
||||||
|
wld: dep cnk nnm hfa
|
||||||
|
xgj: fxy ups tjo
|
||||||
|
guy: zgs qdh mmw oif
|
||||||
|
ocs: wjh nce lft
|
||||||
|
vot: mqo
|
||||||
|
kav: cny gjt aps
|
||||||
|
oov: rmf nqr
|
||||||
|
jwh: mmd fbs clx gyg
|
||||||
|
hfn: bwe fuv
|
||||||
|
cac: ocs dci
|
||||||
|
xjo: niz qso
|
||||||
|
yta: van
|
||||||
|
zpt: kfx mam cwc
|
||||||
|
ame: kuc lkx gxc
|
||||||
|
hvg: qxn
|
||||||
|
vdq: out
|
||||||
|
yal: rgc gfg
|
||||||
|
ssg: rxx
|
||||||
|
qbe: dhh oas vpf tas skb eqn unx xtl rjq ijy lwb blk der
|
||||||
|
joe: flu
|
||||||
|
ccc: dac liy lqv
|
||||||
|
pua: dxr sru
|
||||||
|
oas: nfc
|
||||||
|
lbv: ibm hfn quc zon vtx
|
||||||
|
wqa: tje zkz
|
||||||
|
oif: dhg
|
||||||
|
pnh: fui
|
||||||
|
mzt: ubm ame pfb oia
|
||||||
|
tbt: cvj ozn flu ufb asi
|
||||||
|
jtv: ojy ibe
|
||||||
|
izw: xix lvg
|
||||||
|
avm: cmj ufz mqo
|
||||||
|
gjt: paa
|
||||||
|
txn: guy
|
||||||
|
van: teg
|
||||||
|
vkn: mvl
|
||||||
|
qie: ibm hfn zon quc vtx
|
||||||
|
hsz: npt lwt
|
||||||
|
ayy: yuq jeo zvw
|
||||||
|
igy: fto xmd
|
||||||
|
ptz: vep rdc mhx
|
||||||
|
wqi: sgq
|
||||||
|
tjo: hsz sfy lym
|
||||||
|
epd: oln qbe els
|
||||||
|
tna: els stn aww
|
||||||
|
mhx: ocg cwu bvi
|
||||||
|
bfo: kvy
|
||||||
|
jsl: eqd wzw
|
||||||
|
hak: rms tna
|
||||||
|
akf: kpp mvl
|
||||||
|
sfu: ozn ufb asi
|
||||||
|
erg: lcx kpp xmd mvl
|
||||||
|
jar: uht gra
|
||||||
|
rum: els stn
|
||||||
|
anb: prd
|
||||||
|
tyr: guy
|
||||||
|
stn: vpf gfy ijy mof der skb rks obb xtl fmi unx
|
||||||
|
ayw: bei
|
||||||
|
mqo: kav thd alq qcs ckk fyk ojj mzt abh tqa
|
||||||
|
tje: akf icv
|
||||||
|
lzc: sfu azu
|
||||||
|
gtf: jmw fay jax val qwn zcq zpt mnc cyp wdh rkh
|
||||||
|
yck: stn els aww
|
||||||
|
kgq: wjb vso lor aty
|
||||||
|
fmu: sum clx gyg mmd
|
||||||
|
ubm: lkx
|
||||||
|
sia: gcn
|
||||||
|
huh: ntp vsi
|
||||||
|
jzc: ssg vux aem
|
||||||
|
yfb: bud
|
||||||
|
nih: mam
|
||||||
|
fto: xgj byk yta xkz pnh lna
|
||||||
|
zvl: out
|
||||||
|
qwn: hfd sia
|
||||||
|
dzk: qfe prd
|
||||||
|
jxj: eqd mzb
|
||||||
|
tas: sqm dgg ptz
|
||||||
|
rfz: ufz mqo cmj
|
||||||
|
ecn: rna sna oks
|
||||||
|
aer: yal srl
|
||||||
|
vpf: jar
|
||||||
|
ups: hsz sfy lym
|
||||||
|
bqw: sum clx fbs mmd
|
||||||
|
cdw: mvl xmd lcx
|
||||||
|
veu: wzw
|
||||||
|
ikh: brr
|
||||||
|
fzq: wsq dxr
|
||||||
|
irq: cmj
|
||||||
|
rmf: jgk nwe ykg wce mdv
|
||||||
|
dhe: zao
|
||||||
|
npv: gxk ezs
|
||||||
|
ehg: out
|
||||||
|
aiy: xur bqr rmb ayw
|
||||||
|
els: mof lwb rjq der ejz rks skb unx xtl fmi stx vpf tas aer dhh pua fzq gfy
|
||||||
|
nys: xjo wzr rcb
|
||||||
|
bba: nkp
|
||||||
|
mxd: anb zwf fof
|
||||||
|
gru: vds epg
|
||||||
|
ppa: fbs gyg
|
||||||
|
lwt: fmu hrc bqw
|
||||||
|
gqw: dep hfa
|
||||||
|
pwk: xmd kpp lcx
|
||||||
|
lwp: ilb
|
||||||
|
zvw: vty nbi ogq
|
||||||
|
guf: stn oln els aww
|
||||||
|
ocv: kzf huh
|
||||||
|
wsf: gkc uht
|
||||||
|
buy: vhu qdh oif
|
||||||
|
xvf: mdv wce nwe jgk
|
||||||
|
blf: leu ehk
|
||||||
|
zgs: tvc dhg fcn
|
||||||
|
fhd: aty vso xxn
|
||||||
|
fmi: dhe npb avc mvk bxo
|
||||||
|
fox: lbv fjg
|
||||||
|
iqo: msk ocd oks
|
||||||
|
ufb: fhz erl lbk ogz umv vkr pnw qoa onk tej rqf jzc hmv
|
||||||
|
sru: gfg
|
||||||
|
rcb: rbe
|
||||||
|
teg: tji keq ppa
|
||||||
|
ikf: ufb asi flu
|
||||||
|
bxo: thy nvf
|
||||||
|
weg: fmw
|
||||||
|
lkx: xfi
|
||||||
|
qky: xxs dwh wat
|
||||||
|
zqy: eer ypx
|
||||||
|
ckk: ocv gga xpa
|
||||||
|
qnl: ftw lco
|
||||||
|
tcj: hcg
|
||||||
|
rxx: dyl cji
|
||||||
|
sps: mqo
|
||||||
|
snz: fox nmg ikm
|
||||||
|
upo: asi ozn
|
||||||
|
kuc: qyh wot
|
||||||
|
znu: igy
|
||||||
|
niz: out
|
||||||
|
ocd: mvl fto xmd
|
||||||
|
zle: vds epg kuh
|
||||||
|
gga: spp kzf
|
||||||
|
tbz: gyk dep cnk hfa
|
||||||
|
zkc: ley
|
||||||
|
cqr: xfg mxd
|
||||||
|
ezs: out
|
||||||
|
cwc: cbk
|
||||||
|
nbi: ppz lok oov
|
||||||
|
wce: out
|
||||||
|
ntp: lrx bok
|
||||||
|
vyj: dgg ptz
|
||||||
|
atl: ozn
|
||||||
|
uph: leu ehk teg
|
||||||
|
mcm: rmo aem
|
||||||
|
skb: mvk
|
||||||
|
pzu: you
|
||||||
|
dgt: ium ykj
|
||||||
|
oyn: asi flu ufb
|
||||||
|
jeo: vty nbi
|
||||||
|
ehk: tji qzs keq ppa
|
||||||
|
ysj: nrs avm vot
|
||||||
|
pxi: stn oln
|
||||||
|
gxc: yed qyh wot
|
||||||
|
cwu: xjr igy oht
|
||||||
|
qez: ayw pto xur bqr
|
||||||
|
jgp: asi cvj
|
||||||
|
dep: clx gyg sum
|
||||||
|
ahw: bba bud ilb wqy
|
||||||
|
keq: clx gyg
|
||||||
|
tyc: ufz
|
||||||
|
wjb: scd
|
||||||
|
bns: kfx mam vjd
|
||||||
|
zkz: fbj icv
|
||||||
|
eph: tbz
|
||||||
|
xmd: fhd bwh cac pnh gmc izt kgq ayq yta xkz kko yly
|
||||||
|
ica: jzl ykj
|
||||||
|
asz: blf
|
||||||
|
oln: ijy lwb mof obb unx vyj ejz wqa aer tas vpf fzq gfy pua
|
||||||
|
iyn: kht lwt
|
||||||
|
alq: eux oia ubm
|
||||||
|
shp: epg
|
||||||
|
fft: rms qxn tna
|
||||||
|
ijy: jvq mms nfc
|
||||||
|
rjk: ecn
|
||||||
|
euz: anb dzk
|
||||||
|
euk: xak
|
||||||
|
fof: zvl
|
||||||
|
obb: isv tje
|
||||||
|
wot: zqy
|
||||||
|
eqn: mms nfc
|
||||||
|
yed: uef dyo
|
||||||
|
mnc: zqk lgu izw asb
|
||||||
|
tej: yws dgt ica
|
||||||
|
mrh: gyg mmd fbs
|
||||||
|
bgr: mqs epd
|
||||||
|
mvk: zao ill
|
||||||
|
gyk: fbs gyg
|
||||||
|
ebx: qft jax fjj fay rkh acj vdg zpt mnc zcq qwn val gfx fug jmw abi nih ycs wdh cyp ymi
|
||||||
|
wya: fio anx
|
||||||
|
qcs: bqr ayw
|
||||||
|
kth: out
|
||||||
|
kfx: jws yoz cbk
|
||||||
|
nqr: nwe ykg wce jgk
|
||||||
|
dci: ufh nce mrh
|
||||||
|
kjy: qbe els stn aww
|
||||||
|
xrb: cny aps
|
||||||
|
trv: vct atl joe
|
||||||
|
paa: wvb euz
|
||||||
|
zdm: ngh rew qnk
|
||||||
|
qnr: asi
|
||||||
|
ddh: gcn ult
|
||||||
|
wvx: anx ejr trv
|
||||||
|
vih: lrx jxm bok
|
||||||
|
xvj: lqv liy
|
||||||
|
xax: cmj you mqo
|
||||||
|
wzw: wfb mix rfz sps
|
||||||
|
mbe: azu upo itg
|
||||||
|
rdc: ocg
|
||||||
|
thy: weg toh
|
||||||
|
ibe: yck pxi cfp
|
||||||
|
eqd: sps wfb mix rfz qsk
|
||||||
|
qtf: zbg rxx hbd qdy
|
||||||
|
ymi: xer
|
||||||
|
lgu: kop xix lvg
|
||||||
|
xxs: hux tth
|
||||||
|
blk: wsf sxb
|
||||||
|
fbs: rzx uit wec vwu veu sak fpe apx
|
||||||
|
toh: jer hwg fmw
|
||||||
|
xkb: zpt zcq bns mnc gfx
|
||||||
|
rqf: xxs
|
||||||
|
stx: jar wsf
|
||||||
|
gmc: eph fjq
|
||||||
|
kuh: xax pzu pid amz
|
||||||
|
xix: ikf pek oyn
|
||||||
|
nkp: cmj you ufz
|
||||||
|
mqv: cmj
|
||||||
|
ufz: gwp kav thd ojj ayy fyk mzt tri snz csm tqa abh xrb alq qez qcs fkj lae aiy
|
||||||
|
tnv: asi cvj
|
||||||
|
auw: ozn
|
||||||
|
mms: htl vkn iao
|
||||||
|
gxf: kzf huh spp
|
||||||
|
yuq: vty
|
||||||
|
sxb: gkc
|
||||||
|
dgg: mhx rdc vep
|
||||||
|
dhg: irq pqe
|
||||||
|
isz: xft lzc bwx
|
||||||
|
xzm: you cmj
|
||||||
|
ngh: mqv vot lgv
|
||||||
|
fjq: tbz ahr gqw cgm
|
||||||
|
cyp: zqk
|
||||||
|
mam: qmc
|
||||||
|
byk: vxd dci
|
||||||
|
dyl: rzq
|
||||||
|
fpe: hcg ccc
|
||||||
|
mvl: xkz ayq kgq izt vkq lna pnh gmc yly byk bwh asz cew fhd xgj cac
|
||||||
|
vkq: vso wjb lor
|
||||||
|
sfy: npt kht
|
||||||
|
cew: czn eph fui
|
||||||
|
ftw: ufb ozn
|
||||||
|
smb: stn oln aww
|
||||||
|
tqj: xgy mqs rum epd
|
||||||
|
vrr: rzq smb
|
||||||
|
vxd: mrh ufh
|
||||||
|
mmd: tyr ubl fpe sak bfo veu lwp ysq rzx vpd eit tcj fej ahw txn yfb vwu
|
||||||
|
xur: xic bei
|
||||||
|
msk: lcx kpp mvl fto
|
||||||
|
umv: qwp pkk dgt
|
||||||
|
xgy: qbe oln aww
|
||||||
|
aps: cqr umy
|
||||||
|
cvj: qky ogz umv pnw tej lbk jzs tog fhz vkr hty lbo rqf jzc qoa onk
|
||||||
|
aic: kfx vjd mam
|
||||||
|
hcg: lqv liy
|
||||||
|
qnk: nrs avm mqv vot
|
||||||
|
yws: jzl
|
||||||
|
qmc: rdz jqd lyi tpq
|
||||||
|
nok: fjg lbv
|
||||||
|
jgk: out
|
||||||
|
thd: gga
|
||||||
|
gfg: jok ecn iqo
|
||||||
|
gfy: sqm
|
||||||
|
gcn: cvj flu ufb asi
|
||||||
|
dhh: avc
|
||||||
|
xer: gcn ult
|
||||||
|
uht: cdw
|
||||||
|
xjj: sum gyg
|
||||||
|
prd: out
|
||||||
|
asb: lvg htv kop
|
||||||
|
cmj: gwp kav thd ayy mzt snz csm tqa abh zce alq qcs qez lae
|
||||||
|
lae: aps gjt cny
|
||||||
|
hex: vty nbi ogq
|
||||||
|
ykj: oln stn qbe
|
||||||
|
zce: cny
|
||||||
|
kzf: ntp vsi vih
|
||||||
|
ojj: ocv gxf
|
||||||
|
yqv: hwg
|
||||||
|
zqk: lvg kop
|
||||||
|
aty: ins
|
||||||
|
npt: bqw fmu hrc
|
||||||
|
pid: cmj you ufz
|
||||||
|
wdh: wvx wya
|
||||||
|
sum: jxj tcj imw ysq jsl sak veu
|
||||||
|
fio: jgp tpt joe atl vct
|
||||||
|
nfc: uix nxy
|
||||||
|
mno: you
|
||||||
|
wec: mzb eqd
|
||||||
|
qyh: dyo zqy uef
|
||||||
|
pto: bei xic euk
|
||||||
|
spp: vsi sju ntp
|
||||||
|
der: bxo
|
||||||
|
vjd: cbk qmc jws yoz
|
||||||
|
cfp: oln stn els qbe aww
|
||||||
|
eqp: oln qbe stn els
|
||||||
|
csm: yuq jeo zvw
|
||||||
|
mdv: out
|
||||||
|
fmw: mvl
|
||||||
|
yoz: lyi
|
||||||
|
acj: zqk lgu izw
|
||||||
|
umy: wvb euz xdh
|
||||||
|
kop: tnv ikf oyn auw
|
||||||
|
ysq: ccc xvj
|
||||||
|
cny: umy paa
|
||||||
|
val: kfx vjd
|
||||||
|
ycs: ddh
|
||||||
|
jzl: els qbe
|
||||||
|
avc: thy nvf ill
|
||||||
|
rzx: qnk
|
||||||
|
bwh: afd blf van uph
|
||||||
|
qdy: cji bfd
|
||||||
|
flu: jzc qoa lbo qky umv hty jzs mcm
|
||||||
|
pgw: fmw erg jer
|
||||||
|
you: qcs ckk fkj xrb csm lae
|
||||||
|
jer: kpp
|
||||||
|
wsq: rgc
|
||||||
|
sak: guy kvy buy
|
||||||
|
rqb: mvl xmd
|
||||||
|
bud: mno xzm nkp
|
||||||
|
xrf: sum gyg
|
||||||
|
vkr: xxs wat dwh
|
||||||
|
gxk: out
|
||||||
|
nzq: lco
|
||||||
|
lcx: ukv yta eny vkq fhd gmc pnh uor cew
|
||||||
|
rjq: tje zkz
|
||||||
|
fhz: fft hak
|
||||||
|
xxh: xjo gwd
|
||||||
|
lvg: oyn
|
||||||
|
zbg: ysi
|
||||||
|
mqs: aww stn qbe els oln
|
||||||
|
uor: tjo ups
|
||||||
|
jzs: hvg fft
|
||||||
|
ufh: mmd sum
|
||||||
|
xpa: huh kzf spp
|
||||||
|
oia: lkx xpq
|
||||||
|
imw: kvy guy
|
||||||
|
tpt: ufb asi
|
||||||
|
mzb: wfb rfz sps
|
||||||
|
unx: sqm
|
||||||
|
ykg: out
|
||||||
|
rzq: els aww
|
||||||
|
hrc: fbs clx
|
||||||
|
tfl: lft nce ufh wjh
|
||||||
|
fuv: vdq gxk ezs
|
||||||
|
abi: wqi
|
||||||
|
ysi: kjy
|
||||||
|
rkh: zww wqi ikh
|
||||||
|
vtx: fuv npv zkc
|
||||||
|
wzr: niz rbe qso
|
||||||
|
wat: lkt hux tth lad
|
||||||
|
rgc: iqo jok
|
||||||
|
hty: vux rmo
|
||||||
|
ium: stn els oln aww
|
||||||
|
pfb: kuc
|
||||||
|
xzk: qft gfx fug fjj abi jmw fay ycs vdg mnc
|
||||||
|
uix: xmd fto
|
||||||
|
fug: ikh
|
||||||
|
qwp: ium ykj jzl
|
||||||
|
lco: asi cvj
|
||||||
|
cji: evd rzq kjy
|
||||||
|
scd: gyg clx sum mmd
|
||||||
|
isv: icv akf orc
|
||||||
|
pda: cmj
|
||||||
|
ypx: out
|
||||||
|
qxn: aww qbe oln stn els
|
||||||
|
gyg: apx lwp vqb yes fpe sak bfo jsl ysq jxj txn fej wec zdm rzx tcj eit
|
||||||
|
kvy: oif mmw vhu zgs
|
||||||
|
zao: toh pgw yqv
|
||||||
|
cgm: nnm gyk
|
||||||
|
uef: kth
|
||||||
|
wcn: out
|
||||||
|
lqv: vmi
|
||||||
|
nvf: yqv weg toh
|
||||||
|
nmg: lbv
|
||||||
|
htl: kpp lcx
|
||||||
|
oao: znu cwu
|
||||||
|
fjj: ikh wqi
|
||||||
|
orc: xmd mvl fto
|
||||||
|
tji: mmd fbs clx sum
|
||||||
|
gwd: qso niz
|
||||||
|
ilb: nkp xzm mno
|
||||||
|
ahr: dep
|
||||||
|
ocg: bgh xjr igy oht bzh
|
||||||
|
dac: pda vmi bhz rjb tcc
|
||||||
|
kpp: bwh xgj byk cew uor gmc
|
||||||
|
lyi: cvj ufb ozn
|
||||||
|
bzh: fto mvl lcx kpp
|
||||||
|
tog: qwp
|
||||||
|
izt: fxy
|
||||||
|
vhu: fcn
|
||||||
|
rms: els qbe oln
|
||||||
|
tth: yrk tqj ojt
|
||||||
|
bwe: vdq gxk ley
|
||||||
|
oks: mvl xmd kpp
|
||||||
10
day11/sample
Normal file
10
day11/sample
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
aaa: you hhh
|
||||||
|
you: bbb ccc
|
||||||
|
bbb: ddd eee
|
||||||
|
ccc: ddd eee fff
|
||||||
|
ddd: ggg
|
||||||
|
eee: out
|
||||||
|
fff: out
|
||||||
|
ggg: out
|
||||||
|
hhh: ccc fff iii
|
||||||
|
iii: out
|
||||||
73
day11/sol.py
Normal file
73
day11/sol.py
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
import heapq
|
||||||
|
def solve(input):
|
||||||
|
G = {}
|
||||||
|
V = []
|
||||||
|
for line in open(input):
|
||||||
|
parts = line.split()
|
||||||
|
v = parts.pop(0).strip(':')
|
||||||
|
V.append(v)
|
||||||
|
G[v] = parts
|
||||||
|
|
||||||
|
sinks = [e for edges in G.values() for e in edges if e not in V]
|
||||||
|
V += sinks
|
||||||
|
for v in sinks:
|
||||||
|
G[v] = []
|
||||||
|
|
||||||
|
# reversed graph
|
||||||
|
R = {}
|
||||||
|
for v, E in G.items():
|
||||||
|
for e in E:
|
||||||
|
R.setdefault(e, []).append(v)
|
||||||
|
|
||||||
|
# topological sort
|
||||||
|
# T is an order of vertices such that each vertex is
|
||||||
|
# listed _after_ all the vertices connected to its incoming edges.
|
||||||
|
T = []
|
||||||
|
seen = set()
|
||||||
|
def visit(v):
|
||||||
|
if v not in seen:
|
||||||
|
seen.add(v)
|
||||||
|
for e in R.get(v,()):
|
||||||
|
visit(e)
|
||||||
|
T.append(v)
|
||||||
|
|
||||||
|
visit('out')
|
||||||
|
#T.reverse()
|
||||||
|
#print(T)
|
||||||
|
|
||||||
|
def paths(start,end):
|
||||||
|
Q = [(0,start)]
|
||||||
|
seen = set()
|
||||||
|
paths = {v:0 for v in V}
|
||||||
|
paths[start] = 1
|
||||||
|
for v in T:
|
||||||
|
if v in seen:
|
||||||
|
continue
|
||||||
|
seen.add(v)
|
||||||
|
for e in G[v]:
|
||||||
|
paths[e] += paths[v]
|
||||||
|
#print(paths)
|
||||||
|
return paths[end]
|
||||||
|
|
||||||
|
if 'you' in G:
|
||||||
|
# Part 1:
|
||||||
|
# find all paths from you -> out
|
||||||
|
print(paths('you', 'out'))
|
||||||
|
|
||||||
|
if 'svr' in G:
|
||||||
|
# Part 2: find all paths that pass through
|
||||||
|
# svr -> fft -> dac -> out, or
|
||||||
|
# svr -> dac -> fft -> out.
|
||||||
|
sf = paths('svr', 'fft')
|
||||||
|
sd = paths('svr', 'dac')
|
||||||
|
fd = paths('fft', 'dac')
|
||||||
|
df = paths('dac', 'fft')
|
||||||
|
do = paths('dac', 'out')
|
||||||
|
fo = paths('fft', 'out')
|
||||||
|
|
||||||
|
print(sf*fd*do + sd*df*fo)
|
||||||
|
|
||||||
|
|
||||||
|
solve("sample")
|
||||||
|
solve("sample2")
|
||||||
|
solve("input")
|
||||||
Loading…
x
Reference in New Issue
Block a user