Days 8-11
This commit is contained in:
@@ -1 +0,0 @@
|
|||||||
/nix/store/ribr3gc7kazm282bxiqpmjy9j2h4jaxk-source
|
|
||||||
195
10-input.txt
Normal file
195
10-input.txt
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
[..#.##] (0,1,3,4) (0,3,4) (0,5) (0,1,2) (3,5) (0,2,3,4) (2,3) {58,27,37,57,37,24}
|
||||||
|
[####] (0,1,2,3) (0,1,3) {180,180,10,180}
|
||||||
|
[#.#.] (2) (1,3) (0,2) (0,1,2) (0) (1,2,3) {27,9,26,9}
|
||||||
|
[#.####...#] (2,5,6) (0,1,3,4,6,7) (0,1,2,3,4,5,7,8) (3,6) (3,4,6,7) (0,2,3,5,7,8,9) (0,1,2,3,4,5,7) (1,2,3,4,5,9) {37,37,56,66,48,56,48,48,10,20}
|
||||||
|
[#.#.##....] (0,2,3,4,5,7,9) (0,1,4,5,6,7) (0,2,3,5,8,9) (0,1,3,4,6,7,9) (0,1,2,3,5,6,8,9) (0,4,7) (2,3,4,8,9) (1,2,3,5,7,8,9) {189,165,28,35,188,174,158,192,14,35}
|
||||||
|
[.#.#.#] (0,1,2,3,5) (1,3,5) (2,4,5) (3,4,5) (0,1,2,4) (0,3) {25,18,25,15,25,15}
|
||||||
|
[.##....##.] (0,1,2,4,5,6,7,8) (1,2,3,5,6,7,8,9) (0,2,3,4,5,6,7,8) (0,3,5) (2,3,5,6,7,8,9) (2,3,6,7) (4,5,9) (1,2,3,6,9) (1,4,5,6,7,8) (2,3,4,6,9) (1,2,4,6,7,8,9) {14,26,46,38,43,42,48,40,31,45}
|
||||||
|
[.##...##.] (1,3,6) (0,2,6,7,8) (0,5,7,8) (2,5,7) (3,4,5,6,7,8) (0,1,2,3,5,6,7) (1,2,3,4,6) (2,3,4,5) (0,1,3,5,6,7,8) {34,37,37,191,163,206,188,203,180}
|
||||||
|
[.####.#.] (0,1,2,3,4,6) (1,2,3,4,5) (5,6,7) (1,2,4,5,7) (0,1,2,3,4,6,7) (0,2,3,4,7) {30,42,52,49,52,27,25,30}
|
||||||
|
[##.###] (0,3) (0,2,4) (1,2,3,5) (0,1,4,5) {23,31,29,20,22,31}
|
||||||
|
[...#.###] (1,5,6) (6) (6,7) (2,4,5,7) (1,2,3,5,6,7) (3,5,6,7) (0,1,3,7) (1,2,3,4,5,7) (0,1,2,5,7) {30,70,54,53,25,84,60,94}
|
||||||
|
[#..##] (0,3,4) (0,1,2,4) (0,2,4) {38,3,23,15,38}
|
||||||
|
[#....] (0,1,2) (3,4) (2,3) (0,1,2,4) (0,3,4) {52,39,46,23,35}
|
||||||
|
[###.] (0,2,3) (1) (0,2) {8,18,8,2}
|
||||||
|
[##..] (1,2) (0,3) (0,1) (2,3) {8,13,13,8}
|
||||||
|
[##..#####] (1,3,7) (1,5,6,7) (0,2,3,5,7,8) (0,1,2,3,4,5,7,8) (0,1,4,5,6,7,8) (4,5,6,7,8) (0,2,3,4,6,7,8) (4,7,8) (0,1,2,3,4,5,8) (1,6) (1,2,4,5,7,8) {59,105,73,73,93,92,51,124,103}
|
||||||
|
[####..##.#] (2,3,5,7,8,9) (0,3,5,6,8) (1,3,7,8) (0,2,3,5) (1,2,3,4,5,6,7,8) (3,5,7) (9) (0,1,3,4,6,7,8) (0,1,2,3,4,5,7,9) (0,1,2,3,4,5,6,9) (5,8) (2,3,5) {47,30,68,91,24,97,20,46,53,53}
|
||||||
|
[##.#.#.] (0,2,3,5,6) (0) (1,2,4) (1,2,3,6) (2,4) (3,6) (0,3,6) (0,1,3,5) (2,3,4,5,6) {42,28,156,67,138,35,53}
|
||||||
|
[..###..#] (1,5,6,7) (0,2,3,5,6,7) (1,2,3,4,7) (0,2,4,5) (0,1,2,4,5,7) (0,3,5,7) (0,7) (2,3,4,6,7) {47,45,49,46,49,55,30,85}
|
||||||
|
[#.#.] (1,2) (0,3) (2,3) (0,2) (0,2,3) (0,1,2) {67,37,82,45}
|
||||||
|
[..##.] (0,2,3) (1,3,4) (3,4) (0,1,2,4) (0,1,2) (0,1,4) (1,2,4) {40,49,21,30,53}
|
||||||
|
[#....##..#] (1,2,3,4,5,6,8) (1,3,5,6) (2,3,7,9) (1,2,4,6,8) (2,3,5,8) (1,3) (2,8,9) (1,5) (0,4,6,8) (1,2,3,5,6,7,8,9) (0,6,7) {29,63,88,63,45,54,74,40,86,37}
|
||||||
|
[.#.####..#] (1,2,3,5,6,7) (0,3,5,9) (0,1,4,5,7,9) (0,1,2,3,4,7,8,9) (0,1,4,6,7,8,9) (0,1,4,5,6,8,9) (0,2,3,4,6,7,8,9) (1,7) (1,3,4,5,7,8) (0,1,2,3,4,5,8) {62,241,38,67,57,67,40,223,56,43}
|
||||||
|
[##.#.###..] (1) (0,2,9) (0,2,4) (0,2,4,5,8,9) (0,1,3,4,5,6,7,8) (1,6,8) (0,4,5) (2,4,6,8,9) (0,1,7,8,9) (1,4,8) (0,1,3,4,7,8) (2,3,5,6,7,9) {44,30,37,16,49,27,23,22,40,36}
|
||||||
|
[#.#.#.#] (0,2,3,5) (0,3) (1,6) (0,2,4,6) (0,1,2,3,5,6) (2,6) (0,3,4,6) (1,2,3,5,6) {20,21,37,28,12,19,40}
|
||||||
|
[#....#.###] (1,2,4,5,6,8,9) (1,3,4,5,6,9) (4,5,7) (5,7,8) (0,1,2,5,6,7,8,9) (0,4,5,8,9) (0,1,2,4,5,6,8,9) (1,3,5,6,8,9) {43,49,40,9,58,77,49,21,66,66}
|
||||||
|
[..####.##.] (1,3,5,7,8) (1,2,6,8) (0,1,4,5,9) (0,1,2,3,5,6,7,9) (0,1,2,3,4,6,7,8,9) (0,2,3,6,7,8) (1,2,3,5,6,7,8) (1,2,6,7) (2,3,4,6,7,9) (0,9) (1,6,9) (0,2,3,5,8) (1,6,7,8) {54,114,114,97,37,43,144,134,87,67}
|
||||||
|
[....#] (0,1,4) (2) (0,2,3) (4) (0,1,2) (1,2) {35,44,56,11,22}
|
||||||
|
[#...###] (3,4) (0) (0,1,2,4,5) (0,3,5) (4,6) (0,1,3) (1,5) (2,4,5) (5,6) {50,35,14,27,39,57,40}
|
||||||
|
[#....#] (1,2,3,4) (0,3,4) (0,1,2) (0,2) (1,3,4) (0,3,4,5) (1,4) (5) {29,33,16,16,30,19}
|
||||||
|
[...#.##.] (1,3,6,7) (0,1,3,4,5,6) (0,4,5,6,7) (0,1,2,5,6) (2,4,5) (0,1,2,4,5,6) {143,144,146,18,163,163,147,7}
|
||||||
|
[..##..#] (2,3,4) (0,1,4,5,6) (1,2,5,6) (0,1,2,3,4,5) (1,2,3) {22,34,27,19,34,30,27}
|
||||||
|
[#.#.] (1,2,3) (0,1,2,3) (0,1,3) {21,33,21,33}
|
||||||
|
[#....#..] (2,3,4,5,6) (0,1,2,4,7) (0,3,5,7) (0,1,5,6,7) (1,2,3) (4) (2,3,4) (0,1,2,3,4,5) (1,6,7) {38,69,72,62,74,45,50,43}
|
||||||
|
[##.#...] (1,2,4,5) (0,1,2,5) (0,2,5,6) (1,3,5) (0,1,2,5,6) (1,5,6) (3,4) (1,2,3,5,6) (0,2,6) {44,87,80,47,37,96,81}
|
||||||
|
[#...##.#.#] (2,3,7,8,9) (3,5) (0,1,3,4,5,6,8,9) (0,2,5,6,7,8) (2,4,6,8,9) (6,9) (0,1,2,3,4,6,7,9) (0,3,4,5,9) (0,1,2,4,5,9) {69,45,60,54,58,69,63,38,55,66}
|
||||||
|
[...#] (0,3) (0,1) (2,3) (0,2,3) (1,3) (2) {21,190,34,216}
|
||||||
|
[#.##..#.#.] (0,6,9) (0,1,3,4,5,6,7,8,9) (0,2,3,4,5,7,8,9) (1,3,4,6,7,8,9) (0,1,2,4,5,6,7,8,9) (0,1,2,3,4,5,6,8,9) (0,1,2,3,6,7,9) (0,3,4,5) (0,1,2,3,4,6,8,9) {71,41,47,56,60,46,57,42,57,76}
|
||||||
|
[#.#...] (3) (4,5) (2,5) (0,3) (1) (1,3,5) (0,1,4,5) (0,1,2,5) {41,61,29,14,33,68}
|
||||||
|
[....#.#.] (0,2,3,4) (3) (0,1,3,4,6,7) (0,1,2,4) (1,4,6,7) (4,6) (0,2,3) (3,5) {29,19,24,236,41,17,29,19}
|
||||||
|
[.#.#.] (1,2,4) (0,1,3) (2,4) (0,1,2,3) (2,3,4) (1,2,3) {9,31,42,30,19}
|
||||||
|
[#...#..#.#] (1,2,3,6) (1,2,4) (0,1,2,3,4,6,7,8) (0,4,7,9) (0,2,3,9) (0,6,7,8) (1,2,3,5,7,9) (0,1,2,4,5,7,8) (0,1,2,3,4,5,6) {51,199,203,45,179,24,47,54,37,21}
|
||||||
|
[..#.] (0,3) (1,2,3) (1,3) (0,1) (3) {19,22,5,16}
|
||||||
|
[.#.#.] (0,1,2,3) (0,1,3,4) (1,2) (1,2,3,4) {189,194,23,192,174}
|
||||||
|
[#....#.] (3) (0,1,2,4,5,6) (4,5,6) (0,2,4,6) (1,2,4,6) (1,4) {30,20,33,5,55,33,52}
|
||||||
|
[.##.##] (0,1,3,5) (0,2,4,5) (1,3,4) (0,2,3,4) (0,2,3,5) (0,2,3,4,5) (2,5) {45,14,43,44,27,41}
|
||||||
|
[.#####.#.] (1,2,3,5,6,8) (0,1,3,4,5,6,8) (1,3,5,6) (0,2,4,5,7,8) (0,1,2,3,4,6,7,8) (1,3,6,8) (0,1,3,7,8) {46,60,47,60,32,48,46,46,61}
|
||||||
|
[...###.#.] (0,2,3,4,5,7) (0,4,6,7,8) (1,3,4,6,7,8) (0,1,2,3,4,7,8) (0,1,2,4,6,7) (1,2) (0,1,4,8) (0,5) (0,1,2,3,4,5,8) (0,1,2,3,5,6,8) (2,4,5,8) {79,55,68,52,71,52,50,50,56}
|
||||||
|
[####.#.#] (0,1,2,4,5,6,7) (0,1,2,3,5,7) (0,2,3,4,5,6,7) (0,1,2,3,4,7) (0,3,4,5,6) (5,6) {28,9,18,27,25,23,20,18}
|
||||||
|
[.##.#.#.##] (1,3,5) (4,5,8) (1,4,6,7,8,9) (2,3,4,5,7,8,9) (0,1,2,6) (0,1,2) (0,1,2,3,4,5,6,9) (0,1,4,5,6) (0,4,5,7) (0,1,2,7,8) (2,3,4,5,8,9) (4,6,7,9) {57,56,54,24,52,50,32,20,38,26}
|
||||||
|
[####.#] (1,4) (2) (1,3) (0,1,3,5) (0,2,5) {169,181,17,172,9,169}
|
||||||
|
[.#.###] (3,5) (2,3,5) (1,3,4,5) (0,2,3,5) (1,2) (3,4) (3) {0,131,17,161,137,147}
|
||||||
|
[#.#.#..] (0,5,6) (1,3,4) (0,1,6) (2,4) (2,4,5,6) {22,13,13,11,24,21,23}
|
||||||
|
[##.###] (0,2,3,4,5) (2,3,5) (2,3,4,5) (1,3,4,5) {15,16,37,53,45,53}
|
||||||
|
[...#] (1) (0,2,3) (3) (0,1,2) {33,20,33,21}
|
||||||
|
[..#...##.] (2) (0,4) (2,3,5,6) (1,2,4,5,8) (2,3,4,5,7) (1,2,3,4,5,7) (3,4,6) (1,4) (3,4,8) (4,8) {6,22,51,35,46,35,14,16,13}
|
||||||
|
[...#..##.] (0,1,2,3,5,6,8) (1,3,4,5,6) (0,5,7,8) (0,2,3,7,8) (1,2,3,6,7) (0,4,7) (6,7) (2,3,7,8) {22,40,29,45,21,29,56,41,18}
|
||||||
|
[#.##] (0,2) (2,3) (0,1,3) (1,2) (1,3) {31,25,36,28}
|
||||||
|
[####...] (0,1,4,5,6) (0) (0,2) (2,3,4,5,6) (0,2,3,4) (3,5) (5,6) {39,0,28,25,13,35,23}
|
||||||
|
[.##.] (2,3) (0) (0,1,2) (1,2,3) (0,1) {34,27,24,17}
|
||||||
|
[..#..#] (0,2,4,5) (0,1,2,3,5) (2,4) (0,3,5) (0,1,2,4) {43,23,51,25,33,38}
|
||||||
|
[##.....] (0,4) (0,3) (0,1,2) (0,2,3,4,5) (2,3,4) (6) (0,1,2,3,4) (3,5) {193,19,50,215,48,37,16}
|
||||||
|
[##.....##.] (2,4,5,8) (1,2,6) (2,3,5,6,7,8,9) (0,1,2,3,4,5,7,8) (1,4,5,6,7,9) (3,4,5,6) (2,3,5,7,8,9) (1,4,8) (2,5,6) (0,1,4,5,7,9) (1,7) (0,4,7,9) (0,1,3,4,5,6,7,8) {27,64,50,65,87,100,78,81,70,54}
|
||||||
|
[..#..] (1,2,3,4) (0,2,3) (0,3) (0,4) (2,3) (1) {34,33,52,54,38}
|
||||||
|
[##..#..] (6) (1,2,3,6) (1,5) (0,2,3,4,6) (1,4,6) (2,4,5) (0,2,4,5,6) (0,4) (0,1,2,5,6) {38,47,64,30,35,49,50}
|
||||||
|
[#..####] (0,2,3,5,6) (2,3,6) (0,1,2,3,5) (0,1,2,3) (1,3,4) (0,1,3,4) {165,176,169,199,30,28,23}
|
||||||
|
[#..#.] (0,3) (0,1,3,4) (1,3) (2,3,4) (3,4) (2,4) (0,1,2,4) {13,28,20,30,31}
|
||||||
|
[........#.] (6,8,9) (0,1,2,3,5,7,8,9) (3,7) (0,1,2,3,4,7,8,9) (2,4,6,7,8) (3,7,8) (0,1,3,5,6,8,9) (0,2,4,5,7,9) (0,5,8) (0,1,2,3,5,6,7) {166,36,163,49,133,165,39,176,36,156}
|
||||||
|
[#.##..#.] (1,3,5,6,7) (0,2,5) (0,1,2,5,6,7) (0,2,5,6) (1,2,3,5,6,7) (0,1,4,6) (0,1,5,6,7) (0,1,5,6) (1,2,7) (4,7) {78,60,50,7,31,70,75,50}
|
||||||
|
[.###] (1,2,3) (0,2) {7,20,27,20}
|
||||||
|
[..#...#.] (2,3,4,5,6) (0,2) (0,2,3,5) (3,4,5) (1,2,3,7) (1,2,3,4,5,7) (3,5) (0,1,2,3,4,7) (0,1,2,6,7) (0,1,3,4,6) {192,193,70,229,203,49,180,34}
|
||||||
|
[.####.#] (0,2,3,4) (0,3,4,5,6) (1,2,3,4,5,6) (1,3,4,5) (0,3) {126,24,116,150,142,34,18}
|
||||||
|
[#..##..#.] (3,7) (2,6,7,8) (4,5) (1,4,5,6,8) (0,1,2,3,7) (0,7,8) (0,2,4,6,7,8) (0,2,3,4,6,7,8) {45,22,61,30,29,5,49,73,53}
|
||||||
|
[..#.#] (0,1,2,4) (0,2,3,4) (0,3) (1,2,4) {33,31,50,21,50}
|
||||||
|
[...#..##] (0,1,4,5,6) (0,1,3,5) (4,5) (0,1,2,5,6,7) (0,1,2,4,5,7) (0,2,3,5,6) (2,5) (0,5) (0,2,6,7) {70,33,201,8,32,234,53,32}
|
||||||
|
[#.....##] (2,4,5,6) (0,1,2,4,5,6) (0,1,2,5,6,7) (0,1,4,5,6) (0,2,5,6) (0,1,2,3,6,7) (0,1,2,3,4,7) (3,7) (0,3,4,5,6,7) {258,230,249,33,60,262,266,225}
|
||||||
|
[##.#.##] (2,4) (0,2) (1,3,4,5,6) (1,5) (0,4,5,6) (2,3) (0,4) (1,6) {26,30,130,105,19,16,20}
|
||||||
|
[.#.##.##] (2,3) (1) (2,4,7) (0,1,2,3,7) (2,4,6,7) (0,1,2,4,7) (1,3,5,6,7) (2) (1,3,4,7) (0,5,6,7) {29,58,66,55,56,23,31,87}
|
||||||
|
[.###..#.#] (1,2,3,6,7,8) (0,1,2,5) (0,3,4,6,7,8) (2,6,7) (0,1,3,5,6,8) (1,5) (0,1,2,5,6,8) (0,1,4,5,6,7) {35,46,29,26,6,40,47,22,35}
|
||||||
|
[..#...] (1,3,4,5) (0,3,5) (0,1,2,4) (0,1) (2,3,5) {39,31,27,41,27,41}
|
||||||
|
[#.##.###.] (1,3,6,8) (0,7) (1,2,5,7,8) (0,1,2,3,4,6,7) (4,6) (0,2,4,7,8) (2,4) (2,5,6,8) (3,4,5,8) (1,7,8) {25,28,46,16,39,19,18,41,43}
|
||||||
|
[.#...#.] (0,6) (0,1,2,4,5,6) (0,2,6) (0,1,2,5) (0,1,2,4) (1,2,3) (0,1,2,5,6) {61,48,67,14,16,19,38}
|
||||||
|
[##.#.] (0,1,3) (1,4) (1,2,3) {12,135,123,135,0}
|
||||||
|
[#.##] (0,2,3) (0,1,3) {27,19,8,27}
|
||||||
|
[.##...#..#] (0,2,3,4,5,6,7,9) (4,6) (2,3,4,6,7,8,9) (1,2,4) (0,1,2,3,5,6) (0,1,3,5,7,8) (1,3,5,6,7,8,9) (0,2,3,4,5,7,8,9) (1,2) (0,3,4,5,6,7,8,9) (1,9) {52,37,48,65,47,55,53,48,46,47}
|
||||||
|
[..#.] (0,1,2) (0,2,3) (0,3) (0,2) {26,13,24,11}
|
||||||
|
[#.#.##.#.#] (0,1,2,3,4,5,6,8) (0,1,2,3,5,6,7,8,9) (0,1,3,7,8) (0,1,2,3,4,6,7,8,9) (0,1,2,4,5,6,8,9) (4,5,6,7,9) (1,5,7,8) (0,1,2,3,5,6,8) (5,7,8) (0,2,3,4,5,6,9) {97,90,77,83,165,210,190,180,104,167}
|
||||||
|
[...#.] (0,3) (0,1,3,4) (1,2) (1,3,4) (3) {134,158,19,155,139}
|
||||||
|
[...#] (0,3) (0,2,3) (0,1,2) (2,3) (0,1) {24,14,30,22}
|
||||||
|
[...##.] (2,4,5) (1,4) (0,1,2,4) (0,2) (0,1,4,5) (1,3) (2,5) {202,199,222,6,203,28}
|
||||||
|
[.#####..] (3,5) (3,4,6) (0,1,3,4,6,7) (0,1,2,5,6) (1,2,4,5,6) (1,2,3,4,5) (0,1,2,6,7) {37,42,23,51,44,23,60,29}
|
||||||
|
[#.....##.#] (0,4,5) (0,1,3,4,7) (0,1,2,3,4,5,8,9) (0,2,4,5,6,7,8,9) (0,1,3,4,5,6,7) (6,7) (1,2,3,4,5,6,7,8) (2,3,4,6,7,8,9) (0,2,3,4,6,7,8,9) {188,160,41,181,199,167,157,168,41,36}
|
||||||
|
[#####.#.] (0,1,4,5,6) (0,1,3) (0,3,7) (0,1,2,5) (1,5) (0,1,6,7) (6,7) (2,3,4,5,6) (0,3,4,6) {162,144,35,46,30,46,151,137}
|
||||||
|
[#..#.###.] (1,8) (0,2,3,5) (3,5,6,7) (0,1,2,4,5,6,7) (1,2,3,5,6,8) (2,4) (2,3,7) (0,7) (1,2,6) {51,49,67,41,31,56,50,51,24}
|
||||||
|
[#.###..] (0,1,3,5,6) (4,5) (0,3,5,6) (4,5,6) (1,2,3,4,5) (0,1,2,4,6) (0,1,2,3,5) {36,41,38,50,43,73,35}
|
||||||
|
[.#.###.] (2,4,5) (0,6) (1,3,4) (1,2,3,4) (0,2,5) (1,3,4,6) (0,1,2,4,6) {43,19,38,11,29,29,28}
|
||||||
|
[##...##.#] (1,6) (0,1,2,3,4,5) (1,4,8) (1,4,6,8) (4,5,7) (0,2,3,7,8) (2,7,8) (1,3,5,8) (0,2,3,4,7) (2,5,8) {54,57,72,74,49,43,13,57,65}
|
||||||
|
[#...#..] (0,1,2,3,4,5) (0,3,6) (3,6) (2,3,5) (0,3,5) (3,4,5) {25,16,27,44,20,40,4}
|
||||||
|
[#.#.#.] (2,3,5) (0,2,4) (0,1,3,5) (1,2,4,5) {17,16,26,5,25,17}
|
||||||
|
[##.....###] (0,2,4,5,7,8,9) (0,6,8) (2,7,9) (0,4,6,8,9) (0,4,7,8,9) (0,1,2,3,4,5,6,9) (0,1,2,6,7,8) (1,2,4,5) (2,3,6,7,9) (0,2,3,5,6,7,8,9) (4,5,6,7,8,9) (0,1,3,4,5,8,9) (1,2,3,4,6,7,8,9) {75,73,86,62,102,61,86,58,79,106}
|
||||||
|
[...##] (4) (1,2,3) (0,2,3,4) (0,1,3) (0,4) (1,2,4) {155,33,16,30,149}
|
||||||
|
[..#.##...] (0,1,6,8) (1,2,6) (0,4,7,8) (0,3,4,6,7) (2,4,6) (1,2,3,6) (1,2,5,6,8) {185,208,39,15,16,18,224,14,189}
|
||||||
|
[....##] (2,3,4,5) (0,1,2,3,4) (0,1,4,5) (0,3) (0,1,2,4) (0,5) {64,31,179,181,184,176}
|
||||||
|
[...#####] (0,1,2,4,7) (0,1,2,4,6) (0,1,2,3,6,7) (0,1,4,5,6) (0,1,4,6,7) (1,2,3,4,5,6) {17,20,9,6,17,10,20,7}
|
||||||
|
[##.#.] (3,4) (0,3,4) (2,3) (0,2,4) (1,2) (2,4) (0,1,4) {52,13,51,210,240}
|
||||||
|
[.#.#.#.] (0,1,3) (2,4) (1,2,4,5) (2,3,5,6) (0,3,4,5,6) (1,3,5) (2,5) {3,42,49,35,23,65,13}
|
||||||
|
[.#.###.#] (0,1,2,5,6) (2,3,4,6) (1,4,6,7) (0,3,6,7) (0,1,2,4,5,7) (0,1,2,4,6,7) (0,1,3,4,6,7) (2,6) (1,2,3,5) (0,1,2,4) {71,69,69,55,65,34,69,70}
|
||||||
|
[#####..#] (1,5,6) (1,6,7) (0,2) (0,1,2,3,4,7) (0) (2,3,5,6) (0,1,2,3,4,6,7) (1,5,7) {19,70,27,27,18,45,55,53}
|
||||||
|
[##.#] (0,1) (0,2) (0,1,3) {35,25,10,13}
|
||||||
|
[..#.##..##] (1,2) (0,1,3,4,5,7,8,9) (0,1,3,4,7) (3,8,9) (0,1,5,7,8) (0,1,2,4,5) (0,1,3,5,6,7,8,9) (3,4,5,6,7,9) (0,1,2,4,5,7) (4,6,8,9) (0,1,3,4,5,6,8,9) {158,173,34,138,139,145,116,48,147,131}
|
||||||
|
[..#.] (1,2,3) (2) (0,1,3) (2,3) (3) (0,1) {18,21,24,41}
|
||||||
|
[##.#] (0,1,3) (0,2,3) {183,171,12,183}
|
||||||
|
[.#...##..#] (0,1,2,3,4,7,8,9) (0,1,3,5,9) (3,6,7,8,9) (1,5,7) (2,4,5,6,7,8,9) (0,1,4,8,9) (0,5,8,9) (0,2,3,4,8,9) (0,1,4,6,7) (4,7) (0,3,4,8) (0,2,6,9) {85,54,46,56,89,53,30,65,86,96}
|
||||||
|
[..##.#] (0,1,2,5) (0,1,5) (0,5) (2,4) (2,3,5) (0,3,4) {223,218,44,22,9,239}
|
||||||
|
[#######...] (2,3,4,7,8) (3,4,5,7) (9) (0,1,2,3,4,5,7,8,9) (1,7,8) (0,1,4,5,6,7) (2,3,4,5,6,8) (3,4) (0,1,3,4,5,6,7,9) (2,3,7,8,9) (4,7) (6,9) (0,2,7,8,9) {38,51,54,92,93,61,51,90,70,62}
|
||||||
|
[#.##.###] (0,3,6) (1,2,4) (3,5,6,7) (1,4,7) (1,4,5,7) (2,4,5,7) {12,24,0,23,24,22,23,35}
|
||||||
|
[###...###] (0,2,3,6,8) (0,1,4,5,7,8) (0,1,2,3,4,5,7,8) (6,7,8) (3,8) (0,5,6) (4,6) {9,3,0,13,11,9,21,10,23}
|
||||||
|
[..#.#.#.##] (0,1,2,3,6) (2,4,5,6,8) (1,3,8) (0,1,3,4,5,6,7,9) (0,4,5,6,7,8,9) (0,2,3,5,7,8) (0,1,3,4,5,6) (0,1,4,5,6,8) {59,43,27,45,54,70,54,42,67,26}
|
||||||
|
[#.#.#] (0,2,3,4) (0,3,4) (1) (1,2,3) {6,21,14,18,6}
|
||||||
|
[#.##.#.#] (1,2,6) (0,2,3,4,6) (0,1,3,4,6,7) (1,2,3,4,5,6,7) (0,1,3,7) (0,2,3,5,7) (0,3,4,5,6,7) {44,23,28,45,30,29,41,40}
|
||||||
|
[####.] (0,1,3) (0,2,3,4) (4) (2,4) (0,3,4) (1,4) (1) {3,10,10,3,13}
|
||||||
|
[#.#..#.#] (3,7) (4,7) (2,5,6) (1,2,3,4,7) (1,2,4,7) (0,1,2,6) {3,122,128,115,125,6,9,134}
|
||||||
|
[#...##..#] (0,5) (1,2,3,4,5,6,7) (1,2,3,4,5,8) (0,1,2,3,6,7,8) (3,4,6,8) (2,4) (1,2,6,8) {17,64,84,48,57,40,48,26,52}
|
||||||
|
[.#.#.#.] (2,4,5,6) (1,2,3,4,6) (2,3,4) (0,1,4,5,6) (4) {14,31,34,27,68,21,38}
|
||||||
|
[#.#.#] (2,3) (2,3,4) (0,2,4) (1,4) {10,12,31,21,28}
|
||||||
|
[.##.######] (0,1,2,3,4,5,6,9) (3,5) (1,2,3,8,9) (1,3,4,5,6,7,8,9) (2,3,8) (1,2,3,4,6,7,8,9) (0,3,4,5,6,7,9) (0,3,4,6) (0,3,9) (0,2) {43,42,61,74,33,30,33,19,36,55}
|
||||||
|
[.#.##] (1,3,4) (1,2) (0,2,3,4) (2,4) {1,38,37,20,37}
|
||||||
|
[###.##] (0,2,3,4) (2,3) (2,3,5) (1,2,3,5) (0,3,4,5) (0,1,2,4,5) (3,4) {15,8,33,29,17,24}
|
||||||
|
[#.#.##...] (1,8) (2,5,8) (2,3,4,5,8) (2,3,4,5,6) (1,3,4,7) (2,3,6,7) (0,2,8) (3,4,5,6,7,8) {1,158,38,182,182,41,12,155,41}
|
||||||
|
[#.#.] (0,2,3) (0,2) (1,3) {21,8,21,27}
|
||||||
|
[#.....#.] (2,3) (0,1,4,5) (1,3,4,6) (4,5,6) (4,7) (1,2,4,5,7) (2,3,6) (0,6) {18,21,31,22,43,33,23,19}
|
||||||
|
[.##..#.] (2,3) (0,1,4,5) (0,1,5) (1,3,5,6) (3,6) (2,6) (1,2,3,5,6) (1,5,6) (1,2,3,4,5) {20,72,46,80,13,72,62}
|
||||||
|
[#.##] (2) (3) (0) (1) {11,13,16,139}
|
||||||
|
[.#.......] (0,1,2,4,5,6,7) (0,1,2,6,7,8) (0,1) (3,4,6) (1,3,4,5,6,8) (2,4,5) (0,1,2,3,4,5,6) (0,1,2,5,7) (0,1,2,3,4,6,7) (2,3,6,8) (0,1,2,4,6,7,8) {51,53,64,44,60,34,64,38,16}
|
||||||
|
[#..##.] (0,1,4,5) (3,4) (0,2,4,5) (0,3,4) {28,0,19,26,45,19}
|
||||||
|
[#.##..##.] (0,1,3,4,5,7) (1,3,5,6) (1,7,8) (2) (1,4,5,8) (1,3,6) (2,3,4,8) (3,4,7) (0,2,4) (1,2,3,4,5,7,8) (1,2,6,7) {3,49,54,53,48,32,23,35,42}
|
||||||
|
[....##] (1,2,3,4,5) (0,2,3,4,5) (1,2,3,5) (0,1,3,5) (2,4,5) (2,3,5) {21,9,60,46,36,62}
|
||||||
|
[#.##.##.#] (1,6,7) (4,6,7) (1,4,5,6,7,8) (0,4,5,6) (0,1,2,5,6,7,8) (2,3,4,6,7) (0,1,2,3,5,8) (0,1,3,7) (1,2,4,5,6,7,8) (0,1,2,5,6) (2) {48,62,60,39,65,67,75,60,43}
|
||||||
|
[.####.##] (1,2,3,4) (2,4,5,6,7) (2,3,5,7) (1,2,5) (1,2,3,6,7) (0,1,7) (2,3,4,6,7) {14,42,218,42,184,191,192,221}
|
||||||
|
[.###] (0,1,2) (1,2,3) {195,199,199,4}
|
||||||
|
[##..###] (1,4,5) (0,1,3,6) (0,2,4,6) (3,4,5) (0,1,5,6) {135,146,6,127,27,27,135}
|
||||||
|
[.#.##] (0,1,2,3) (1,2,4) (0,1,3,4) (0,2,3) (1,4) (0,1) {52,62,34,39,39}
|
||||||
|
[.#...] (0,1,3,4) (0,2,3) (3) (0,2) (1) (0,1,4) (0,1) {63,35,28,43,20}
|
||||||
|
[#####.#.] (0,2,3,6) (0,1,4,5,7) (2,4,5,6,7) (0,2,4,6) (0,1) (1,2,3,4,7) (0,2,3,4,5,6,7) {216,31,212,201,219,196,199,209}
|
||||||
|
[.#.##...#] (1,4,5,7) (0,1,2,3,4,5,7,8) (1,2,4) (2,4,6,8) (1,4) (1,6) (2,3,5,6,7,8) (1,5,7) (0,1,3,4,5,7) {37,86,44,53,64,68,35,68,36}
|
||||||
|
[#.#..###.#] (0,1,3,4,6,7,9) (1,2,4,8,9) (0,1,6) (0,1,3,4,5,6,7) (1,4,5,8) (1,2,3,5,6,7,8,9) (2,8) (1,3,4,9) (0,1,2,3,4,5,7,9) (6) {30,91,54,52,61,50,38,40,53,66}
|
||||||
|
[.#...#] (4,5) (1,2,3) (0,1,3,4) (0,3,4,5) (0,1,2,4,5) (2,5) {19,32,30,33,34,32}
|
||||||
|
[.#..#] (2,3) (3,4) (1,4) (0,1,3,4) (0,1,4) {32,50,197,215,51}
|
||||||
|
[#.###] (2,4) (0,3) (1,2,3,4) {17,3,16,20,16}
|
||||||
|
[..#.#.##..] (1,2) (0,2) (1,2,6,7,9) (0,2,3,4,8,9) (0,2,5,6,8,9) (7) (5,8) (4,8,9) (1,3,5) {42,22,51,32,32,33,21,3,52,53}
|
||||||
|
[.....#.##] (0,1,2,3,8) (2,4) (1) (0,1,2,8) (0,2,3,4,5,6,8) (0,8) (2,3,6,7) (6) (2,4,5,8) (1,2,8) {44,25,74,35,49,37,33,1,68}
|
||||||
|
[#.###.] (0,3,5) (1,3,4,5) (0,1,3,4) (1,2) {13,29,0,29,29,16}
|
||||||
|
[###.#] (1,4) (0,1,3) (0,2) {29,21,14,15,6}
|
||||||
|
[.#....] (0,3,4,5) (0,2) (1,2,4) (0,1,3) (2,3) (0,1,2,3) (1,2,3,4,5) (5) {47,51,51,37,19,13}
|
||||||
|
[.#.#.] (1,2,4) (0,1,3) (1,3) (0,2,3) (0) {20,184,178,34,164}
|
||||||
|
[.#.#] (0,1,2) (1,3) (1,2) (0,3) (2,3) {197,210,212,36}
|
||||||
|
[#...] (2,3) (0,2,3) (0,1) {22,10,17,17}
|
||||||
|
[#####.#..] (1,2,3,5,6,7) (2,5) (0,3,4,5,6,7,8) (0,1,4,5,6,7,8) (0,1,3,4,5) (2,5,6) (1,3) (4,6) {17,35,27,30,21,44,39,17,13}
|
||||||
|
[##.##.] (2,4,5) (0,1,2,3,5) (1,3,4,5) (0,1) (0,4,5) (0,2,3) (4) (0,1,3,4,5) {64,33,206,32,211,220}
|
||||||
|
[..####.] (0,1,2,4,6) (0,1,4,6) (0,2,3,4,6) (2,4,6) (1,2,3,5,6) (0,1,5) (0,2,3,5) (0,1,2,3) {182,182,50,26,163,27,170}
|
||||||
|
[##....] (1,2,3) (2,3,5) (1,3,5) (1,4) (1,2,4) (0,3,5) {3,19,20,23,8,20}
|
||||||
|
[.#..##.#.#] (1,4,9) (1,2,3,4,5) (0,2,4,5,6,7,9) (0,1,2,4,5,6,7,9) (6,8) (0,2,8) (0,1,2,3,5,6,8,9) (4,9) {41,196,57,35,181,57,48,22,26,184}
|
||||||
|
[#.###] (0,1,4) (0,2,3,4) (1,2,3) {16,21,31,31,16}
|
||||||
|
[###...##..] (1,2,4,5,6,7,8) (0,1,2,4) (0,3,6,8) (3,4,6,8,9) (2,5,7) (0,2,3,5,7) (1,2,3,4,6,9) (0,1,4,7,8,9) (0,1,4,7) {32,38,51,49,55,36,50,43,46,35}
|
||||||
|
[.##.##.##.] (2,3,4,5,6,7,8,9) (1,2,4,5,7,8) (0,1,2,3,4,5,6,7,8,9) (1,8,9) (0,2,3,5,6,7,8,9) (0,2,4,5,6,8,9) (0,1,3,5,7,8,9) (7,8) {42,37,62,53,49,71,49,76,81,58}
|
||||||
|
[###.#.##] (0,1,3,7) (0,1,3) (0,1,5,7) (2,3,4,6,7) (3,7) (0,1,2,4,6,7) (7) (0,2,3,4,6,7) (3,4,5,6,7) (0,1,4,6,7) {70,55,33,57,55,15,55,95}
|
||||||
|
[..#...#] (1,3,6) (0,1,2,3,4) (1,2,3,4,6) (1,4,5,6) (0,5) (0,2,3,4,6) {36,34,27,37,29,13,19}
|
||||||
|
[.#...##.] (0,2,3,4,5,6) (0,2,4,5,6) (0,3,5,6,7) (0,1,7) (0,2,6) (1,2,3,4,5,6,7) {43,11,49,30,40,45,54,16}
|
||||||
|
[###.] (0,1,3) (0,2) (1,3) (0,2,3) {31,32,13,38}
|
||||||
|
[...#..] (0,2,4,5) (0,1,4) (2,4,5) (0,1,2,3,5) (0,5) (0,1,2) (1,3,4,5) {65,56,49,23,53,60}
|
||||||
|
[#.#..] (0,1,3) (0,2,4) (0,1) (4) (0,1,2) {235,219,31,14,22}
|
||||||
|
[#...#.##] (5) (1,3,6,7) (0,1,2,3,4,6) (2,3,4,6,7) (1,2,3,4,5,6) (0,1,4,7) (0,1,2,5) (0,1,3,4,7) (0,1,3,5,6,7) (1,4) {38,70,48,68,57,38,59,56}
|
||||||
|
[.#.##...#] (1,3,4,5,6,8) (1,2,3,5,6,7,8) (0,2,3,4,8) (0,1,5,6) (0,4,7) (0,1,2,3,4,6,7,8) (1,3,4,5) (4,6) (1,8) {172,204,182,194,185,22,195,182,204}
|
||||||
|
[##.#..] (1,5) (0,2,3,4,5) (2,4) (0,1,2,3,4) {34,23,42,34,42,19}
|
||||||
|
[#....#.#.] (0,2,3,4,6) (5,8) (3,4,5,7) (0,5,7) (0,2,3,4,5) (0,6,7) (0,2,4,5,6,7,8) (1,2,3,5,6) (1,2,7) (0,1,2,3,4,8) (1,3,4,5,6,7,8) {53,25,39,43,45,46,38,37,28}
|
||||||
|
[...##.] (0,2,3,5) (0,3,4,5) (4,5) (1) (0,1,2) {19,29,10,9,25,25}
|
||||||
|
[...#] (0,1,3) (0,1,2) (0,1,2,3) {32,32,22,19}
|
||||||
|
[....#...] (0,3,7) (1,2,4,7) (0,1,2,3,4,5) (0,1,2,5,6) (0,1,3,4,6,7) (5,6) (0,1,2,4,5,7) (2,4) (1,2,3,4,5,6,7) {225,86,81,213,77,59,44,224}
|
||||||
|
[.##.] (0,2,3) (0,1) (0,2) {221,18,203,191}
|
||||||
|
[...#.#] (0,1,3) (2,3,4) (0,2,4) (1,2,5) (4,5) (0,1,2,5) (0,1,2,4,5) {18,29,26,9,8,21}
|
||||||
|
[...###] (0,1,4,5) (2,4,5) (0,1,3,5) (1,5) (0,3,5) {42,25,2,24,20,47}
|
||||||
|
[..##.#.##.] (0,1,2,4,9) (2,5,7) (6,7) (3,4,9) (0,2,3,5) (0,1,2,6,7,9) (0,1,2,3,5,6,8) (0,1,2,3,6,7,8,9) (0,1,7,8) (1,2,3,4,6,7,8,9) {73,62,80,53,23,36,47,43,34,49}
|
||||||
|
[.##.#..] (0,1,3,4,6) (0,1,2,4) (1,5,6) (1,4) (3) (1,2,4,5,6) (0,2,3,5) (4,5) {22,56,36,10,64,35,28}
|
||||||
|
[##.#.####] (1,3,6,7,8) (3,5,7) (3,6) (1,2,3,6,8) (2,5,6,8) (0,2,3,4,7) (1,2,3,4,5,7,8) (3,4,8) (2,3,6,7,8) (0,2,3) {30,17,71,81,30,37,43,43,58}
|
||||||
|
[#.#.###] (0,5) (3,4) (3) (6) (1,3,5,6) (3,5,6) (0,4,5,6) (1,2,4) {29,141,131,31,154,39,24}
|
||||||
|
[.####.#.##] (0,8) (2,3,5,8,9) (2,7) (5,8) (1,2,5,7,8) (4,5,7,8,9) (0,1,2,4,6,7) (0,2,3,4,5,6,8,9) (0,1,2,3,5,6,7,9) (0,1,2,6,7) (0,1,5,6,9) {86,59,81,40,26,63,75,58,40,61}
|
||||||
|
[#..#] (0,2,3) (0,1) (0,3) (2) {42,13,17,29}
|
||||||
|
[.###] (0,2) (1,2) (2,3) (1) (3) (0,2,3) {19,26,33,23}
|
||||||
|
[####.#...] (0,2,3,5,8) (0,1,2,4,6,7) (3,4,6,7,8) (0,5,6,7,8) (3,4,5,6,7) (0,2,3) (1,2,3,4,5,6,7,8) (1,2,3,5,6,7,8) {22,37,39,43,44,41,61,61,24}
|
||||||
|
[..###.#] (1,2,5,6) (3,5) (1,2,3) (2,3,4,6) (0,2,3,6) (0,5,6) {11,14,37,45,13,21,30}
|
||||||
|
[##..###.##] (0,1,2,5,6,7,8,9) (0,1,2,3,4,6,8,9) (0,1,2,3,5,6,7,8,9) (1,3,4,5,6,7,9) (1,5,6,7,8) (0,2,3,6) (0,3,6) (5,7,9) (1,3,5,7) (1,5,9) (0) (2,8) (1,2,3,4,5,6,7,9) {67,90,64,82,46,78,83,71,44,81}
|
||||||
|
[#..##] (0,1,3,4) (0,2) (0,3,4) (0,1,3) {18,17,1,17,1}
|
||||||
|
[.#..#.#..#] (1,2,3,7,8,9) (1,2,3,4,5,6,7) (0,1,4,5,6,7,8) (1,2,4,7,8,9) (0,1,3,4,6,8,9) (3,6,7) (0,1,2,3,6,7,8) (5) {19,67,50,52,46,31,43,67,50,38}
|
||||||
|
[.##.] (0,1,3) (2) (1) {9,14,20,9}
|
||||||
|
[#.####.##] (3,4,8) (3,6,7) (0,1,2,3,4,5,7,8) (1,5) (0,1,3,4,5,6,8) (0,3,4,5,6,7) (1,2,3,4,5,6) (0,1,2) (0,2,5,6,7,8) {69,64,58,76,65,85,70,56,66}
|
||||||
576
11-input.txt
Normal file
576
11-input.txt
Normal file
@@ -0,0 +1,576 @@
|
|||||||
|
zez: afn pnv uvw
|
||||||
|
zae: hku ewv ydy
|
||||||
|
qet: unr qfm
|
||||||
|
igc: jcr
|
||||||
|
vzt: dac vvp nzv
|
||||||
|
bcl: kgk kns
|
||||||
|
mgt: rxm
|
||||||
|
jnn: hgv arg
|
||||||
|
ijx: mzw
|
||||||
|
crz: vot vut kcz
|
||||||
|
hmv: sga nnn
|
||||||
|
lll: czl rdx
|
||||||
|
veg: lll ttv ymx
|
||||||
|
beu: jfq own
|
||||||
|
uli: efk
|
||||||
|
zzv: oje xpx
|
||||||
|
qpn: wag kxd
|
||||||
|
arg: qmi
|
||||||
|
elp: fqe nwv fbt
|
||||||
|
tdq: som
|
||||||
|
wci: ewv ydy
|
||||||
|
odr: kps jjp odk fsu
|
||||||
|
nej: sni yyr otm
|
||||||
|
lcr: kns wko
|
||||||
|
dtc: clh zpj
|
||||||
|
qeq: ant ong wpc
|
||||||
|
hgv: wjv kco
|
||||||
|
cqt: you
|
||||||
|
vtp: gun rwh iqr jxr
|
||||||
|
ouo: efk
|
||||||
|
mhr: hgo lyi jeh
|
||||||
|
vha: hrj osn tjh
|
||||||
|
szx: xqw
|
||||||
|
chx: okn owt sbz sve
|
||||||
|
vcl: kva wcg
|
||||||
|
dak: svg rxg
|
||||||
|
sao: hgz xhz
|
||||||
|
hbw: itr wge jef
|
||||||
|
xbd: out
|
||||||
|
rbq: qet kaz zhk fim aky xli veg sdm
|
||||||
|
faz: zba zoi
|
||||||
|
wua: tol
|
||||||
|
ejk: ijx rww
|
||||||
|
abe: bxv
|
||||||
|
tol: yqu rwu jnn rrv flx hnq cdm fns wpr lys arc pkq amt wci mgo eui zae apo rar hcp hiz kvc fdk
|
||||||
|
qwv: bme
|
||||||
|
rzf: ohe
|
||||||
|
ajb: zpj
|
||||||
|
jng: out
|
||||||
|
psa: aar mof
|
||||||
|
kck: ycc mpf xqw
|
||||||
|
vfj: dhq
|
||||||
|
nei: lif urk qwv
|
||||||
|
zba: tol pmk dkl
|
||||||
|
nfk: ggk
|
||||||
|
gsi: dkl pmk tol
|
||||||
|
okn: clh
|
||||||
|
csd: vut
|
||||||
|
snw: unr qfm wyl
|
||||||
|
qac: odr noe dpp
|
||||||
|
zhk: zrm ttk mpk
|
||||||
|
ttk: jpm wig
|
||||||
|
xsp: xey vrh yrr
|
||||||
|
wpv: tmu
|
||||||
|
hku: mfr beu spp rpw
|
||||||
|
kpr: qeq svs
|
||||||
|
nep: pmk
|
||||||
|
zed: mpf xqw
|
||||||
|
mnf: dkl tol
|
||||||
|
yrj: hvh
|
||||||
|
osn: efk sjn
|
||||||
|
myr: uqk hfp
|
||||||
|
fpq: zyb zoe cua fom oto
|
||||||
|
tuu: fwr cda
|
||||||
|
jjp: swv xym
|
||||||
|
plh: rbq clx ikn
|
||||||
|
iwe: sjn oqa
|
||||||
|
sdw: qfm sao
|
||||||
|
bph: jua nei jwk pjt
|
||||||
|
pmk: zae rrv apo rwu flx wxl kvc hcp hnq fdk fns cdm wpr lys
|
||||||
|
jei: mpf
|
||||||
|
rme: vvp dac hst nzv eva
|
||||||
|
rzn: out
|
||||||
|
khw: noo ihr rry
|
||||||
|
vot: sbv ckk vcl
|
||||||
|
yni: cqt jeh lyi hgo
|
||||||
|
gld: dmm ooh
|
||||||
|
dgf: mpf
|
||||||
|
enx: jua nei jwk pjt
|
||||||
|
hqc: efk
|
||||||
|
sqf: clx rbq roj ikn
|
||||||
|
jml: out
|
||||||
|
eeu: mzw rbq
|
||||||
|
zsq: efk
|
||||||
|
pgg: jza
|
||||||
|
kps: xym drg vzi dch
|
||||||
|
gxy: rbq mzw clx
|
||||||
|
ooh: out
|
||||||
|
arc: yqi lpt
|
||||||
|
txu: bxi aeo syu szx qyg
|
||||||
|
uyh: zyb cua
|
||||||
|
cua: emo
|
||||||
|
aka: fnh
|
||||||
|
vst: lno loj fpy
|
||||||
|
xec: xoq vzt dnz qdc
|
||||||
|
wpr: arg
|
||||||
|
sqh: dhq rww plh ijx
|
||||||
|
tgq: out
|
||||||
|
xhz: fnh mpc
|
||||||
|
wpc: mmo byr oqg
|
||||||
|
ufn: cqt lyi
|
||||||
|
clh: xlu enx bph eby wdl xxx uaa fpq jxq brt uyh dyl xzk
|
||||||
|
xzk: rje
|
||||||
|
yqu: xkf ulo
|
||||||
|
mof: oub fwb ghi udp tbe
|
||||||
|
jua: haq urk lif qlf
|
||||||
|
fta: nwf
|
||||||
|
xpx: sbz sve owt okn
|
||||||
|
khe: qeq
|
||||||
|
bsn: kxe
|
||||||
|
dgo: xqw
|
||||||
|
wge: efk
|
||||||
|
dpp: odk jjp
|
||||||
|
hha: njk ygf
|
||||||
|
sjn: kpr rtu pab diq nxk dqw
|
||||||
|
bme: vtf
|
||||||
|
hfp: snd
|
||||||
|
zoe: ewz
|
||||||
|
nzv: ksp qqv vzo scu
|
||||||
|
wju: wsh mcy
|
||||||
|
jfa: xhc
|
||||||
|
ovn: out
|
||||||
|
jeh: clh
|
||||||
|
scu: dtc
|
||||||
|
wxd: clx rbq mzw ikn
|
||||||
|
xlu: oto cua fom
|
||||||
|
anp: xey yrr
|
||||||
|
mcy: zbn
|
||||||
|
enz: ixa
|
||||||
|
wsh: iwe
|
||||||
|
sni: mpf xqw
|
||||||
|
hvx: pfu
|
||||||
|
tbe: clx rbq roj ikn
|
||||||
|
loj: rtn egw zim
|
||||||
|
zrg: vwa kgk kns akv
|
||||||
|
njk: kck inl nyb jei
|
||||||
|
vzo: ajb amx
|
||||||
|
eud: mpf xqw ycc
|
||||||
|
qqv: amx dtc ajb
|
||||||
|
oto: emo epl
|
||||||
|
ttv: czl wue
|
||||||
|
cin: yyr sni ifu
|
||||||
|
uvw: biu
|
||||||
|
pkt: efk
|
||||||
|
kxm: nzs
|
||||||
|
qys: kzk
|
||||||
|
iqr: ryc elp dru
|
||||||
|
lcm: out
|
||||||
|
yyr: ycc
|
||||||
|
vpt: sjn efk
|
||||||
|
ril: nep ezr wig
|
||||||
|
wdl: vor dcu wpv yqh
|
||||||
|
dch: out
|
||||||
|
wue: jcr ufu
|
||||||
|
nso: ijo tgq rzn
|
||||||
|
ohg: mpc faz
|
||||||
|
hde: mpf ycc
|
||||||
|
huv: aoe zez xhc rpz qbi
|
||||||
|
vrf: oqa sjn
|
||||||
|
hrj: sjn oqa efk
|
||||||
|
akv: fft jzl
|
||||||
|
kns: jkz jzl fft
|
||||||
|
brt: tdq jcb rje kxm
|
||||||
|
pfu: kxe rzf btx
|
||||||
|
jcb: nrb som nzs
|
||||||
|
aoe: uvw jbz afn
|
||||||
|
biu: dkl pmk tol
|
||||||
|
xyd: beg
|
||||||
|
zoi: pmk
|
||||||
|
itr: oqa
|
||||||
|
yjn: nic
|
||||||
|
ezm: xiy wua
|
||||||
|
vor: pgg
|
||||||
|
qyg: ycc
|
||||||
|
imv: clx mzw rbq roj ikn
|
||||||
|
duh: lcn
|
||||||
|
yom: cin ppc qxa
|
||||||
|
unr: hgz aka
|
||||||
|
xed: hbw
|
||||||
|
ufu: tol
|
||||||
|
nwf: ooh xbd
|
||||||
|
wyl: aka xhz ohg
|
||||||
|
iij: grf rwh jxr
|
||||||
|
eui: tpk exk yyc
|
||||||
|
upt: qac
|
||||||
|
xhc: afn jbz uvw
|
||||||
|
xli: zpy ttk zrm
|
||||||
|
tqp: out
|
||||||
|
odk: swv vzi dch xym
|
||||||
|
yxk: btx
|
||||||
|
iah: tmu vst pgg
|
||||||
|
ifu: ycc
|
||||||
|
lyn: yjn poi oyp myr yom mbk qnk wtp fkd nyi onw ylg vav
|
||||||
|
efi: ycc xqw
|
||||||
|
jkz: sqf jtj imv
|
||||||
|
amx: you
|
||||||
|
pnv: vnp biu
|
||||||
|
btx: pgj twu
|
||||||
|
lwf: idh mph
|
||||||
|
hst: ksp qqv scu ggo
|
||||||
|
swv: out
|
||||||
|
ocv: xhc zez rpz qbi
|
||||||
|
jza: rtn zim
|
||||||
|
urk: mgt htm
|
||||||
|
egw: pjw ovn
|
||||||
|
wiu: gld
|
||||||
|
pqa: xpx quv
|
||||||
|
lfa: vut
|
||||||
|
lpt: vpt uma
|
||||||
|
cda: ovc
|
||||||
|
ubw: mal ybz yrj
|
||||||
|
pgc: zbn pkt
|
||||||
|
rtn: kcv ovn
|
||||||
|
idg: qmi hbw dbq kco
|
||||||
|
kjr: zyb zoe oto fom
|
||||||
|
mxe: sbz
|
||||||
|
fpy: zim
|
||||||
|
hgz: faz
|
||||||
|
you: ydh mkv wdl xlu uaa fpq brt hvx aom xzk
|
||||||
|
qdc: hst
|
||||||
|
ahu: ppc cin
|
||||||
|
apo: yqi yga
|
||||||
|
agv: wol
|
||||||
|
ybz: lzv hvh eud efi
|
||||||
|
uqk: rkn gpk
|
||||||
|
oqa: krf veu khe vdi uyk mtj anp rcw nqa pin xec nxk
|
||||||
|
aky: lll ttv ymx
|
||||||
|
ppc: otm yyr
|
||||||
|
flx: jaq ibc cgz
|
||||||
|
oxz: pgj hmv
|
||||||
|
hgo: you clh
|
||||||
|
wpm: ooh dmm xbd
|
||||||
|
fqe: dkl
|
||||||
|
vjd: sjn
|
||||||
|
lcn: roj mzw
|
||||||
|
gpk: hto dgo
|
||||||
|
ghi: ikn mzw rbq clx
|
||||||
|
jwk: haq urk qlf
|
||||||
|
wcg: mzw rbq roj
|
||||||
|
hnn: zzt
|
||||||
|
kgd: gpk
|
||||||
|
wax: pgc
|
||||||
|
ydh: zui tvm oaj upt
|
||||||
|
jbu: efk sjn
|
||||||
|
nyb: ycc xqw
|
||||||
|
qph: out
|
||||||
|
nnn: lcm tqp
|
||||||
|
pci: lcn imv
|
||||||
|
mtj: khw srk dgk hsb
|
||||||
|
rwh: elp ezm ryc
|
||||||
|
zke: syu aeo szx qyg
|
||||||
|
cqs: kzk
|
||||||
|
myu: otm yyr ifu sni
|
||||||
|
efk: ywb xec pin pab dqw nxk nqa rtu uyk mtj anp diq kpr krf veu khe xsp vdi jvn rcw
|
||||||
|
hto: ycc
|
||||||
|
cai: odr dpp noe
|
||||||
|
hcp: ulo xkf
|
||||||
|
vwa: pci
|
||||||
|
rar: qpn
|
||||||
|
qga: ikn roj rbq clx
|
||||||
|
mob: lzv hvh eud efi
|
||||||
|
bhd: quv xpx mxe oje
|
||||||
|
awe: grf gun iqr rwh jxr
|
||||||
|
mal: efi hvh
|
||||||
|
fwb: clx mzw rbq roj
|
||||||
|
mwk: nso
|
||||||
|
nqa: bvt hpj
|
||||||
|
idh: zzt qga eeu
|
||||||
|
noe: jjp odk fsu
|
||||||
|
nic: bxi syu szx qyg
|
||||||
|
dbq: vrf zsq jef
|
||||||
|
emo: wiu ssf
|
||||||
|
gwf: out
|
||||||
|
zui: qac cai
|
||||||
|
jpm: tol pmk
|
||||||
|
mzb: dgo zed hto hde
|
||||||
|
jzl: sqf lcn
|
||||||
|
ebd: jgt lwf kzk
|
||||||
|
fzx: njk ixa wev nxa
|
||||||
|
rnb: rxg svg bfp
|
||||||
|
axf: sjn
|
||||||
|
zsh: out
|
||||||
|
ydy: rpw beu mfr
|
||||||
|
bvt: mhr fwr ufn yni
|
||||||
|
jvn: khw hsb dgk
|
||||||
|
fim: lll
|
||||||
|
byr: hls tbj msc
|
||||||
|
tfk: mal mob
|
||||||
|
efl: chx xpx oje quv
|
||||||
|
aar: udp ghi fwb
|
||||||
|
gwv: ejk
|
||||||
|
rrv: cgz
|
||||||
|
dcu: vst pgg
|
||||||
|
mbk: myu qxa
|
||||||
|
czl: ufu gsi
|
||||||
|
dgk: noo ihr rry qim
|
||||||
|
vnp: dkl tol pmk
|
||||||
|
kcv: out
|
||||||
|
grf: elp ryc ezm
|
||||||
|
rmj: ixa wev nxa
|
||||||
|
kxd: sjn
|
||||||
|
bxi: ycc mpf
|
||||||
|
sve: zpj you
|
||||||
|
jbz: vnp mnf biu
|
||||||
|
sbz: you
|
||||||
|
ohe: sga nnn gzm
|
||||||
|
ihr: zpj
|
||||||
|
rmt: ttv lll
|
||||||
|
oje: sbz
|
||||||
|
nrb: idn
|
||||||
|
poi: ubw tfk
|
||||||
|
djn: pmk dkl
|
||||||
|
spp: own sna
|
||||||
|
mpc: djn zoi
|
||||||
|
wtp: zke gsd
|
||||||
|
ovc: zpj
|
||||||
|
oks: rkn gpk mzb
|
||||||
|
jfq: tjh hrj jhc
|
||||||
|
hls: you zpj
|
||||||
|
fnh: zba rvo
|
||||||
|
afn: mnf
|
||||||
|
ulo: uli wag ccf ouo kxd
|
||||||
|
dbn: nso chq dzg
|
||||||
|
vtf: zsh
|
||||||
|
krf: hsb srk khw
|
||||||
|
jxq: oaj tvm upt xyd
|
||||||
|
wqo: wcg kva wxd
|
||||||
|
lno: egw zim
|
||||||
|
tng: plh ijx dhq
|
||||||
|
uaa: tdq
|
||||||
|
umc: fkd poi wtp qnk vav myr oyp ahu onw ylg
|
||||||
|
ikn: snw vtp veg ocv fim ojt zhk yjk sdw rmt huv qet awe xli cuw aky jfa mbh iij
|
||||||
|
qim: you zpj
|
||||||
|
tjh: oqa sjn
|
||||||
|
eby: eyg yxk bsn pfu
|
||||||
|
aeo: xqw ycc
|
||||||
|
xxx: zui upt xyd oaj
|
||||||
|
veu: rme vzt dnz
|
||||||
|
ezr: dkl tol pmk
|
||||||
|
mzw: iij jfa mbh aky cuw awe xli huv rmt yjk sdw fim ojt ocv kaz zhk vtp veg sdm snw
|
||||||
|
fkn: szx
|
||||||
|
ant: byr oqg
|
||||||
|
jor: vfj ejk sqh
|
||||||
|
evw: chx oje mxe
|
||||||
|
rdx: gsi ufu
|
||||||
|
jgw: mhr fwr cda ufn yni
|
||||||
|
haq: bme htm mgt
|
||||||
|
sdm: iqr
|
||||||
|
yrr: zzv
|
||||||
|
kco: vrf jef wge zsq
|
||||||
|
jcr: tol pmk
|
||||||
|
ijo: out
|
||||||
|
rry: you
|
||||||
|
cox: aar mof
|
||||||
|
zzt: roj ikn
|
||||||
|
nzs: idn mwk
|
||||||
|
eva: qqv ggo scu
|
||||||
|
ccf: efk oqa
|
||||||
|
rje: nrb nzs som
|
||||||
|
dru: fqe xiy wua
|
||||||
|
ycc: csd prl bcl sjz psa dak nfk ekw cox lcr zvt fzw
|
||||||
|
diq: tuu jgw bvt
|
||||||
|
inl: mpf xqw ycc
|
||||||
|
zpj: qdk djg enx xlu kjr uyh dyl ycv fpq jxq brt ydh mkv bph uaa
|
||||||
|
gux: gld
|
||||||
|
lif: bme mgt
|
||||||
|
sga: gwf jng vnf
|
||||||
|
ywb: srk hsb
|
||||||
|
xym: out
|
||||||
|
clx: kaz zhk fim ojt snw veg sdm vtp huv qet sdw yjk rmt cuw aky xli iij jfa
|
||||||
|
hpj: ufn yni mhr cda fwr
|
||||||
|
cuw: zez aoe qbi
|
||||||
|
mbl: out
|
||||||
|
qlf: mgt htm
|
||||||
|
nxa: dgf nyb kck
|
||||||
|
dzg: rzn tgq
|
||||||
|
wxl: gms jaq ibc
|
||||||
|
epl: fta
|
||||||
|
prl: vot vut
|
||||||
|
qxa: ifu otm
|
||||||
|
kcz: wqo sbv
|
||||||
|
cgz: ulj kzl wju
|
||||||
|
msc: you
|
||||||
|
jne: njk
|
||||||
|
ygf: jei
|
||||||
|
cek: out
|
||||||
|
tpk: hqc
|
||||||
|
dmm: out
|
||||||
|
vtv: oqa sjn
|
||||||
|
vut: ckk vcl
|
||||||
|
srk: ihr noo juw
|
||||||
|
amt: tpk exk
|
||||||
|
ekw: ggk aar mof
|
||||||
|
fzw: mof ggk
|
||||||
|
pjt: qwv qlf urk lif haq
|
||||||
|
rxg: gwv qzr
|
||||||
|
svr: lyn vgi umc
|
||||||
|
kzl: mcy wsh pgc
|
||||||
|
qbi: pnv
|
||||||
|
ful: lzv
|
||||||
|
hsb: ihr rry juw qim
|
||||||
|
ylg: nic fkn gsd txu
|
||||||
|
qdk: pfu yxk
|
||||||
|
zrm: wig ezr
|
||||||
|
tmu: loj lno fpy
|
||||||
|
ymx: igc wue
|
||||||
|
exk: jbu vjd axf
|
||||||
|
ggo: ajb xfo dtc amx
|
||||||
|
tqe: jml cek zsh mbl qph
|
||||||
|
hiz: lpt yga yqi
|
||||||
|
kaz: ril
|
||||||
|
kgk: pci jkz
|
||||||
|
lzv: ycc
|
||||||
|
qfm: xhz ohg hgz
|
||||||
|
wol: sqh ejk vfj
|
||||||
|
nxk: wvz qeq svs
|
||||||
|
fom: ewz kay emo epl
|
||||||
|
roj: jfa yjk mbh iij snw awe ojt zhk
|
||||||
|
ggk: tbe fwb
|
||||||
|
rwu: arg xed hgv idg
|
||||||
|
quv: okn owt sbz sve
|
||||||
|
fwr: ovc lyi jeh
|
||||||
|
hnq: yga yqi
|
||||||
|
ryc: fbt nwv
|
||||||
|
pao: lwf
|
||||||
|
jaq: kzl wax
|
||||||
|
ztn: hfp kgd uqk
|
||||||
|
vnf: out
|
||||||
|
vzi: out
|
||||||
|
yqi: uma vtv vpt
|
||||||
|
iqm: spp
|
||||||
|
ejb: xqw mpf ycc
|
||||||
|
nwv: tol
|
||||||
|
pkq: tpk yyc
|
||||||
|
fns: hku iqm
|
||||||
|
vrh: evw pqa zzv efl
|
||||||
|
wag: sjn
|
||||||
|
vdi: qdc vzt rme xoq
|
||||||
|
sna: jhc osn hrj
|
||||||
|
sjz: wko kgk kns vwa
|
||||||
|
udp: ikn mzw
|
||||||
|
mbh: wyl unr qfm
|
||||||
|
zbn: efk oqa sjn
|
||||||
|
jef: sjn efk oqa
|
||||||
|
rww: ikn clx mzw roj rbq
|
||||||
|
rxm: cek mbl zsh qph
|
||||||
|
oaj: qac
|
||||||
|
onw: hfp kgd uqk oks
|
||||||
|
ewz: gux fta
|
||||||
|
vjr: kcz
|
||||||
|
chq: ijo tgq
|
||||||
|
jep: hha rmj jne fzx
|
||||||
|
xey: efl evw bhd
|
||||||
|
kvc: hku
|
||||||
|
bxv: mob ful ybz mal
|
||||||
|
fsu: xym drg
|
||||||
|
ibc: kzl wax
|
||||||
|
dhq: clx roj rbq mzw
|
||||||
|
som: mwk idn dbn
|
||||||
|
xkf: ouo ccf
|
||||||
|
bfp: gwv
|
||||||
|
qzr: vfj sqh tng
|
||||||
|
drg: out
|
||||||
|
pjw: out
|
||||||
|
lys: cgz jaq ibc
|
||||||
|
own: tjh osn
|
||||||
|
wev: kck inl jei nyb
|
||||||
|
dqw: wvz
|
||||||
|
pin: jgw tuu bvt
|
||||||
|
jgt: idh hnn
|
||||||
|
vgi: ztn ffs abe poi fkd jep
|
||||||
|
zim: kcv pjw ovn
|
||||||
|
mfr: sna own vha jfq
|
||||||
|
xiy: pmk tol
|
||||||
|
rvo: tol
|
||||||
|
qnk: ubw tfk
|
||||||
|
pab: yrr xey
|
||||||
|
rkn: hde hto zed ejb
|
||||||
|
cdm: yqi lpt
|
||||||
|
rtu: vzt xoq
|
||||||
|
kxe: hmv pgj twu
|
||||||
|
cri: svg agv
|
||||||
|
lyi: clh zpj
|
||||||
|
nyi: uqk
|
||||||
|
mgo: qpn xkf
|
||||||
|
fdk: hku ewv iqm ydy
|
||||||
|
oub: ikn rbq clx
|
||||||
|
owt: zpj
|
||||||
|
jhc: efk
|
||||||
|
beg: odr
|
||||||
|
pgj: sga gzm
|
||||||
|
svg: qzr gwv jor
|
||||||
|
fft: imv sqf
|
||||||
|
mmo: tbj hls
|
||||||
|
mkv: jwk pjt
|
||||||
|
syu: ycc
|
||||||
|
mph: eeu gxy
|
||||||
|
juw: clh zpj
|
||||||
|
wig: tol
|
||||||
|
fkd: rmj enz jne
|
||||||
|
ong: mmo byr
|
||||||
|
rcw: dgk hsb khw
|
||||||
|
kay: wiu ssf
|
||||||
|
qcf: tjh osn hrj jhc
|
||||||
|
xfo: zpj clh you
|
||||||
|
ssf: nwf wpm gld
|
||||||
|
xoq: hst dac eva nzv
|
||||||
|
ixa: inl jei dgf nyb
|
||||||
|
tvm: cai beg qac
|
||||||
|
twu: nnn
|
||||||
|
zpy: jpm nep wig
|
||||||
|
mpk: wig nep jpm
|
||||||
|
ycv: zui oaj
|
||||||
|
dkl: wxl hiz hcp fdk rrv apo jnn flx mgo eui cdm wpr yqu lys wci amt pkq
|
||||||
|
oyp: zke gsd txu
|
||||||
|
oqg: tbj
|
||||||
|
kva: clx roj rbq mzw
|
||||||
|
ojt: wyl sao qfm unr
|
||||||
|
ulj: wsh
|
||||||
|
vvp: ksp scu
|
||||||
|
ckk: kva
|
||||||
|
zvt: akv
|
||||||
|
qmi: itr
|
||||||
|
yga: vtv uma
|
||||||
|
mpf: ebd cox nfk csd vjr lfa cqs zvt crz
|
||||||
|
dnz: nzv vvp
|
||||||
|
uyk: qeq
|
||||||
|
yyc: hqc ujj axf
|
||||||
|
svs: ant wpc
|
||||||
|
sbv: wxd wcg
|
||||||
|
yjk: zpy mpk ril zrm
|
||||||
|
ujj: oqa
|
||||||
|
zyb: emo kay epl
|
||||||
|
ewv: rpw
|
||||||
|
eyg: rzf oxz kxe
|
||||||
|
otm: ycc xqw
|
||||||
|
yqh: tmu
|
||||||
|
gzm: jng tqp vnf
|
||||||
|
fbt: pmk dkl
|
||||||
|
snd: ejb hde
|
||||||
|
jtj: clx rbq roj mzw
|
||||||
|
aom: iah yqh wpv
|
||||||
|
ksp: dtc
|
||||||
|
kzk: mph
|
||||||
|
uma: efk oqa
|
||||||
|
djg: vor iah
|
||||||
|
htm: rxm vtf tqe
|
||||||
|
wko: duh
|
||||||
|
dyl: dcu yqh iah
|
||||||
|
wvz: ant wpc
|
||||||
|
noo: you clh
|
||||||
|
dac: vzo ggo scu ksp qqv
|
||||||
|
rpw: vha jfq qcf
|
||||||
|
ffs: jne fzx rmj hha enz
|
||||||
|
gsd: bxi szx syu aeo
|
||||||
|
vav: nej
|
||||||
|
ehw: kzk lwf jgt
|
||||||
|
gun: ezm
|
||||||
|
jxr: dru
|
||||||
|
xqw: bcl pao prl ebd sjz csd psa dak qys cri rnb cox ekw vjr cqs zrg lcr ehw crz fzw zvt
|
||||||
|
gms: wax wju
|
||||||
|
idn: dzg
|
||||||
|
wjv: zsq
|
||||||
|
tbj: you clh
|
||||||
|
rpz: uvw afn jbz
|
||||||
|
hvh: mpf xqw
|
||||||
1000
8-input.txt
Normal file
1000
8-input.txt
Normal file
File diff suppressed because it is too large
Load Diff
496
9-input.txt
Normal file
496
9-input.txt
Normal file
@@ -0,0 +1,496 @@
|
|||||||
|
97668,50157
|
||||||
|
97668,51385
|
||||||
|
98359,51385
|
||||||
|
98359,52575
|
||||||
|
97665,52575
|
||||||
|
97665,53785
|
||||||
|
97626,53785
|
||||||
|
97626,55034
|
||||||
|
97938,55034
|
||||||
|
97938,56284
|
||||||
|
98077,56284
|
||||||
|
98077,57485
|
||||||
|
97804,57485
|
||||||
|
97804,58599
|
||||||
|
97082,58599
|
||||||
|
97082,59720
|
||||||
|
96522,59720
|
||||||
|
96522,61011
|
||||||
|
96752,61011
|
||||||
|
96752,62293
|
||||||
|
96842,62293
|
||||||
|
96842,63219
|
||||||
|
95629,63219
|
||||||
|
95629,64637
|
||||||
|
96118,64637
|
||||||
|
96118,65759
|
||||||
|
95613,65759
|
||||||
|
95613,66948
|
||||||
|
95301,66948
|
||||||
|
95301,67785
|
||||||
|
94102,67785
|
||||||
|
94102,69157
|
||||||
|
94239,69157
|
||||||
|
94239,70372
|
||||||
|
93956,70372
|
||||||
|
93956,71497
|
||||||
|
93462,71497
|
||||||
|
93462,72391
|
||||||
|
92522,72391
|
||||||
|
92522,73588
|
||||||
|
92169,73588
|
||||||
|
92169,74677
|
||||||
|
91605,74677
|
||||||
|
91605,75577
|
||||||
|
90735,75577
|
||||||
|
90735,76527
|
||||||
|
89962,76527
|
||||||
|
89962,77334
|
||||||
|
88997,77334
|
||||||
|
88997,78807
|
||||||
|
88960,78807
|
||||||
|
88960,79327
|
||||||
|
87630,79327
|
||||||
|
87630,80406
|
||||||
|
87039,80406
|
||||||
|
87039,81692
|
||||||
|
86671,81692
|
||||||
|
86671,82145
|
||||||
|
85345,82145
|
||||||
|
85345,83121
|
||||||
|
84613,83121
|
||||||
|
84613,84404
|
||||||
|
84177,84404
|
||||||
|
84177,84975
|
||||||
|
83027,84975
|
||||||
|
83027,85494
|
||||||
|
81855,85494
|
||||||
|
81855,86592
|
||||||
|
81204,86592
|
||||||
|
81204,87652
|
||||||
|
80495,87652
|
||||||
|
80495,87676
|
||||||
|
78965,87676
|
||||||
|
78965,88740
|
||||||
|
78250,88740
|
||||||
|
78250,89295
|
||||||
|
77157,89295
|
||||||
|
77157,89838
|
||||||
|
76067,89838
|
||||||
|
76067,90648
|
||||||
|
75150,90648
|
||||||
|
75150,91244
|
||||||
|
74096,91244
|
||||||
|
74096,92217
|
||||||
|
73250,92217
|
||||||
|
73250,92230
|
||||||
|
71882,92230
|
||||||
|
71882,93396
|
||||||
|
71109,93396
|
||||||
|
71109,93796
|
||||||
|
69948,93796
|
||||||
|
69948,94048
|
||||||
|
68730,94048
|
||||||
|
68730,94809
|
||||||
|
67727,94809
|
||||||
|
67727,94758
|
||||||
|
66408,94758
|
||||||
|
66408,95089
|
||||||
|
65245,95089
|
||||||
|
65245,96007
|
||||||
|
64268,96007
|
||||||
|
64268,96250
|
||||||
|
63068,96250
|
||||||
|
63068,96202
|
||||||
|
61799,96202
|
||||||
|
61799,96958
|
||||||
|
60733,96958
|
||||||
|
60733,97436
|
||||||
|
59585,97436
|
||||||
|
59585,96828
|
||||||
|
58233,96828
|
||||||
|
58233,97534
|
||||||
|
57121,97534
|
||||||
|
57121,97396
|
||||||
|
55877,97396
|
||||||
|
55877,98131
|
||||||
|
54733,98131
|
||||||
|
54733,97773
|
||||||
|
53479,97773
|
||||||
|
53479,98175
|
||||||
|
52283,98175
|
||||||
|
52283,98456
|
||||||
|
51067,98456
|
||||||
|
51067,97614
|
||||||
|
49842,97614
|
||||||
|
49842,98235
|
||||||
|
48618,98235
|
||||||
|
48618,97487
|
||||||
|
47434,97487
|
||||||
|
47434,98106
|
||||||
|
46176,98106
|
||||||
|
46176,97992
|
||||||
|
44959,97992
|
||||||
|
44959,97234
|
||||||
|
43825,97234
|
||||||
|
43825,97343
|
||||||
|
42587,97343
|
||||||
|
42587,97475
|
||||||
|
41328,97475
|
||||||
|
41328,97086
|
||||||
|
40161,97086
|
||||||
|
40161,96999
|
||||||
|
38929,96999
|
||||||
|
38929,96224
|
||||||
|
37868,96224
|
||||||
|
37868,96534
|
||||||
|
36518,96534
|
||||||
|
36518,95278
|
||||||
|
35629,95278
|
||||||
|
35629,95798
|
||||||
|
34176,95798
|
||||||
|
34176,94596
|
||||||
|
33315,94596
|
||||||
|
33315,94217
|
||||||
|
32167,94217
|
||||||
|
32167,94017
|
||||||
|
30938,94017
|
||||||
|
30938,93419
|
||||||
|
29875,93419
|
||||||
|
29875,93320
|
||||||
|
28572,93320
|
||||||
|
28572,92335
|
||||||
|
27707,92335
|
||||||
|
27707,91771
|
||||||
|
26634,91771
|
||||||
|
26634,91292
|
||||||
|
25508,91292
|
||||||
|
25508,90722
|
||||||
|
24430,90722
|
||||||
|
24430,89993
|
||||||
|
23451,89993
|
||||||
|
23451,89058
|
||||||
|
22622,89058
|
||||||
|
22622,88249
|
||||||
|
21717,88249
|
||||||
|
21717,87950
|
||||||
|
20423,87950
|
||||||
|
20423,87200
|
||||||
|
19461,87200
|
||||||
|
19461,86247
|
||||||
|
18673,86247
|
||||||
|
18673,85600
|
||||||
|
17622,85600
|
||||||
|
17622,84972
|
||||||
|
16535,84972
|
||||||
|
16535,83818
|
||||||
|
15957,83818
|
||||||
|
15957,83194
|
||||||
|
14847,83194
|
||||||
|
14847,82131
|
||||||
|
14198,82131
|
||||||
|
14198,81126
|
||||||
|
13499,81126
|
||||||
|
13499,80183
|
||||||
|
12731,80183
|
||||||
|
12731,79509
|
||||||
|
11615,79509
|
||||||
|
11615,78372
|
||||||
|
11092,78372
|
||||||
|
11092,77532
|
||||||
|
10163,77532
|
||||||
|
10163,76010
|
||||||
|
10248,76010
|
||||||
|
10248,75053
|
||||||
|
9507,75053
|
||||||
|
9507,74092
|
||||||
|
8762,74092
|
||||||
|
8762,73055
|
||||||
|
8135,73055
|
||||||
|
8135,72149
|
||||||
|
7253,72149
|
||||||
|
7253,70795
|
||||||
|
7249,70795
|
||||||
|
7249,70085
|
||||||
|
5902,70085
|
||||||
|
5902,68911
|
||||||
|
5525,68911
|
||||||
|
5525,67490
|
||||||
|
5790,67490
|
||||||
|
5790,66691
|
||||||
|
4469,66691
|
||||||
|
4469,65248
|
||||||
|
4903,65248
|
||||||
|
4903,64335
|
||||||
|
3774,64335
|
||||||
|
3774,63137
|
||||||
|
3507,63137
|
||||||
|
3507,61856
|
||||||
|
3575,61856
|
||||||
|
3575,60662
|
||||||
|
3352,60662
|
||||||
|
3352,59529
|
||||||
|
2838,59529
|
||||||
|
2838,58343
|
||||||
|
2546,58343
|
||||||
|
2546,57131
|
||||||
|
2395,57131
|
||||||
|
2395,55892
|
||||||
|
2480,55892
|
||||||
|
2480,54676
|
||||||
|
2452,54676
|
||||||
|
2452,53518
|
||||||
|
1692,53518
|
||||||
|
1692,52280
|
||||||
|
1887,52280
|
||||||
|
1887,51047
|
||||||
|
2466,51047
|
||||||
|
2466,50147
|
||||||
|
94584,50147
|
||||||
|
94584,48634
|
||||||
|
2325,48634
|
||||||
|
2325,47435
|
||||||
|
2529,47435
|
||||||
|
2529,46159
|
||||||
|
1677,46159
|
||||||
|
1677,45037
|
||||||
|
2751,45037
|
||||||
|
2751,43735
|
||||||
|
2074,43735
|
||||||
|
2074,42540
|
||||||
|
2355,42540
|
||||||
|
2355,41440
|
||||||
|
3136,41440
|
||||||
|
3136,40187
|
||||||
|
3040,40187
|
||||||
|
3040,39003
|
||||||
|
3312,39003
|
||||||
|
3312,37702
|
||||||
|
3141,37702
|
||||||
|
3141,36629
|
||||||
|
3850,36629
|
||||||
|
3850,35406
|
||||||
|
4019,35406
|
||||||
|
4019,34280
|
||||||
|
4503,34280
|
||||||
|
4503,33068
|
||||||
|
4742,33068
|
||||||
|
4742,32005
|
||||||
|
5379,32005
|
||||||
|
5379,30924
|
||||||
|
5950,30924
|
||||||
|
5950,29889
|
||||||
|
6610,29889
|
||||||
|
6610,28717
|
||||||
|
6971,28717
|
||||||
|
6971,27573
|
||||||
|
7409,27573
|
||||||
|
7409,26669
|
||||||
|
8292,26669
|
||||||
|
8292,25449
|
||||||
|
8608,25449
|
||||||
|
8608,24676
|
||||||
|
9669,24676
|
||||||
|
9669,23306
|
||||||
|
9786,23306
|
||||||
|
9786,22403
|
||||||
|
10628,22403
|
||||||
|
10628,21705
|
||||||
|
11733,21705
|
||||||
|
11733,20341
|
||||||
|
11945,20341
|
||||||
|
11945,19857
|
||||||
|
13281,19857
|
||||||
|
13281,18293
|
||||||
|
13312,18293
|
||||||
|
13312,17548
|
||||||
|
14319,17548
|
||||||
|
14319,16511
|
||||||
|
15002,16511
|
||||||
|
15002,16236
|
||||||
|
16458,16236
|
||||||
|
16458,15367
|
||||||
|
17296,15367
|
||||||
|
17296,14521
|
||||||
|
18158,14521
|
||||||
|
18158,13110
|
||||||
|
18542,13110
|
||||||
|
18542,13065
|
||||||
|
20086,13065
|
||||||
|
20086,11920
|
||||||
|
20724,11920
|
||||||
|
20724,10924
|
||||||
|
21504,10924
|
||||||
|
21504,10871
|
||||||
|
22957,10871
|
||||||
|
22957,9785
|
||||||
|
23686,9785
|
||||||
|
23686,9422
|
||||||
|
24893,9422
|
||||||
|
24893,8528
|
||||||
|
25771,8528
|
||||||
|
25771,8112
|
||||||
|
26930,8112
|
||||||
|
26930,7439
|
||||||
|
27946,7439
|
||||||
|
27946,7070
|
||||||
|
29117,7070
|
||||||
|
29117,6038
|
||||||
|
29976,6038
|
||||||
|
29976,5771
|
||||||
|
31192,5771
|
||||||
|
31192,4984
|
||||||
|
32190,4984
|
||||||
|
32190,4519
|
||||||
|
33326,4519
|
||||||
|
33326,4219
|
||||||
|
34520,4219
|
||||||
|
34520,4482
|
||||||
|
35883,4482
|
||||||
|
35883,3439
|
||||||
|
36843,3439
|
||||||
|
36843,3095
|
||||||
|
38020,3095
|
||||||
|
38020,2870
|
||||||
|
39227,2870
|
||||||
|
39227,3158
|
||||||
|
40535,3158
|
||||||
|
40535,2565
|
||||||
|
41659,2565
|
||||||
|
41659,2852
|
||||||
|
42936,2852
|
||||||
|
42936,2524
|
||||||
|
44112,2524
|
||||||
|
44112,2000
|
||||||
|
45279,2000
|
||||||
|
45279,1788
|
||||||
|
46488,1788
|
||||||
|
46488,2310
|
||||||
|
47739,2310
|
||||||
|
47739,2367
|
||||||
|
48950,2367
|
||||||
|
48950,1804
|
||||||
|
50159,1804
|
||||||
|
50159,2234
|
||||||
|
51368,2234
|
||||||
|
51368,2144
|
||||||
|
52585,2144
|
||||||
|
52585,2549
|
||||||
|
53771,2549
|
||||||
|
53771,2273
|
||||||
|
55012,2273
|
||||||
|
55012,2455
|
||||||
|
56214,2455
|
||||||
|
56214,2142
|
||||||
|
57493,2142
|
||||||
|
57493,3027
|
||||||
|
58579,3027
|
||||||
|
58579,3427
|
||||||
|
59731,3427
|
||||||
|
59731,2947
|
||||||
|
61082,2947
|
||||||
|
61082,3867
|
||||||
|
62107,3867
|
||||||
|
62107,4342
|
||||||
|
63227,4342
|
||||||
|
63227,3931
|
||||||
|
64621,3931
|
||||||
|
64621,4462
|
||||||
|
65733,4462
|
||||||
|
65733,5072
|
||||||
|
66808,5072
|
||||||
|
66808,5293
|
||||||
|
68029,5293
|
||||||
|
68029,5570
|
||||||
|
69240,5570
|
||||||
|
69240,6136
|
||||||
|
70329,6136
|
||||||
|
70329,6925
|
||||||
|
71305,6925
|
||||||
|
71305,7721
|
||||||
|
72262,7721
|
||||||
|
72262,8355
|
||||||
|
73294,8355
|
||||||
|
73294,8527
|
||||||
|
74598,8527
|
||||||
|
74598,9036
|
||||||
|
75720,9036
|
||||||
|
75720,10333
|
||||||
|
76330,10333
|
||||||
|
76330,10765
|
||||||
|
77501,10765
|
||||||
|
77501,11424
|
||||||
|
78523,11424
|
||||||
|
78523,12187
|
||||||
|
79469,12187
|
||||||
|
79469,13065
|
||||||
|
80319,13065
|
||||||
|
80319,13864
|
||||||
|
81229,13864
|
||||||
|
81229,14274
|
||||||
|
82492,14274
|
||||||
|
82492,15569
|
||||||
|
82946,15569
|
||||||
|
82946,15997
|
||||||
|
84228,15997
|
||||||
|
84228,16975
|
||||||
|
84972,16975
|
||||||
|
84972,18086
|
||||||
|
85559,18086
|
||||||
|
85559,18601
|
||||||
|
86820,18601
|
||||||
|
86820,19675
|
||||||
|
87442,19675
|
||||||
|
87442,20608
|
||||||
|
88231,20608
|
||||||
|
88231,21531
|
||||||
|
89038,21531
|
||||||
|
89038,22646
|
||||||
|
89577,22646
|
||||||
|
89577,23868
|
||||||
|
89936,23868
|
||||||
|
89936,24672
|
||||||
|
90934,24672
|
||||||
|
90934,25781
|
||||||
|
91453,25781
|
||||||
|
91453,26818
|
||||||
|
92092,26818
|
||||||
|
92092,27910
|
||||||
|
92630,27910
|
||||||
|
92630,28912
|
||||||
|
93351,28912
|
||||||
|
93351,30291
|
||||||
|
93269,30291
|
||||||
|
93269,31123
|
||||||
|
94390,31123
|
||||||
|
94390,32350
|
||||||
|
94611,32350
|
||||||
|
94611,33635
|
||||||
|
94637,33635
|
||||||
|
94637,34545
|
||||||
|
95707,34545
|
||||||
|
95707,35695
|
||||||
|
96123,35695
|
||||||
|
96123,36876
|
||||||
|
96442,36876
|
||||||
|
96442,38138
|
||||||
|
96445,38138
|
||||||
|
96445,39253
|
||||||
|
97013,39253
|
||||||
|
97013,40456
|
||||||
|
97229,40456
|
||||||
|
97229,41635
|
||||||
|
97573,41635
|
||||||
|
97573,42864
|
||||||
|
97628,42864
|
||||||
|
97628,44148
|
||||||
|
97188,44148
|
||||||
|
97188,45339
|
||||||
|
97389,45339
|
||||||
|
97389,46492
|
||||||
|
98162,46492
|
||||||
|
98162,47736
|
||||||
|
97751,47736
|
||||||
|
97751,48931
|
||||||
|
98481,48931
|
||||||
|
98481,50157
|
||||||
306
Cargo.lock
generated
306
Cargo.lock
generated
@@ -5,3 +5,309 @@ version = 4
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "aoc-2025"
|
name = "aoc-2025"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"nalgebra",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "approx"
|
||||||
|
version = "0.5.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
|
||||||
|
dependencies = [
|
||||||
|
"num-traits",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "autocfg"
|
||||||
|
version = "1.5.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bytemuck"
|
||||||
|
version = "1.24.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glam"
|
||||||
|
version = "0.14.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "333928d5eb103c5d4050533cec0384302db6be8ef7d3cebd30ec6a35350353da"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glam"
|
||||||
|
version = "0.15.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3abb554f8ee44336b72d522e0a7fe86a29e09f839a36022fa869a7dfe941a54b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glam"
|
||||||
|
version = "0.16.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4126c0479ccf7e8664c36a2d719f5f2c140fbb4f9090008098d2c291fa5b3f16"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glam"
|
||||||
|
version = "0.17.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e01732b97afd8508eee3333a541b9f7610f454bb818669e66e90f5f57c93a776"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glam"
|
||||||
|
version = "0.18.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "525a3e490ba77b8e326fb67d4b44b4bd2f920f44d4cc73ccec50adc68e3bee34"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glam"
|
||||||
|
version = "0.19.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2b8509e6791516e81c1a630d0bd7fbac36d2fa8712a9da8662e716b52d5051ca"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glam"
|
||||||
|
version = "0.20.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f43e957e744be03f5801a55472f593d43fabdebf25a4585db250f04d86b1675f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glam"
|
||||||
|
version = "0.21.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "518faa5064866338b013ff9b2350dc318e14cc4fcd6cb8206d7e7c9886c98815"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glam"
|
||||||
|
version = "0.22.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "12f597d56c1bd55a811a1be189459e8fad2bbc272616375602443bdfb37fa774"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glam"
|
||||||
|
version = "0.23.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8e4afd9ad95555081e109fe1d21f2a30c691b5f0919c67dfa690a2e1eb6bd51c"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glam"
|
||||||
|
version = "0.24.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glam"
|
||||||
|
version = "0.25.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glam"
|
||||||
|
version = "0.27.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9e05e7e6723e3455f4818c7b26e855439f7546cf617ef669d1adedb8669e5cb9"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glam"
|
||||||
|
version = "0.28.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "779ae4bf7e8421cf91c0b3b64e7e8b40b862fba4d393f59150042de7c4965a94"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glam"
|
||||||
|
version = "0.29.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8babf46d4c1c9d92deac9f7be466f76dfc4482b6452fc5024b5e8daf6ffeb3ee"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glam"
|
||||||
|
version = "0.30.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "bd47b05dddf0005d850e5644cae7f2b14ac3df487979dbfff3b56f20b1a6ae46"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "matrixmultiply"
|
||||||
|
version = "0.3.10"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
"rawpointer",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "nalgebra"
|
||||||
|
version = "0.34.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c4d5b3eff5cd580f93da45e64715e8c20a3996342f1e466599cf7a267a0c2f5f"
|
||||||
|
dependencies = [
|
||||||
|
"approx",
|
||||||
|
"glam 0.14.0",
|
||||||
|
"glam 0.15.2",
|
||||||
|
"glam 0.16.0",
|
||||||
|
"glam 0.17.3",
|
||||||
|
"glam 0.18.0",
|
||||||
|
"glam 0.19.0",
|
||||||
|
"glam 0.20.5",
|
||||||
|
"glam 0.21.3",
|
||||||
|
"glam 0.22.0",
|
||||||
|
"glam 0.23.0",
|
||||||
|
"glam 0.24.2",
|
||||||
|
"glam 0.25.0",
|
||||||
|
"glam 0.27.0",
|
||||||
|
"glam 0.28.0",
|
||||||
|
"glam 0.29.3",
|
||||||
|
"glam 0.30.9",
|
||||||
|
"matrixmultiply",
|
||||||
|
"nalgebra-macros",
|
||||||
|
"num-complex",
|
||||||
|
"num-rational",
|
||||||
|
"num-traits",
|
||||||
|
"simba",
|
||||||
|
"typenum",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "nalgebra-macros"
|
||||||
|
version = "0.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "973e7178a678cfd059ccec50887658d482ce16b0aa9da3888ddeab5cd5eb4889"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-bigint"
|
||||||
|
version = "0.4.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
|
||||||
|
dependencies = [
|
||||||
|
"num-integer",
|
||||||
|
"num-traits",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-complex"
|
||||||
|
version = "0.4.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
|
||||||
|
dependencies = [
|
||||||
|
"num-traits",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-integer"
|
||||||
|
version = "0.1.46"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
|
||||||
|
dependencies = [
|
||||||
|
"num-traits",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-rational"
|
||||||
|
version = "0.4.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
|
||||||
|
dependencies = [
|
||||||
|
"num-bigint",
|
||||||
|
"num-integer",
|
||||||
|
"num-traits",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-traits"
|
||||||
|
version = "0.2.19"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "paste"
|
||||||
|
version = "1.0.15"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "proc-macro2"
|
||||||
|
version = "1.0.103"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8"
|
||||||
|
dependencies = [
|
||||||
|
"unicode-ident",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "quote"
|
||||||
|
version = "1.0.42"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rawpointer"
|
||||||
|
version = "0.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "safe_arch"
|
||||||
|
version = "0.7.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323"
|
||||||
|
dependencies = [
|
||||||
|
"bytemuck",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "simba"
|
||||||
|
version = "0.9.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c99284beb21666094ba2b75bbceda012e610f5479dfcc2d6e2426f53197ffd95"
|
||||||
|
dependencies = [
|
||||||
|
"approx",
|
||||||
|
"num-complex",
|
||||||
|
"num-traits",
|
||||||
|
"paste",
|
||||||
|
"wide",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "syn"
|
||||||
|
version = "2.0.111"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"unicode-ident",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "typenum"
|
||||||
|
version = "1.19.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unicode-ident"
|
||||||
|
version = "1.0.22"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wide"
|
||||||
|
version = "0.7.33"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03"
|
||||||
|
dependencies = [
|
||||||
|
"bytemuck",
|
||||||
|
"safe_arch",
|
||||||
|
]
|
||||||
|
|||||||
17
Cargo.toml
17
Cargo.toml
@@ -4,6 +4,7 @@ version = "0.1.0"
|
|||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
nalgebra = "0.34.1"
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "1-secret-entrance"
|
name = "1-secret-entrance"
|
||||||
@@ -32,3 +33,19 @@ path = "src/6-trash-compactor.rs"
|
|||||||
[[bin]]
|
[[bin]]
|
||||||
name = "7-laboratories"
|
name = "7-laboratories"
|
||||||
path = "src/7-laboratories.rs"
|
path = "src/7-laboratories.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "8-playground"
|
||||||
|
path = "src/8-playground.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "9-movie-theater"
|
||||||
|
path = "src/9-movie-theater.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "10-factory"
|
||||||
|
path = "src/10-factory.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "11-reactor"
|
||||||
|
path = "src/11-reactor.rs"
|
||||||
131
src/10-factory.rs
Normal file
131
src/10-factory.rs
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
use std::cmp::min;
|
||||||
|
use std::fs::File;
|
||||||
|
use std::io::{self, BufRead, BufReader};
|
||||||
|
use std::str::FromStr;
|
||||||
|
use std::u64;
|
||||||
|
use nalgebra::{DMatrix, DVector};
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
struct Machine {
|
||||||
|
lights: Vec<u64>,
|
||||||
|
buttons: Vec<Vec<u64>>,
|
||||||
|
joltages: Vec<u64>
|
||||||
|
}
|
||||||
|
|
||||||
|
impl FromStr for Machine {
|
||||||
|
type Err = io::Error;
|
||||||
|
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||||
|
let groups: Vec<_> = s.split(' ').collect();
|
||||||
|
let lights_part = groups[0];
|
||||||
|
let lights = lights_part[1..lights_part.len()-1]
|
||||||
|
.chars()
|
||||||
|
.rev()
|
||||||
|
.map(|c| if c == '#' { 1 } else { 0 })
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
let buttons: Vec<_> = (1..groups.len()-1)
|
||||||
|
.map(|i| parse_button_group(groups[i]))
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
let joltages_part = groups[groups.len()-1];
|
||||||
|
let joltages: Vec<_> = joltages_part[1..joltages_part.len()-1]
|
||||||
|
.split(',')
|
||||||
|
.map(|j_s| j_s.parse::<u64>().unwrap())
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
Ok(Machine { lights: lights, buttons: buttons , joltages: joltages })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parse_button_group(s: &str) -> Vec<u64> {
|
||||||
|
s[1..s.len()-1].split(',')
|
||||||
|
.map(|x_s| x_s.parse::<u64>().unwrap())
|
||||||
|
.collect()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parity_solve(machine: &Machine, target: &Vec<u64>) -> Vec<u64> {
|
||||||
|
let mut solutions: Vec<u64> = Vec::new();
|
||||||
|
for selection in 0..(1 << machine.buttons.len()) {
|
||||||
|
let mut parity = target.iter().rev()
|
||||||
|
.fold(0, |state, x| (state << 1) + (x & 1));
|
||||||
|
for (i, button) in machine.buttons.iter().enumerate() {
|
||||||
|
if selection & (1 << i) != 0 {
|
||||||
|
for j in button {
|
||||||
|
parity ^= 1 << j;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if parity == 0 {
|
||||||
|
solutions.push(selection);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
solutions
|
||||||
|
}
|
||||||
|
|
||||||
|
fn minimum_solve(machine: &Machine) -> u64 {
|
||||||
|
fn apply_button(machine: &Machine, button_idx: usize, mut current: Vec<u64>) -> Option<Vec<u64>> {
|
||||||
|
for i in &machine.buttons[button_idx] {
|
||||||
|
if current[*i as usize] == 0 {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
current[*i as usize] -= 1;
|
||||||
|
}
|
||||||
|
Some(current)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn recurse(machine: &Machine, target: &Vec<u64>, max_cnt: i64) -> Option<u64> {
|
||||||
|
if target.iter().sum::<u64>() == 0 { return Some(0) };
|
||||||
|
if max_cnt <= 0 { return None };
|
||||||
|
|
||||||
|
let parity_solutions = parity_solve(machine, target);
|
||||||
|
let mut min_solution = None;
|
||||||
|
for parity_sln in parity_solutions {
|
||||||
|
let current = (0..machine.buttons.len())
|
||||||
|
.fold(Some(target.clone()), |state, i| {
|
||||||
|
if parity_sln & (1 << i) != 0 {
|
||||||
|
apply_button(machine, i, state?)
|
||||||
|
} else {
|
||||||
|
state
|
||||||
|
}
|
||||||
|
});
|
||||||
|
let Some(current) = current else { continue };
|
||||||
|
let parity_ones = parity_sln.count_ones() as i64;
|
||||||
|
|
||||||
|
let new_max_cnt =
|
||||||
|
(match min_solution {
|
||||||
|
None => max_cnt,
|
||||||
|
Some(ms) => min(ms as i64, max_cnt)
|
||||||
|
} - parity_ones) / 2;
|
||||||
|
let new_target = current.iter().map(|&x| x / 2).collect();
|
||||||
|
let sln = recurse(machine, &new_target, new_max_cnt);
|
||||||
|
let Some(sln) = sln else { continue };
|
||||||
|
min_solution =
|
||||||
|
match min_solution {
|
||||||
|
None => Some(parity_ones as u64 + 2u64 * sln),
|
||||||
|
Some(ms) => Some(min(ms, parity_ones as u64 + 2u64 * sln))
|
||||||
|
};
|
||||||
|
}
|
||||||
|
min_solution
|
||||||
|
}
|
||||||
|
|
||||||
|
let result = recurse(machine, &machine.joltages, i64::MAX).unwrap_or(0);
|
||||||
|
println!("Result: {}", result);
|
||||||
|
result
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() -> Result<(), io::Error> {
|
||||||
|
let f = File::open("10-input.txt")?;
|
||||||
|
let reader = BufReader::new(f);
|
||||||
|
|
||||||
|
let machines: Vec<_> = reader.lines()
|
||||||
|
.map(|l| l?.parse::<Machine>())
|
||||||
|
.collect::<Result<_,_>>()?;
|
||||||
|
println!("Parsed {} machines: \n {:?}", machines.len(), machines);
|
||||||
|
|
||||||
|
let presses: u64 = machines.iter()
|
||||||
|
.map(|m| minimum_solve(&m))
|
||||||
|
.sum();
|
||||||
|
|
||||||
|
println!("Result: {}", presses);
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
70
src/11-reactor.rs
Normal file
70
src/11-reactor.rs
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
use std::{collections::HashMap, fs::File, io::{self, BufRead, BufReader}};
|
||||||
|
|
||||||
|
#[derive(Clone)]
|
||||||
|
enum GraphNode {
|
||||||
|
Output,
|
||||||
|
Branch(Vec<String>)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn count_paths(
|
||||||
|
node: &str,
|
||||||
|
nodes: &HashMap<String, GraphNode>,
|
||||||
|
memo: &mut HashMap<String, usize>
|
||||||
|
) -> usize {
|
||||||
|
if let Some(&count) = memo.get(node) {
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
let count =
|
||||||
|
match nodes.get(node) {
|
||||||
|
None => 0,
|
||||||
|
Some(GraphNode::Output) => 1,
|
||||||
|
Some(GraphNode::Branch(children)) => {
|
||||||
|
children.iter()
|
||||||
|
.map(|c| count_paths(c, nodes, memo))
|
||||||
|
.sum()
|
||||||
|
}
|
||||||
|
};
|
||||||
|
memo.insert(node.to_string(), count);
|
||||||
|
count
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() -> Result<(), io::Error> {
|
||||||
|
let f = File::open("11-input.txt")?;
|
||||||
|
let reader = BufReader::new(f);
|
||||||
|
|
||||||
|
let nodes: HashMap<String, GraphNode> = reader.lines()
|
||||||
|
.map(|line| {
|
||||||
|
let line = line?;
|
||||||
|
let parts: Vec<_> = line.split(' ').collect();
|
||||||
|
let name = parts[0][..3].to_string();
|
||||||
|
if parts[1] == "out" {
|
||||||
|
Ok((name, GraphNode::Output))
|
||||||
|
} else {
|
||||||
|
let branches: Vec<String> = parts[1..].iter().map(|s| s.to_string()).collect();
|
||||||
|
Ok((name, GraphNode::Branch(branches)))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.collect::<Result<_, io::Error>>()?;
|
||||||
|
|
||||||
|
let svr_paths = count_paths("svr", &nodes, &mut HashMap::new());
|
||||||
|
let missing_fft_paths = count_paths("svr",
|
||||||
|
&(nodes.clone()
|
||||||
|
.into_iter()
|
||||||
|
.filter(|(k, _)| k != "fft")
|
||||||
|
.collect()), &mut HashMap::new());
|
||||||
|
let missing_dac_paths = count_paths("svr",
|
||||||
|
&(nodes.clone()
|
||||||
|
.into_iter()
|
||||||
|
.filter(|(k, _)| k != "dac")
|
||||||
|
.collect()), &mut HashMap::new());
|
||||||
|
let missing_both_paths = count_paths("svr",
|
||||||
|
&(nodes.clone()
|
||||||
|
.into_iter()
|
||||||
|
.filter(|(k, _)| k != "fft" && k != "dac")
|
||||||
|
.collect()), &mut HashMap::new());
|
||||||
|
|
||||||
|
println!("Result {}", svr_paths + missing_both_paths - missing_fft_paths - missing_dac_paths);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
103
src/8-playground.rs
Normal file
103
src/8-playground.rs
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
use std::{collections::HashMap, fs::File, hash::Hash,io::{self, BufRead, BufReader}};
|
||||||
|
|
||||||
|
#[derive(PartialEq, Eq, Clone, Hash, Debug)]
|
||||||
|
struct Node {
|
||||||
|
x: u32,
|
||||||
|
y: u32,
|
||||||
|
z: u32,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Node {
|
||||||
|
fn square_dist(a: &Node, b: &Node) -> i64 {
|
||||||
|
let dx = i64::from(a.x) - i64::from(b.x);
|
||||||
|
let dy = i64::from(a.y) - i64::from(b.y);
|
||||||
|
let dz = i64::from(a.z) - i64::from(b.z);
|
||||||
|
dx*dx + dy*dy + dz*dz
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<&str> for Node {
|
||||||
|
fn from(value: &str) -> Self {
|
||||||
|
let coords: Vec<_> = value.split(',').map(|s| s.parse::<u32>().unwrap()).collect();
|
||||||
|
Node {
|
||||||
|
x: coords[0],
|
||||||
|
y: coords[1],
|
||||||
|
z: coords[2]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone)]
|
||||||
|
struct Edge {
|
||||||
|
a: Node,
|
||||||
|
b: Node
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
struct DisjointSet<T> {
|
||||||
|
parents: HashMap<T, Option<T>>
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T: Eq + Hash> FromIterator<T> for DisjointSet<T> {
|
||||||
|
fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self {
|
||||||
|
DisjointSet {
|
||||||
|
parents: iter.into_iter().map(|x| (x, None)).collect()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T: Eq + Hash + Clone> DisjointSet<T> {
|
||||||
|
fn representative(&mut self, x: &T) -> Option<T> {
|
||||||
|
match self.parents.get(x)?.clone() {
|
||||||
|
None => Some(x.clone()),
|
||||||
|
Some(p) => {
|
||||||
|
let rep = self.representative(&p)?;
|
||||||
|
self.parents.insert(x.clone(), Some(rep.clone()));
|
||||||
|
Some(rep)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn union(&mut self, a: &T, b: &T) -> Option<T> {
|
||||||
|
let rep_a = self.representative(a).unwrap();
|
||||||
|
let rep_b = self.representative(b).unwrap();
|
||||||
|
if rep_a != rep_b {
|
||||||
|
self.parents.insert(rep_a, Some(rep_b.clone()));
|
||||||
|
Some(rep_b)
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() -> Result<(), io::Error> {
|
||||||
|
let f = File::open("8-input.txt")?;
|
||||||
|
let reader = BufReader::new(f);
|
||||||
|
|
||||||
|
let nodes: Vec<Node> = reader.lines()
|
||||||
|
.map(|lr| lr.map(|l| l.as_str().into()))
|
||||||
|
.collect::<Result<_, _>>()?;
|
||||||
|
let node_cnt = nodes.len();
|
||||||
|
|
||||||
|
let mut all_edges: Vec<_> =
|
||||||
|
(0..node_cnt).flat_map(|a| {
|
||||||
|
let na = &nodes[a];
|
||||||
|
(a+1..node_cnt).map(|b| {
|
||||||
|
let nb = &nodes[b];
|
||||||
|
let sqr_dist = Node::square_dist(na, nb);
|
||||||
|
(sqr_dist, Edge {a: na.clone(), b: nb.clone()})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.filter(|(_, e)| e.a != e.b)
|
||||||
|
.collect();
|
||||||
|
all_edges.sort_unstable_by_key(|(d, _)| *d);
|
||||||
|
|
||||||
|
let mut ds: DisjointSet<_> = nodes.clone().into_iter().collect();
|
||||||
|
let connections: Vec<_> = all_edges.iter()
|
||||||
|
.filter_map(|(_, e)| ds.union(&e.a, &e.b).map(|_|e.clone()))
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
let last_connection = connections.last().unwrap();
|
||||||
|
println!("Result {}", u64::from(last_connection.a.x) * u64::from(last_connection.b.x));
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
170
src/9-movie-theater.rs
Normal file
170
src/9-movie-theater.rs
Normal file
@@ -0,0 +1,170 @@
|
|||||||
|
use std::{cmp::{max, min, Ordering}, fs::File, i64, io::{self, BufRead, BufReader, ErrorKind}, fmt::Debug, str::FromStr};
|
||||||
|
|
||||||
|
#[derive(Clone, Copy, Debug)]
|
||||||
|
struct Vertex {
|
||||||
|
x: i64,
|
||||||
|
y: i64
|
||||||
|
}
|
||||||
|
|
||||||
|
impl FromStr for Vertex {
|
||||||
|
type Err = io::Error;
|
||||||
|
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||||
|
let parts: Vec<_> = s.split(',')
|
||||||
|
.map(|s| s.parse::<i64>())
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
let err = io::Error::new(ErrorKind::Other, "Unable to parse vertex");
|
||||||
|
let Some(&Ok(x)) = parts.get(0) else { return Err(err) };
|
||||||
|
let Some(&Ok(y)) = parts.get(1) else { return Err(err) };
|
||||||
|
Ok(Vertex { x: x, y: y})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
struct Edge {
|
||||||
|
a: Vertex,
|
||||||
|
b: Vertex
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, Copy, PartialEq, Eq)]
|
||||||
|
struct Segment {
|
||||||
|
lo: i64,
|
||||||
|
hi: i64,
|
||||||
|
truncate_lo: bool,
|
||||||
|
truncate_hi: bool,
|
||||||
|
dist: Option<i64>
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Segment {
|
||||||
|
fn new(e: Edge) -> Segment {
|
||||||
|
Segment {
|
||||||
|
lo: min(e.a.x, e.b.x),
|
||||||
|
hi: max(e.a.x, e.b.x),
|
||||||
|
truncate_lo: false,
|
||||||
|
truncate_hi: false,
|
||||||
|
dist:
|
||||||
|
if e.a.x < e.b.x { Some(e.a.y) }
|
||||||
|
else { None }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl PartialOrd for Segment {
|
||||||
|
fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
|
||||||
|
if self.hi <= other.lo {
|
||||||
|
Some(Ordering::Less)
|
||||||
|
} else if other.hi <= self.lo {
|
||||||
|
Some(Ordering::Greater)
|
||||||
|
} else {
|
||||||
|
Some(Ordering::Equal)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Ord for Segment {
|
||||||
|
fn cmp(&self, other: &Self) -> Ordering {
|
||||||
|
self.partial_cmp(other).unwrap()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Debug for Segment {
|
||||||
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
|
f.write_str(format!("({}, {})", self.lo, self.hi).as_str())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn rect_area(x1: i64, x2: i64, y1: i64, y2: i64) -> i64 {
|
||||||
|
(1 + i64::abs(x1 - x2)) * (1 + i64::abs(y1 - y2))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn rect_from_point(state: &Vec<Segment>, v: &Vertex) -> i64 {
|
||||||
|
let mut max_area = i64::MIN;
|
||||||
|
|
||||||
|
let mut max_y = i64::MIN;
|
||||||
|
for segment in state {
|
||||||
|
if segment.hi <= v.x { continue }
|
||||||
|
|
||||||
|
let Some(seg_y) = segment.dist else { break };
|
||||||
|
if seg_y >= max_y {
|
||||||
|
max_y = seg_y;
|
||||||
|
if !segment.truncate_hi {
|
||||||
|
max_area = max(max_area, rect_area(v.x, segment.hi, v.y, seg_y));
|
||||||
|
}
|
||||||
|
if !segment.truncate_lo {
|
||||||
|
max_area = max(max_area, rect_area(v.x, segment.lo, v.y, seg_y));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut max_y = i64::MIN;
|
||||||
|
for segment in state.iter().rev() {
|
||||||
|
if segment.lo >= v.x { continue }
|
||||||
|
|
||||||
|
let Some(seg_y) = segment.dist else { break };
|
||||||
|
if seg_y >= max_y {
|
||||||
|
max_y = seg_y;
|
||||||
|
if !segment.truncate_hi {
|
||||||
|
max_area = max(max_area, rect_area(v.x, segment.hi, v.y, seg_y));
|
||||||
|
}
|
||||||
|
if !segment.truncate_lo {
|
||||||
|
max_area = max(max_area, rect_area(v.x, segment.lo, v.y, seg_y));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
max_area
|
||||||
|
}
|
||||||
|
|
||||||
|
fn update_state(state: &mut Vec<Segment>, incoming: Segment) {
|
||||||
|
for i in (0..state.len()).rev() {
|
||||||
|
let current = state[i];
|
||||||
|
if incoming.lo <= current.lo && current.hi <= incoming.hi {
|
||||||
|
state.remove(i);
|
||||||
|
} else if current.lo < incoming.lo && incoming.hi < current.hi {
|
||||||
|
state.push(Segment { hi: incoming.lo, truncate_hi: true, ..current });
|
||||||
|
state.push(Segment { lo: incoming.hi, truncate_lo: true, ..current });
|
||||||
|
state.remove(i);
|
||||||
|
} else if current.lo < incoming.lo && incoming.lo < current.hi {
|
||||||
|
state[i].hi = incoming.lo;
|
||||||
|
state[i].truncate_hi = true;
|
||||||
|
} else if current.lo < incoming.hi && incoming.hi < current.hi {
|
||||||
|
state[i].lo = incoming.hi;
|
||||||
|
state[i].truncate_lo = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
state.push(incoming);
|
||||||
|
state.sort();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() -> Result<(), io::Error> {
|
||||||
|
let f = File::open("9-input.txt")?;
|
||||||
|
let reader = BufReader::new(f);
|
||||||
|
let vertices: Vec<_> = reader.lines()
|
||||||
|
.map(|l| l?.parse::<Vertex>())
|
||||||
|
.collect::<Result<_, _>>()?;
|
||||||
|
|
||||||
|
let mut edges: Vec<Edge> = Vec::new();
|
||||||
|
for i in 0..vertices.len() {
|
||||||
|
let j = (i + 1) % vertices.len();
|
||||||
|
edges.push(Edge {
|
||||||
|
a: vertices[i],
|
||||||
|
b: vertices[j]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
edges.sort_unstable_by_key(|e| e.a.y + e.b.y);
|
||||||
|
|
||||||
|
let horizontal_edges: Vec<_> = edges.into_iter()
|
||||||
|
.filter(|e| e.a.y == e.b.y)
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
let mut max_area: i64 = 0;
|
||||||
|
let mut state: Vec<Segment> = Vec::new();
|
||||||
|
state.push(Segment { lo: i64::MIN, hi: i64::MAX, truncate_lo: false, truncate_hi: false, dist: None });
|
||||||
|
for e in horizontal_edges {
|
||||||
|
max_area = max(max_area, rect_from_point(&state, &e.a));
|
||||||
|
max_area = max(max_area, rect_from_point(&state, &e.b));
|
||||||
|
update_state(&mut state, Segment::new(e));
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("Result {}", max_area);
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user