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]]
|
||||
name = "aoc-2025"
|
||||
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",
|
||||
]
|
||||
|
||||
19
Cargo.toml
19
Cargo.toml
@@ -4,6 +4,7 @@ version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
nalgebra = "0.34.1"
|
||||
|
||||
[[bin]]
|
||||
name = "1-secret-entrance"
|
||||
@@ -31,4 +32,20 @@ path = "src/6-trash-compactor.rs"
|
||||
|
||||
[[bin]]
|
||||
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