diff --git a/input/day13.txt b/input/day13.txt new file mode 100644 index 0000000..77e52c6 --- /dev/null +++ b/input/day13.txt @@ -0,0 +1,1319 @@ +.#.##.#.##..### +...##...####### +#.####.#.#.###. +#..##..##..#... +###..###....### +.##..##..#.#... +.#....#..###### +#..##..######## +########.#..#.. + +.#.###.###..###.# +..#...##########. +..######.#..#.### +..##.#.#......#.. +..#.##....##....# +.##..#.##.##.##.# +#.....####..####. +#.....####..####. +.##..#.##.##.##.# + +####.####.# +#..#.#..#.# +#..#.####.# +####.#..#.# +.##.##..##. +######..### +#####.##.## +#..######## +......##... +.##........ +#####....## +######..### +..#.#.##.#. +######..### +.##...##... +#..#.####.# +######..### + +.##..#.## +.##.####. +####..... +.##...##. +.##.#.### +#####..## +.##.#.##. +....#.### +####.#### +#..###..# +.#..##### +#..#.#... +.....##.. +#####.### +#####.### + +.##..##.##### +.#.##.#..#..# +##....###.##. +#......###..# +.#.##.#...... +...##.....##. +#......#...#. +.#....#...... +#......#.#### +#.#..#.#..##. +#..##..###### + +..#..#..#..##..#. +...##...#...##.## +...##...#...##.## +..#..#..#..##..#. +..#..#...##.##### +..#..#..###...### +##.##.##..##...## +#..##..##.#....## +#.....###.#.##..# +...............## +########.#......# + +..#.##....##.#. +###.########.## +#...##....##... +#####..##..#### +.#..########.## +..##.##..##.##. +.###.######.### +#.##...##...##. +#.##...##...##. + +.###.## +####..# +####..# +.###.## +..#..#. +##..... +##..#.. +..#..#. +.###.## + +#..#### +#.##### +...#... +..##... +##....# +##....# +..##... +...#... +#.##### +#..#### +.....## + +#....#.## +...##.#.# +###..#... +#....#.## +######... +..##.##.. +..#...#.# +..#...#.# +..##.##.. +######... +#....#.## +###..#... +...##.#.# +#...##.## +#...##.## + +##.###..# +##.##.##. +..##..#.. +..#..##.# +..#..##.# +..##..#.. +##.##.##. +##.###..# +......##. +.#######. +##.#.###. + +.#..... +..##### +####..# +...#### +##.#..# +#.##..# +.#.#..# +#..#### +#.##..# +..##..# +#..#### + +....#.# +#..#..# +.##..## +.##..## +#..#..# +....#.. +.##.#.# +#####.. +....##. +####... +.....## +#..##.. +.##...# +#..#... +.##...# + +..##...#.#.##.... +#.####.###.##..## +#.####.###.##..## +..#....#.#.##.... +.#..#..#....#.#.# +###..#..##.#####. +##..#..####..#.#. +..###.#..##.#.##. +...##.######..... +..#...##.#.#...#. +....#...###.#.... +....#...###.#.... +..#...##.#.#...#. + +##..##.#.## +##..##.#.## +#######..#. +.####..#... +#.##.#..#.# +.#..#.#.... +##..##.#.#. +.####...#.. +.####.#.### +..###...### +######..#.# +.####.##.#. +#.##.#.#.## +.####.##### +#######..## + +#.##...## +...####.# +####..### +###.###.# +.#.#####. +.#.#####. +###.###.# +####..### +...####.# +#.##...## +#.#.#.### +#..####.. +##.####.. + +..###.....##. +##....##..### +##....#....## +####.....#.#. +...########.. +##...#..##.#. +...#.#.###..# +######.##..#. +##....#...#.# +...#####.##.# +#####.#...##. +..#.######... +####.##...##. +###.##..#.#.. +###.##.##.#.. + +##.#...######## +.#..##.#....... +.#.#.....#.##.# +.##..#.###.##.# +#.#####.##.##.# +.##.###.#...... +.##.###.#...... +#.#####.##.##.# +.##..#.###.##.# +.#.#.....#.##.# +.#..##.#....... +##.#...######## +###.....###..## +.#.#.#.......#. +####.###..#..#. +##.##.##..####. +#.#..#..#..##.. + +#.#.....#..#... +.#####.#.##.#.# +.###.##.#..#.## +#.#.###.#..#.## +#.#####.#..#.## +.###.##.#..#.## +.#####.#.##.#.# +#.#.....#..#... +...##.##....##. + +#......#. +#.####.## +..####..# +#......#. +#......#. +..####..# +#.####.## +#......#. +########. +..#.##..# +##....##. +.#....#.. +.##..##.. + +######.##.### +..##..#####.# +.#....##.#.## +.####..##..#. +#######.#.### +#######.#.### +.####..##..#. + +.##.#..###..####. +.##.#.####..####. +#..#..#..###.#... +#..#####.###.##.# +#..###..##.####.. +#####.##...##.... +####.#.#..###..## +.##.#..#.#.#...#. +#..#..####.###..# +.##..##....#####. +.##.............# +.....########..## +#..##.##..#.###.# + +####.#..#.### +...#..##..#.. +..#######.##. +##.#.#..#.#.# +...#.#..#.#.. +##.#.#..#.#.# +#####.##.#### +##...#..#...# +......##..... +###.#.##.#.## +..###....###. +###...##...## +....######... +...#..##..#.. +##.#.####.#.# + +.##.#..##.#.#.#.. +.##.#.##.######## +.....#.####.##### +####....##..###.# +#..#..##..######. +#######.###..#..# +####...#..#.....# +.....##.#...###.. +.......##.##...#. +....#....#.#.#### +......#..##.#..#. +#..###....#...#.# +#..#...##..##.### +....#...###....## +.##....#..#.#...# +....#....#....#.. +....#....#....#.# + +..####..##### +#########..## +##.##.####.#. +########..### +##....##.#### +...##...#.... +..#..#..#.#.# +#.####.#.#.## +##....##.#... +.........##.# +..####...#.#. +...##....#... +###..####.#.. + +#..#.#..#.# +#.###.##.## +..##.####.# +.#..##..##. +#.##..##..# +.#.######## +..#..#..#.. +..#..#..#.. +.#.######## +#.##..##..# +....##..##. +..##.####.# +#.###.##.## +#..#.#..#.# +#.###....## + +#...##..##..# +...##..####.. +.#.##........ +###.#.##..##. +...##.#.##.#. +.....#..##..# +...#.#..##..# +...##.#.##.#. +###.#.##..##. + +####.######.# +.#........... +#.#.###..###. +.........#... +#............ +#..#.######.# +#..#.######.# + +####.###.## +###..#...## +###..#...#. +####.###.## +#..#....#.. +###...##.#. +.##.##..#.. +#.##.#.##.# +#..##.##.## +..#.###..## +......##.#. +..#.#.###.# +#.##.####.# +..#.####### +..........# +..........# +..#.####### + +..#.#.. +##..#.# +#...##. +..#.#.. +...#.#. +....### +#####.. +#####.. +....### + +..#..#..#.#.##.#. +..##.#..#.#.##.#. +..######.#......# +#....##.####..### +.#....#.##......# +..#.##.....#..#.. +.#.###..#.######. + +#####.#...... +.#.#.....#... +#..##.#...#.. +#.#....#..... +#....##..#.#. +##.#.####..## +#..#.#.#..... +#.####..##... +.#....##.##.. +..##...#.#.## +##..####.#.## +..#.#...#.#.. +..#.#...#.#.. + +#.##...##.. +...#....... +.###.#....# +#.#.#.#..#. +#.##.#....# +##..##.##.# +##..##.##.# +#.##.#....# +#.#.#.#..#. +.###.#....# +...#....... +#.##...##.. +..#..#....# +##...#..#.# +.###..####. +##..#.#..#. +##.#.#....# + +..##..### +######.## +##...##.. +#.##.##.. +##..###.. +.#..#.... +..##..#.. + +.###.###..##. +.###.###..##. +#.##..#...### +##..#..#...#. +#..##.##..##. +.......#..##. +##.##.##..#.# +.#.##..###.## +.#.##..###.## +##.##.##..#.# +.......#.###. +#..##.##..##. +##..#..#...#. +#.##..#...### +.###.###..##. + +.##..#..#.. +###.##..##. +###.##..##. +.##........ +##.#..##..# +..##..##..# +##.#..##..# + +....##..#.#.#.#.# +....##..#.#.#.#.# +######........### +####......###.... +.##.##.###..##### +.......#.#..#..#. +####...##.#.##.#. +#####.#..##.##..# +#..#..##.....#### +....#..#...###.## +....#....######## +.###.#...#####..# +.##.#.##.#.....## + +.#.###.#.##.# +........#...# +.#.##......## +.#.##......## +........#...# +.#.###...##.# +#.#.#.#...... +####....#.#.# +.#.....####.# +.#.#....####. +.##.#.#...##. +.#.##.##..... +..#...###..#. +###...#..##.. +###...#..##.. + +###..#... +.#.##.... +##.##.... +###..#... +#...##.## +###...... +#....#.## +.######## +...####.. + +...........#..#.# +#..####..##.#..#. +#..####..##.#.... +...........#..#.# +..#....#..#..##.. +#.#....#.##.#..## +..........#.#.... +#.#....#.#..#.#.. +.########.#.#.##. +..#.##.#...#...#. +..........#..#.## +#..####..#..#.##. +#.#....#.#.##.#.. +##.#..#.#####.##. +#..####..#.##..#. + +#.#.#.#..#. +###..###### +##.....##.. +#.##.##..## +.##..###### +..#.#.#..#. +..#.#.#..#. +.##..###### +####.##..## +##.....##.. +###..###### +#.#.#.#..#. +..##..####. + +#..#.#.#. +#..#.#.#. +..#.#..#. +.#..#.... +..####### +..####### +.#..#.#.. +..#.#..#. +#..#.#.#. + +##..###...# +#....##.#.. +..##..##### +..##..#.#.# +#.##.####.. +######....# +.#..#...#.# +#....#.##.# +.#..#....## +.#..#....## +#....#..#.# + +...##.##. +..#..##.# +#.###.### +#.###.#.# +.#.#...## +##...#... +##..##.## +##..##.## +##...#... +.#.#...## +#.###.#.# +#.###.### +..#..##.# +....#.##. +....#.##. + +#....##.# +#....#### +##..##.## +#.##.#..# +#....##.. +.#..#..## +#.##.#.## +##...#### +#.##.#.## +#.##.#.## +##...#### +#.##.#.## +.#..#..## +#....##.. +#.##.#..# +##..##.## +#....#### + +#..#....##.##.# +....##..#..#.#. +....##..#..#.#. +#..#....##.##.# +#.######.#.##.# +#......##.#..## +....###...##### +##...#.#...##.. +.#.......##..## +.#.......##..## +##..##.#...##.. +....###...##### +#......##.#..## +#.######.#.##.# +#..#....##.##.# + +#...##...#..# +#.####.#.#### +..#...#..#..# +#...#.#.##..# +#..#..###.##. +...#....#.... +.###..#.##..# +..##.#....... +..##.#....... +.###..#..#..# +...#....#.... + +##..##.#.#. +.#.#.#.###. +####.##.#.# +#######.#.# +.#.#.#.###. +##..##.#.#. +#.....#.#.# +#.....#.#.# +##..##.#.#. +.#.#.#.###. +#######.#.# + +......# +.###### +.#..#.. +.#..#.# +.####.# +......# +##..##. +#....#. +#.##.## +#.##.## +#....#. +##..##. +......# + +#.#.######. +.#.##....## +####......# +...#.#..#.# +##...#..#.. +.#..######. +#.#..#..#.. +..#....#... +.##..####.. +#.##.#..#.# +#.###....## +..#........ +..#........ + +.####.####.## +#.##.#....#.# +.####......## +.####..##..## +#....#....#.. +..##...##...# +.......##.... +.#..#..#...#. +..##........# +.#..#..##..#. +#....##..##.. +..##..####..# +.####.#..#.## +......#..#... +##..###..###. + +.#..##.#.#.#..#.# +##.#.....#......# +#.#..#.##.##..##. +....#...###.##.## +.......#.##.##.## +.......#.##.##.## +....##..###.##.## +#.#..#.##.##..##. +##.#.....#......# +.#..##.#.#.#..#.# +#...###...#.##.#. +.#.####..#.#..#.# +######...##.##.## + +####....#####.# +####....#####.# +#.###..###.###. +#..........##.. +#..#.##....#..# +####.##.####### +#..#.##.#..##.. +.##......##.#.. +###..##..###..# + +......##.## +####.##.### +#..#####... +.##.#.#.##. +.##.#.#.##. +#..#####... +####.##.### +.....###.## +#..#...##.# +.##..##.#.. +####....#.. + +#..#..#.###.####. +###.##...##.....# +##.#........#..#. +.....##..###.##.# +..#...#.##..#..#. +.#....#######..## +......##.....##.. +#..###.########## +.#..####.###....# +..#..##.#####..## +.##.#.###.#.####. +#.##..#..#....... +.....##..##.#..#. +.###...###..#..#. +.###...###..#..#. + +.####..##..#### +...###....###.. +#.#.##.##.##.#. +....#.#..#.#... +#....######.... +#......##...... +....#.#..#.#... + +......####..### +.#..#.#####.### +#.##.#......... +#.##.###.#..#.# +.####..###..### +######..######. +..##......##... +##########..### +.......#......# +.#..#..##....## +......##.####.# +##..###........ +......###....## +.####....####.. +#.##.#..#....#. + +#####.# +#.##..# +##.#.#. +###..#. +...#.#. +###.### +..##### +..##### +###.### + +##.###. +###...# +##..... +..#...# +##.##.# +..#.### +..#..## +......# +......# +..#..## +..#.### +##..#.# +..#...# +##..... +###...# +##.###. +...###. + +..##.###.#...## +#.##.###.....## +#.##.###.....## +...#.###.#...## +.#....#...#.#.. +..####..#####.. +...######.##.## +.#.#..#.#.##### +.#...#..#...... +.#...##..###### +.#..#.####..#.. + +#.##.#..# +#.##.#..# +..#.##### +##.##.##. +#.#.##.## +.###..... +...##.... + +....#..#....### +##.#...##.#.### +###...#....#.## +..##.#...###### +######.####.### +.........##.... +#.##..######... + +....##. +#####.# +....#.. +....##. +#..##.. +.....#. +#####.# +#####.# +.....#. +#..##.. +....### +....#.. +#####.# + +.##..#..# +#.###.### +.#..##..# +##.####.. +.#..##... +......#.. +......#.. +.#..##... +##.####.. +.##.##..# +#.###.### +.##..#..# +....#..## +...###... +.#..###.# +.#..###.# +...###... + +.#....#.##... +#......#.#.## +#.####.###... +##########... +.##..##...... +.#....#...### +.##..##.##.## +.##.###..##.. +########.#### +..####..##.## +...##...#..## +.##..##...#.. +#.####.#..### +##....###.### +.#....#.###.. + +#..#####.#..# +###.##.###### +#........#### +.#.#..#.#.... +..........##. +#........#..# +##..##..##### +#..#..#..#..# +#.######.#..# + +.#..#.####.#..# +...#...##...#.. +#...##....##... +##..##.##.##..# +##..##.##.##..# +#...##....##... +...#...##...#.. +.#..#.####.#..# +##.#........#.# +.##.#.####.#.## +###..........## +.##.########.## +.#..##.##.##... +...#.#.##.#.#.. +.....#.##.#.... +###.#......#.## +#.###.#..#.###. + +#..#.#.## +....##.#. +....##.#. +#..#...## +.##.#..## +.....#.## +.##...#.# +#..#....# +....####. + +#####..##.# +#.#.#.#.#.. +###.##.##.. +##.##.#...# +...#..#.##. +...#..#.##. +##.##.....# +###.##.##.. +#.#.#.#.#.. +#####..##.# +####..#.#.# +####..#.#.# +#####..##.# +#.#.#.#.#.. +###.##.##.. + +##.##.######. +.######.##.## +##.##.######. +..#..#......# +.#..#.#.##.#. +#.#..#.#..#.# +###..######## + +.#.#.#..##..#.#.# +.###...#..#...### +#..#.#..##..#.#.. +.#.#...####...#.# +#.#....#.......#. +#................ +...#.#......#.#.. +..#.####..####.#. +...#...####...#.. +#.#.##..##..##.#. +.....#.####.#.... +#.##.#.####.#.##. +.###..#....#..### +.##..########..## +.##..########..## +.###..#....#..### +#.##.#.####.#.##. + +#..#.#..#.# +..###.##..# +#..#......# +###.######. +#.##.####.# +#.....##... +#...#....#. +..#..#..#.. +#.#........ +.###..##..# +.###..##..# +#.#........ +..#..#..#.. +#...#....#. +#.....##... + +..####..##. +#.##....... +###.....##. +.###.#..##. +#...#...... +#.###..#### +##..#.##### +.#..#.##### +#.###..#### + +......##### +####.##.##. +####.#..... +######...#. +....###.### +.##.##.#### +.##..#.#### +....###.### +######...#. +####.#..... +####.##.##. +......##### +#..#.##.### +####.#..#.. +#..####.### + +..##.##.##..##..# +..#.####.#..#.### +#####..#####..### +.#.##..##.#...#.# +.#.##..##.#...#.# +#####..#####..### +..#.####.#..#.### +..##.##.##..##..# +##..####..##.#..# +#...#..#...#..#.. +##..#..##.##.#... + +...##..##...#.. +##.####.##.#.## +...#.##.#####.. +..#.####..#..## +..#########..#. +..#########..#. +..#.####..#..#. +...#.##.#####.. +##.####.##.#.## +...##..##...#.. +########...###. + +####.#####. +...###....# +...#.....## +...#.....## +...###....# +####.#####. +#....##.##. +.....#.#..# +.##..#..... +.##..##.... +.....#.#..# +#....##.##. +####.#####. +...###....# +...#.....## + +####....##.#### +.....##.#..###. +##.##.#####.... +##..###......## +#.#..####.#.#.# +##..#.####.#... +##..#.####.#... +#.#..####.#.#.# +##..###......## +##.##.#####.... +.....##.#..###. +####....##.#### +.#..####.##.### +#.#.####..###.# +#.######..###.# + +.#.#..#.#.#.##.#. +.#.#..#.#.####.#. +...#..#.....###.# +####..######.##.. +..........#.#..#. +..##..##..#...##. +.###..###.##.#..# +...####...#.#..#. +.#.####.#.###.#.. +#.#.##.#.###.#.#. +.#.#..#.#.#..##.. + +###..###. +###...##. +..##.##.# +.#..####. +#..##.#.. +.#.##.#.. +.....#.#. +.....#.## +#.#.##.## +#.#.##.## +.....#.## +.....#.#. +.#.##.#.. +#..##.#.. +.#..####. + +..#............#. +..##.###..###.##. +..##.##.##.##.##. +##.#####..#####.# +..##.##....##.##. +.....#..##..#.... +###.#.##..##.#.## +##.#.###..###.#.# +...#..##..##..#.. +..#.#........#.#. +#######.######### + +###.....#.#.##. +..#..##.#.##..# +####.....###.## +..#.....#...#.# +..#.#...#.###.# +##.#..####.#..# +..#.#.#.###..#. +##.##..##..#.#. +##.##.###..#.#. + +....#..#. +####....# +.##...... +#.##.##.# +#..##..## +#..##..## +#####..## + +.#.#.## +####... +###.... +..#.#.. +..#.... +###.... +####... +.#.#.## +#.##... +.#.##.. +..#..## +#....## +...#.## +.#...## +.###... + +###..###..#.#.. +.######..##.### +##########...## +..####..##.#... +#.#..#.###.###. +.##..#..#...##. +##.##.##.#..#.. +##.##.###..##.. +###..####.#.#.# +###..####.#.#.# +##.##.###..##.. + +#.####.## +.##..##.# +#####.### +..#..#... +##....##. +.######.# +#..##..#. +#.####.## +..#..#..# +...##.... +..####... +..#..#..# +..#..#..# +..####... +...##.... +..#..#..# +#.####.## + +.#.##..#.#..... +..#.###.#####.. +..#...#.#.##... +##.##..#.#..### +...#..##.###.#. +..##.#######.## +..##.#######.## +...#..##.###.#. +##.##..#.#..### +..#...#.#.##... +..#.###.#####.. + +#.######### +.#.#.#..#.# +#.###.....# +##..#.##.#. +.#..#.##.#. +.###.#..#.# +#...#.##.#. +#...##..##. +.#....##... +#.#.#....#. +#.#.#....#. + +#..#..#.# +#..#..#.# +..#....#. +##..##.#. +#.#.##.## +.##...##. +##.###... +#.####... +######... +##.###... +.##...##. +#.#.##.## +##..##.#. +..#....#. +#..#..#.# + +#....#..# +#.##.#... +##..##... +##..##... +#.##.#..# +#....#..# +.####..#. +.#..#...# +##..##### + +#...##...#....##. +..#.##.#..###.... +..##..##..##.#### +...####.....##..# +#.######.#....### +###.##.####..#..# +##..##..##.##.##. +#........##.##### +...........#.#..# + +.#.#..#..#.## +.##.#...##### +.##.#...##### +.#.#..#..#### +#..#.....#... +.####.##.#... +..#..###.#... +#.##.##...... +########.#### +#####..##.### +#....#..#..## +..####...#.## +..#.#.##.#.## +...#.#.#..... +#.#..#.##.... +##.#.#.#..#.. +#.#####.#.#.. + +##.##.##.##.# +##.###..###.# +.####.##.#### +#####.##.#### +##.##.##.#..# +#.#........#. +#.#........#. + +####.#.#.#..# +.##.#.##.#..# +.##...###.##. +.##..##.##..# +.....###.#..# +....#.#..#### +######..#.##. +......##..... +####.#.#.#..# +.##..##..#### +.##....#..... +#####..#..... +#...##..#.... +.##..######## +.##.#...##### +#..######.... +.....##..#..# + +###....## +..#.##.#. +..#..#.#. +....##... +##......# +...#..#.. +###....## +..######. +..##..##. + +##..##.###### +.####.####### +.####.##.##.# +.#..#..#.##.# +######.#....# +......#..##.. +######.##..## +.#..#...###.. +#....#....... +#######.#..#. +..##....#..#. +#....###....# +########.##.# + +#..#.##.#.. +#..#.##.#.. +#..#.#.##.. +#.#####.##. +####...#### +#..######.# +.##.###..## +#####.#.##. +....###..#. + +#..###.#. +...#...## +##...##.. +###.###.. +##...#.## +...###.## +...#.#.## +##...#.## +###.###.. +##...##.. +...#...## +#..###.#. +#..###.#. + +####.####..## +#.......#...# +#.#......##.# +#..##...#.### +#..##...#.### +#.#......##.# +#.......#...# +####.####..## +#.##..####### +....#..##.##. +..#...#...### +##.####.##### +##..###.##### + +###.#.# +##...## +#..##.# +##.#.## +..##... +..#.##. +#####.. +#####.. +..#.##. diff --git a/src/day13.rs b/src/day13.rs new file mode 100644 index 0000000..75ea2e8 --- /dev/null +++ b/src/day13.rs @@ -0,0 +1,105 @@ +use std::io; + +fn try_vertical(rows: &Vec>, c: usize, smudge: bool) -> bool { + let mut left = c - 1; + let mut right = c; + + let mut one_err = false; + + loop { + for row in rows { + if row[left] != row[right] { + if smudge && !one_err { + one_err = true; + continue; + } + return false; + } + } + if left == 0 || right == rows[0].len() - 1 { + if smudge { + return one_err; + } + return true; + } + left -= 1; + right += 1; + } +} + +fn find_vertical(rows: &Vec>, smudge: bool) -> Option { + for i in 1..rows[0].len() { + if try_vertical(rows, i, smudge) { + return Some(i); + } + } + None +} + +fn try_horizontal(rows: &Vec>, r: usize, smudge: bool) -> bool { + let mut top = r - 1; + let mut bottom = r; + + let mut one_err = false; + loop { + for i in 0..rows[0].len() { + if rows[top][i] != rows[bottom][i] { + if smudge && !one_err { + one_err = true; + continue; + } + return false; + } + } + if top == 0 || bottom == rows.len() - 1 { + if smudge { + return one_err; + } + return true; + } + top -= 1; + bottom += 1; + } +} + +fn find_horizontal(rows: &Vec>, smudge: bool) -> Option { + for i in 1..rows.len() { + if try_horizontal(rows, i, smudge) { + return Some(i); + } + } + None +} + +pub fn summarize(smudge: bool) -> usize { + let mut buffer = String::new(); + + while io::stdin().read_line(&mut buffer).unwrap() > 0 {} + + let valleys = buffer.split("\n\n"); + + let mut sum = 0; + for valley in valleys { + let rowsplit = valley.split("\n"); + let mut rows = Vec::new(); + for row in rowsplit { + if row.len() > 0 { + rows.push(row.chars().collect()); + } + } + match find_vertical(&rows, smudge) { + Some(x) => { + sum += x; + continue; + } + _ => {} + } + match find_horizontal(&rows, smudge) { + Some(x) => { + sum += 100 * x; + } + _ => panic!("No match mound {:?}", rows), + } + } + sum +} diff --git a/src/main.rs b/src/main.rs index 54ce97d..c9e1738 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,6 +4,7 @@ mod day1; mod day10; mod day11; mod day12; +mod day13; mod day2; mod day3; mod day4; @@ -44,6 +45,8 @@ fn main() { "day11b" => println!("Sum: {}", day11::sum_lengths(999999)), "day12a" => println!("Sum: {}", day12::sum_arrangements(false)), "day12b" => println!("Sum: {}", day12::sum_arrangements(true)), + "day13a" => println!("Summary: {}", day13::summarize(false)), + "day13b" => println!("Summary: {}", day13::summarize(true)), _ => println!("Unrecognized day: {}", args[1]), } }