From c3b4c33f41b0e4cd1caa7b8f341a7d78a1dc09ad Mon Sep 17 00:00:00 2001 From: Stefan Harmuth Date: Wed, 4 Dec 2024 06:44:10 +0100 Subject: [PATCH] day4 --- day04.py | 58 +++++++++++++++++++ inputs/input4 | 140 +++++++++++++++++++++++++++++++++++++++++++++ inputs/input4_test | 10 ++++ 3 files changed, 208 insertions(+) create mode 100644 day04.py create mode 100644 inputs/input4 create mode 100644 inputs/input4_test diff --git a/day04.py b/day04.py new file mode 100644 index 0000000..037c8bd --- /dev/null +++ b/day04.py @@ -0,0 +1,58 @@ +from tools.aoc import AOCDay +from typing import Any +from tools.grid import Grid + + +class Day(AOCDay): + inputs = [ + [ + (18, "input4_test"), + (2370, "input4"), + ], + [ + (9, "input4_test"), + (1908, "input4"), + ], + ] + + def part1(self) -> Any: + match = 0 + word_search = Grid.from_data(self.getInput(), default="") + for current_pos in word_search.getActiveCells(): + if word_search.get(current_pos) != "X": + continue + for dir in [i - current_pos for i in word_search.getNeighboursOf(current_pos)]: + if "".join(word_search.get(current_pos + dir * j) for j in range(4)) == "XMAS": + match += 1 + + return match + + def part2(self) -> Any: + match = 0 + word_search = Grid.from_data(self.getInput(), default="") + for current_pos in word_search.getActiveCells(): + s = "".join( + [ + word_search.get(current_pos), + word_search.get(current_pos + (1, 1)), + word_search.get(current_pos + (2, 2)), + ] + ) + if s != "MAS" and s != "SAM": + continue + s2 = "".join( + [ + word_search.get(current_pos + (0, 2)), + word_search.get(current_pos + (1, 1)), + word_search.get(current_pos + (2, 0)), + ] + ) + if s2 == "MAS" or s2 == "SAM": + match += 1 + + return match + + +if __name__ == "__main__": + day = Day(2024, 4) + day.run(verbose=True) diff --git a/inputs/input4 b/inputs/input4 new file mode 100644 index 0000000..f54c06a --- /dev/null +++ b/inputs/input4 @@ -0,0 +1,140 @@ +SSSXSSMSXMMAXXAXMSSMSSMSXMASXXMXMMXMSXSMXMMSASXMMAMMMMMXSAXMAMASMASASXSXMMMSMAXMSAMXAAXXXAMXSAMSAAMMXASXMXXXXASXMMSMMMMMMMSMMSAMSSSMXSMMXSXM +MXMAMMMSAAMSSSXSMMMMMAMMMXMMXXAAXMAMMAASMSXMASAXSXMAAXAAAMAMXSXXMASMMAMXMAAAXXMASXSSMXAMSXMAMXXSMXXAMXXAXMSMMMMAAAXXAAAXAAAAXSAMMASXAMXXAMAS +XAMAMSAMMMMAAMAAXAAMSAMXSAAXSSSMSSSSMXMAXMAMSMXMAASXMSMMSXMMXAMXMASXMAXAMMXSSMAMSAMXAXMMAMXXXXXMASXMMASXMAAXAASXMASXSSSSMSXSMXAMMMMMMSSMMSAM +SXSASMMSXAMMSMMMSSSMSXSASMSXMAMAAXAAASXMASAMXASMSMMAMSMXXASMMSMXMASMSSMMXSAAMASXMMMASMXMAXMSASXMAMMMSXMASMMSSXSXXXMAMAMMAMAMASMMMMAAAAXAAXXS +MXMXMAXXMXXAAAXAAAAAXAMAMAMMMAMMMMSMMMASXMASMXMAXXSAMMMMSMMAAAAAMMXAAAASAMMSMAMASXMAMMXSSSMXMSAAAXAMXAXAMXMAXMMMXSMAMAMMAMMMXMMAASMSSMSMMMMA +MASMSMMMSMMSXMMXMMMMMMMSMAMSMXSAMXAXXSXMAMXXXXMXMMXMXSAAXXXMMSSXSAMSMSMMASAXMASXMAMMXSAMXAXXXSXMMSSSSSMXSXMASXMMAMSSSXSMMSASXAXSMMXAMXMAAASM +SAXXAMAAAAMAASXMSXAXXSAMSSMMMMSAMXXMASXMAMSXMMSSMMSAASMMSMMSAMMAMMMXAMXSAMMSSXMASMMXAMASXMMMMMAMXXAAAMAMSXMMMMMMAMAXMAMAMSASXSMMASAMXAXXXXMX +MXSSMSMSXSMMXMAAXXAMAMAXAXAASAMXMXMAXXMMAMSAMASAAAMMMSXMAMAMASMXMSMMXMAMXSAMXMSAMASMASAMAAAAASAMXMMMMMSMSASAXAASMMSXMAMAMMAMAXXMAMXSSMSMSSSX +XMAAASMMAMAMSSMMMMSSXSMMMXMMSXXMSMMMSMAMSMSAMSSMMMSMMSXMXMMXXMMXAASMAMAMAMMMMMMXSAMAXMMMAMXSXXAXSMMXSXAAXAMASMMAAXAASASAMXAMMMSMAXAXAAAAAAAM +MASMMMAXAXAMXMASXXAAMMAAXMAMXXXAAAAAAXMXMASAMXMAMXSAMXASAMXMMASMSXMMXMAMMMXMAMSMAMSMSAMXSAMXMMSXAXMMMSMMMMMXMAASMMXXMAMMSSXSAASASASXMMMMMSMA +AMAMXSAMXSSMMXMMMMMSSSSMSAMSASMSMSMSSSXSMAMMXSXXMAXAXSXMXXMASAXXMMSXXSASMSSSMMXAMMSXMXMAXAMXAAMXAMXAMASAAXXXAXMAXSXSMAMXAMASMAMAMAMXMMXMAXAS +SSXSXMXMXSXAMXSAAMXMMAAXAXXMAMAMXMMXAXAXMXSMAMMAMSMSMMMMXSMMMAMXMASAAXAMAAAXMASMXMSAMSMMMAMMMMMAMXXMMAXMMMSMSMSXAXAMMMSMASAXMAXAMXMAXSAMSSMX +XMAMMSAMMSSSMAMMSMAMMSMMMMXMXMMMASXMXMXMAMAMMSMSXASAAAAMMMASMMMAXSMMMSSMMMSMSAXMASMAMAAXSSMXMASMMSSXMMSSMMSAAAXMMMAMAAAMXMMSXMXMXXSAXSMMMSAX +MMSMAXASMXAMMXMAMMAMXAMMXMXSAAASASAXMASAMSSSMSAXMXSMSMXSASAMAASMMMAMXAXMAMXAMMMMXMMAMMMAMMAMXASAAAMASAAMAAMSMSMMXMASMSXSXAMXMMASMMMXXXXAAMMM +XAASMSMMMMAMAAMASXMSMSAMAMMXXSXMASMMMSASAAAAAMMMMAMXMAAXMMAMMMSXAXSMMXXMMAMXAXSASASXSXMASMXMMMSMMMSAMMSSMMMXMAMMAMMSMMXAMXMAMSASAMAXXMSMSMXA +MXMSXAMSXXXMSXSASAXMAXMSASXMMMXMXMMAMAAMMMSMMMXSMXSAMMMMSMXSAMXXSXMASASXSXSXAASAXASAAXSASXSXMAXAAXMXSXMAMSASMMMSASMSASXMSSSMMAAXMMMSAAXAAXMX +SMMXMAMAMSAMXXMASMMMAMXSASMAMAXMAMMSSMXMAMXMXMXMAXMXXSAMXAASXXMAXXSAMMAAMAMMAMMMMMMMMMMMSMXAMSXSMXMMXASAMXMXAAASMSAMXMAMAAAXMMMMXMAXMMMMMMSA +SAMAMSMMAAASXMMAMXAXAXMMMMMSMAXMAMAXAXMSAMXMASXMSMXMASXSMMMSASASXAMASXMSMAMMXMAXAXXXXASXSAMSMMAMAASXMXMAMMXSSMMXAMAMMMMMMXMMMAMMAMSSSMSAAAMX +SAMMMAASMMMMMAMSSMSSSSMSSMSXMAMSAMMSSMMXAXAMASAXXAAXXMMMXAMXAMAMMAMAXAXXXSMMASMMSXMXMSMAMAMXASAMSMMAXSSMMMMMXASMMMASAAMXSAAXMAMXAMAAMASMSXXS +MAMXSSXMSMSAMXMAAMMAMXAAAXSAMXMMAMXAMXAXSSSMSSXMMSMSMAASXSSMAMAMASMMMSMMMMASASAMXAAAMAMMMAMMAMSMXMMSMAAXSAXXMASAMSMSMMSAXSXMMASXSMMSMAMAXMXS +SMMMXMAAAXSASMMSSMMAMMMMSXSXMAMSAMMAMMMMXAXXXMAMAAMXMSMSAMXMASASMXAAAMMSASMMAMAMSXXXSASXMAXMXMASXXAAMSMMSMSMSMMAMXASAMMMMXMAMMSAAMMAMXSAXAMX +AASXAMMSMXSXMAAAMXSSMMSAMASMSSXMMSSSMSXSMMMXMMAMMXMAMXAMXMAXXXASXXAMXSASXSASXSSMMMSMAASXSASMMMAMMMSSMXAAXXAMAASMMMXMAMAXAMAXSMMXMMSASMMMXSAA +SXMXXMAAMASMSMMMSAAAMASAMMMXAMASXMAXAAMXAXAASMSXSAMSSMMMSXSSSMAMMSMMXMAMAMXMAAXAXAAAMMMMMAXAAMASAAMAAMMMSSXSSMMAXMASXMMMSMMAAXMAXMSASXAAMMSS +MASMMMSXSXSAXXXXMMSSMAXAXSXMMSAMAMSMMMMXMMSMSAAAXAMAXAXAXAXAMMSMAAMMAMAMSMMMXMSMMMSXXMAXXASXSMASMSSMMSXAAXXAMXSXMAMXMAMAAAMXXMSXSMMMMXMXSXMX +XAMXSAMXAAMMXXAAXMAMMMSSMMMSAMAXAMXAXASAXAMAMMMSMXMMSSMSSMMAAXMMMSXSASAAAAMSMXMASXMXSSMSMXSAAMAXXAAXAAMMSSXMAXMMMXSMMAMSSXSMAAXXAXAXMAMSMAMM +MSXMMASAMXMAAMSMMMAMSAMXAAAMXSMMSSMXSASMMMMAMSAMXMSXMAAAAXSAMSMSAMMMXMMSSSMASMMASAMAXAMXMAMMMMSXMSMMMSASAMXMAMXAMXSASAXMMAAXMMSAMMSSSMSASAMA +XMASXMMMAMXMMXAAXMAXSXXSXMMSAMXAXAXAMMMXAAMAMMMMAMXASXSSSMSAXAAMASXSASMAAAXMSXMASAMXSAMXMMSXMAXMAMAMXAMMASXSASMXSASAMXSAMAMXMAXMXAMAMXXMMMXS +ASXMASAXSMMSMSSXMMMXMMMSXSASMSMSMMMXSAXSXSSMSAMSAMXXMAMAAASASMSMMMASASMSSMMXSAMXSAAMXMAXMXSASAMXASXMSXSXMAASAMAXMAXXMASAMMXMMXSXMXSAMSMSMSAX +MXASAMASXAAMMAAXSASAMXXSAMASASAMAASASMMMSMAAMAMSMMSXMAMAMXMXSMMXAMXMSMMAAXAXSASAXXMXAMMXMASAMXSMXSAAAMXMSMAMMMMMMSMMMXSMXSAAXMMAMXMAMMAAAMAS +SSMMXMXAMMMSMMSMSASXXSMMAMMMMMAMSMMASXXMAMMMMMMMMMAAXMASXXSASASAMXXMXMMMSMSASAMXSAXMASAAMASXSXMXAXMMMXAXXXMSASMSAXAXMAMXAXMSMXSAMAXMAMXMSMAM +XAMAMSSSXMAMAAXAMXMMMSASMMMSXMXMXAMSMAMMXXAXXAAXMASMMMAMMMMASAMXMMMSASAMXAXMMAMSAMXMAMXSMMSXMASMMXXXXMMSXSAMXXAMASXMMSSMMXMAMXMASASXSSSMMMAS +MXMAXAAMXMASXMMSMMAXAMXAAMXMASMXSAMMMSMMAMSSMSSSMXMASMAXSAMAMXMAXXAMMSASMXMXMMMXMASMASXMXXSASXMAMASXXAAXMASXMMMMMMMMAAAAAAMMSXSAMASAMXAAXSSS +MSSSMMSMXSXSAAAAMXMMMXMMMMAXXMMASAMXAAAMAXAAAAAAAXSMASXXSASAMSSXMMMSASAMMSXSASMXAMXSASAASMMMSAMSAASASMMXSAASAAXAAAXMMSSMSMSASMMXSAMMMSSMMMAM +MMAAMXXAMXAMMAMXMASASASAXSSMSAMASMSMSSSMMMSSMMSMMAMXMAMASXMXMAMMAAMMMMXMSAASAMAMSAXMSSMMMXAAXAMAMXSXSAMAMXXXMMXSSSXSAMXAAXMAMAMASAMXAAXMASAM +ASMMMXMAXMAMXXSXMASASAXXMXAASAMASAMAAAAXMAXAAAXMMMSAXAMMMSMXMASXMXMAMMMMMXMMAMAXMASMAXMSXSMSSSMAMXMASAMASXMSXSAMAMXASXMMMXSXSAMXXAMMMSSSMSAS +MMAXSXMXSSMSSXSASMMMMMMSMMMXMMMXMAMXMSMMMSSMMMMXAAMMXMXAAXMASASXASXMMASXMMSMXMMMAAMMASMXAXAAXAXAMXSASMSAXAMAASXMSMSSXMXXAAMASXSXSSMSXMAAASXM +XSMMMASAMAAAAAMAMAAXMAMXASXMAXSASMMSXMASAMAMSSSSMSXXAXXMSSMMMAMMXMAXMMXAAAMXSASMMMSAASAMXMMMSMSSSXMASAMXSSMMMMAAAAXXXSMMMSMAMAMXAASMAMSMMSAX +MMMXXAMXSMMMMMMSMMASXMMSXMAMAMXAMXAAASAMXXAMAAAXSAMSMSAMAMAMSSMSXMAMSSSSMMSASAMAASAMXXMAMXAXXXAAXMMAMAMAAXXXAMMSMMMMMAAXAXMXMAMMMMMXXMXMSXMS +AAMAMSSMMMMSXXXXAXASXSASMSMMXSMMMMASXMSMXMSMMSMMMXXAASXMAXAMXAASAXMASAAXMXMAMAMSMSMSSSXSASMAAMMSSSMSSXMMSSMSMXXAXAAAMMSMMXMAMMSMSMSSXMAXXAXX +XAMAXMAAXMASAMMSXMMSAMASAAXXAAAASXAXMAXXMAMAAMAMSMMMMMXSSSXSSMMMAMASXMXMSMMSSSMXASXAAXAMASMXMMAAXAAAAAXAAMXAMMSMSMSMSAMASASAMXAAAAMMMSSSSMMM +SSSSSXSMMMAMMAAAAXAMXMSMXMSMMSSMSMXSMAMMMMXMMSAMXXAXAMMMXAMXMAMXAMXMXAMMAAXAAAXMAMMXSMSMAMASXSXSSMMSSSMMMSSMSAXASMXAMAMAMXSXSSMMMSMXAMMAXAAX +AAAASAAMMMSSXSASXXMXMXXAXMXAAMXMXXMSMAMXAAMSASXSMSASASAMXMMXSAMSSSXSMSMSSSMMSMMMMSAMAAXMAMXMASXMXMMMAXXAXXMXMXSAMMMSMMMSMMXMAXSASAMMSSMAXSXS +SMMAMMMSAAXMAXAMAMXASAMMMMSSMSMXXMAXMSMXMXXMASASAMASXMXMASAAMXXSAMXXXAAAAAXAAAAAAAXAMMMASMXMXMMSAAAMMMSMMXMXAAMMMXAAXMAMASMMAMMXSASAAAMMMMSM +XXMXSXAXMMXSAMMMAXSAMAAMAMMAAAAXSXMMAMASXSMMAMAMSMAMAMSSMSAMMMMMMXMAXMMMXMMSSSMMSSMMSXSAMMAMASASXMXMXMAMMSSMSAMXAMMSXSAMSMAMSSSXMXMMSXMMAXMX +MXSASMMMSAAMXXXSXMMSSXMASXSAMMMMMAMSAMXMAAXSXMXMXMASMXXAMXAXXAAAMASMSSXSAMXXXMXXMXXXSAMASMASAMXXMSSSMSXSAAAMAAXMASMAAMXMMSSMAAAAXSMMAXMSMSSS +SAMXXAXAMMXMXAMXXXAAMMMMAMXAXMXAMXMMAMAMSMMXMMASASMSXMSAMSXMSSSMSASAAAAXXMXMASXXMAMXMAMXMXASXSMSMAAAAAAMMSMMSMMMAAMMMMMAMAXMMSMSMSAMAMXAAAAX +MASMSSMMSSMMSMSAMMMSSSSSSMSMMMSSSSXSAMXMMXMAAXAMXSXMAMSMMXAMMAAAMXMMMMMMXSASXMSAMSMXSMMXSMMSAMXAMMMMMMSMMAXMAAMSAMXMXAAXMAXSMMAAASAMAMMMMMSM +MASXAAXXAAAMAAAAMAXXAXAAXMAXAMXAXAASXSSXXASMSMMSMXMMSMMSMSSMMMMMSXSSXXMAMMAMAMSXMASAAAMMMSXSMMSMSXXXAMXXSXSSSXMMMMAMXMSXMAXXAMSMMXXMXMAXAAXA +MASMXSMMMSMMMMMMXXSMMMMMMSXSSSMXMMMXMAXASMMAAAAAMXXAAAXXMAMMAASASAAAXXASMMSMMXSXMAMSSMMSAXMXAASAMASAAMSAMXXXMAAXAXASASAMMSMSAMMXXXXMASMSMSSM +MASXAXAMAXAMXMMMMMMXAAXAAXMAMAMXXXMASAMMMAAMMASMMSMASMMMMSSMSXMASMMMMMXMXAMAXXMAAAMXXAAMASMMMMSAMAMSSMMAXMXASXMSSSXSMMASMAMMAMXAXSMMMAMAMXAX +SAMXXSAMASAMMMSAAXMASASMSXMMSMMMSMMAMAMXSXMXXXMXAASAAMSAXAAXXXMMMXAAAAAMMMSXMASXMMSASMMMMAAXAAXXMXMAXAMSAMMMAAMAXXMMXMSMMASXMMMMMSAAMASAMSAM +XAMAMMAMMMAMXASXSMXAXMSXXASAMAASAMMSMXMAXXMSXXAMMMSSMAXXMSSMSSSMMSSSSMXMAMAXSXMXAXMMMMSSSMXSMSMXMAMASXMXAXAMXAMASMXMAXMASXSAXSASASXMSMSMAMMM +SSSMMMSMSXSAMXMMXMMASAMASXMAMXMXASXAASMMSAASMMXMMAMAXMSSMAXAAXAXXXAAAXAASMMMMAXMMMMMMAAXAXAXAAXAMMSMXMASMSMSMSSXSAASMSSMMSMMMSAMASMAAAMAMXSX +AMAAMSMAMMMMSSMMAMMMMAMAMMSSMSMSMMMMXSAMXMXXXXAAMSSMMXAXSAMMMSMMAMSMMAMXMASXXMSXMAXAMXSSMMSSSMSSXXAMAXMMAMASAAXAXXXSXAAMSXSAAMAMMMASMSSSXMAS +MSSMMAMAMAXAAAAMXSASMXMASMAMAAAAXAXXAMAMXXMAXMXMXMAXSMMMSXSXXAXMMMAAXMXMSXMAAXMASMSMMAMAAAAXAAAAMSASXSMMXMAMMMMXMXXMMSMMAASMXXAMXAXXAAAAXSSX +XAMXXXXAMSMMSSXMMSASXXXXXMASMMSMSSSMXSAMMAAXSMSXMMMMAAXXXAMASXSAXSMSMXAAXSXSMMSAMXAAMSSSMMSMMMMSMMMMASAAAMXSAAMMMMMMMMAAMMMAMSMSSSSMMMMSAMXS +MMSMSSSMSAAMAXAMXMMMMMMMAMASAAXAAAMAMSMSXSSXAAAASAMXSMMMMSMXMASMXMXMAXMXAMMASAAAMSSSMAAASXMMSAAMMAAMXMASXSASXMSAMAAAMXXMSAMAMAAAAASXMXAMMSAX +AXMAAAAMSMSMSSSMSASAAAXAAMSSMMMMMSMAMMAMAMMXMMMXMASAMAAXAAMAMXMXAMSSSSXMAMSAMXXAMAAXMMSMMSXASMSSSXMMAXXMAAMMMXXAMMSMSAXMSASXMMSMMMMMMMXSXMAS +SMMMMSAMMAXAAAAAXASXSSMSXSAMXSAAAAMMXSAMAMSAMASMSMMMSSMSSSMMSASXSAAAMAASAMMASMSSMMSMXXMMAMMMMMMMAASXMMAMXMMSSMSSMMXMAXSASAMMXXAMXMASAMMMAMMM +MXSAMMXSMMMMMMMMMXMAXAMXMMMMMMMXSMMXAXASXMMASASAAMAAMAAXXMASMXMAMMMSMSMMAMSXSAAAXXAAMMAMSSXAAXAMMMMASXAMASAMXAAAMMAXAAMAMXAMMSASXMASASASASAS +SASMSXAMASAMAXAAMMMMSMMXMAAAAXXMMXSXASMMXSSMMMMXMSMMMMXMMMXMAAMSMXAMXMAXAXMAMMMSASXSXSAMAMMASXMSMMMAMSMMMMMXMMMSSSSMMSMXMMXSXSMMXMMSXMASASAS +MAMAMMMSASASMXSAMXAAAAAMSSSSSXSAAAMMMMAAAMMMASMXMMMSAMXMXMAMSMSAXMMSAMSSSSMAMAXMASAAASAMAMXMAMXAAAMXMAXAXAAAMAAAXMAAXAAAXXAMAXXAAMASAMAMAMAM +MAMAMAMMMSMMMMAMXMMMXSMAXMAAAASMMASAXSMMMSMSASAMXAASAMXMSSXXAXXMAXXMASXAAMMMXMSMXMMMMMMSSSSXSMSXMMMXSMSSMMSXSAMXSSSMMSSMMMAMAXMSMSASXMSMSMSM +SMSSSMSAMMMAXSSSSMXSXXXMAMMMMMMMSAXAMMAAAXXMASASMMMSAXAMMAMSXMAMSMSSMMMMMMAXASAMXXMMXSAAXXMAXASMSXXMAMAMAMXMAMMXAXAMXMMAXXSMMXXAAMMMAAMAMAAA +AAAXAXSAMAMMXMAAAXAXMAMSSMMMXMMMMXXSASXMMSAMXSXMAAXSXSSSMAMMMSMAAAMMMAXXASMSMXASMMSMAMMMMMAMMAMASAASAMASMMXMAMMXMSAMXSMXMAMAASXSSMMSMMMAMSMS +MMMSMMSXMSSMAMMMMMMSMMMXAAAXAAAASMXMASAAMXASAMXSSMXXMAXXXASAMAMSMMMXSAMMXMMAXSMMMAAMMSMSASAXMSMAMXMMASAMXAASASXAXAAMMSAAMAMMMSAAXXAAAXSMMMAM +MSAMXASAMXAMSMSAXAAAAAXSMMMSASMXSAAMASMMMXAMXSAMASXMXSXMMXSMSXXMMMSAMXSMAXSAMMAAMSSSXAAMMMSMSXMSSMMSAMXSMSXSAXMASMSMAXMXMXSXSMMMMMSSSMXSAMXM +XAAAMMXMMSXMXASASMXSSMMAAXXAXXXAMXMMXMMXSAMXMAXSAMXMMMAASMSAMMMAAXMASAAMAMMASXSXMMXMMMSMSAMXAXSAAAAMXSASMMAMAMXXAMXMXSMXSAMXMAMXSXMAMMAMMSAM +SSSMAMXSASASMMMXXXAXMMMSMMSMMSMAMAXXXAAAMAXSAXMMMMASAMXMSAXAXSSMMMSAMMAMXMXXAAMMMMAAMAMAMXSMMSMSSMMSAMMSAMXMXMMSSMXMASXAMASAMAMAXAMMMMSXXSXS +AAAXXXXMASMSAMMXSAMXAAAAAAXAAXMASXMASMMSSSMMMXMAAMAXASXXMMMSMXAASXMXSAMXMSMSMAMAASMSSMMMMSXASMAAMAAMXMASXMMXMXMAMAAMASMAXXXMXSMMSMMXAAASAMXM +MMMMSSMMMMXSAMSMSMXMSMXXMMMMMSSXSASXMMXMAXMASAXMSSSSSMMMMASXSXSMMAMXMMMAMAAAXASXMMAMXAAAMASMMMMMSSMSASMSAXMASAMAMMMMASXSASXSAXXXAMMXMMSAXMAS +XSXAAAXXMXAMAMSAXAAAXSSSSSMMSAXAMAMAAAAMMMSAMXSAAAAMMAAMSXSAMMMXXAMAXXXSSMSMSXSMSMAMSSMXSAMXASXMXMASASXMMSSSSXSAMASXMMMMMMAMASMSASAAMXMASXAA +AMMMSSMAXMMSSMMXMMMXMAXAAXASMSMMMSSSMMMXSAMAAAAMMMMMMMMXSAMXMAMASASXSXXMAMXXMXMAMSSMAAAXMASMXMASAMXMXMAXXAXAXMSAMMXAXXAXAMXMXMASMMMMSAMASMXM +MXSAMAXMXAMAXASXSXSXMMMMMMMMAMSXXAAMXMSAMASXMAXMAXAAXAXMSAMXMXSAXXAXAXSXXMSXSAMXMAXMMMMMSAMMMSMMMMXAMXSMMSMMMXSMMSSMMSSSSSXMMMMMMSAMXMMASAMS +SAMASAMMSMMMSMMAXAMAXXXAXMXMXMAMMMMMAXMASAMMMAMSMSMSSXSAMAMMXXMMSASMMMSAAAAASMSSMSSMSMSXMASAAAMASXMAXMAMAAAASXSMAAAAMAMAAXXAAAAAXSXMASMXMMAA +MAXMMMSAXAAAMMMSMMSSMMSSSMASASAXSXSXXMSAMMSMXAXAASAAAMMAMAXMMAAMAXXSAAMSMMMXMAMMAMXAAASXMASMSXSAXSAAASAMMMMMSAXMMSMMMXMSMMMSSSMSMMMAMXMAXMSM +XAMSAMXAMSMMSMAXAMAXAAAAAMASAXXMSASXAAXMXMAMMMSMSMMMSMXASXSMMASMMMAXXSMMMXMAMAMMXMASMSXAMAXMMXMMSSMMMSASXSSMMMMMXAMSXMAAAXXAMMXXMXXAMXMSXAXX +MMXSASMMMXAAAMXSSMAXMMSSMMMMMMAMMAMMMMMMASASAAXMAMAAXMSAXAAMAAMAXXAMXXMXMAXSSMSMAMXXXMXXMSSSMMSMAXAMASMMAMSAAXAXMASXASXSSMMAXXXMAMSASXAXMXMX +ASAMMAAASXMSSSMMMMSSSMXMXXSASMSMMXMXMXXSASASMAMSASMXSASASXXMMSSSMMAMSASXSXSAMMAMAXAAAXSXMAAAXSAMSSSMASAMMMMMMSMSSXMMMMAAXASAMSMXAMXSSMMSAXAM +SMASMMSMAAMAMXAMAMXAMSAMXMMASXMASMMSXAMMXMAMAXXMXSMXAMMAMXAXMXAXAXAMMAMAAXMAMSASMSSXSAMXMMSMMSASMAAMAMMSXSXMMAMAXAMXAMXMXXMAMSAMXSXXXAAXAMMA +XSAMXAXXSSMMMSMMMMMMMSXMASMAMASAMMAMAMMSSMMMXMMSAMXSMXMSMSMMSMMMXMAMMSMMMMSAMMASAMXMMMMSMAMXASMMMSMMSSXSASXXSAMASMSSMMASXXXXMMSMAXMAXMMSMSXS +AMMMMMSAMXAAAAMMMSAMXMASMSMSSMMMMMAMXXAAXAXMASAMMXAMXAAMAMXAXAMAMSAMAXAAAMMAMMAMMAAXXAAMMSSMXSAAXMXMXMAMAMAXSAMXXXAMXSASMMSAMAAMXSMSMMMAAXMM +XMASMAMMMSSMMMSAAMSXXAMXXMAMAAMASXMMMMSXSSMXXMSSXMXSSXSMMMMMSSMSASASASXMXMSSMMSMXMMXSMMSAMAMXSXMMSAMXMAMAMSMMAMAMMMSMMAXAMXAMSSMMMAAAASMSMAA +MSAMXSAMAXXAMAMMXMMSAMXMAMASMMMAAAAAXAMXMASAMXAXMASXXSXMASAMAXAXMSAMXSMXXMAMAAXMMMXMAMXMXSAMXMAMAXXXAXMMSXXASMMXSAAAXMSMXMSXMXMAAMMMSMXAMXXM +MMSSXMAMMSSSMXSAXSAMXSAMASXSMAMMSSMSMSSXSAMXMMMSXSXMMMSSXSMSASXMXMXMMMXMAMASMMSSMASMSMSAASXMASAMXSMMSXSAMXMMAMAAXMXSMXAAMMAAXAMSXMAMAXSMMSMS +SAAMMSAMAXAXSXMXXMASASAMAMAXXAMMMMAAXXAAMAMAASMMMMAMAAXXXMASAMXMXMMMAMAMXSASAAAAMSMAXAAMXSMSXSASXAAAAAMXMAXXAXMMMSAMXAMXAMSMMMXAXMXSAXMXMAAM +MMXSXSAMXMMMMMMMMSMMMSAMSSMSXSMSAMSMSMMMMASAMXAMAMXMAMMXXMAMAXXXAAAXAXXMAMMSMMSXMAMMMMMSAMAMASAMXSMMSSXMMSSSSMSAAAASAMXASXXAAMAMMMAMMMMAMMSM +SAXSXMXSAMAAAAMAAAAMXXAMXXXSMMAMXMAMXXMASXSAMXXMAXMXMSMXXMXSAMSSMSXSASMASMMXXXMXSSSXAXAXAXSMMMMSMMMXAAXMAMXAMAMMSSMMMMSSMMXMMSASAMAMSASXSMXX +MXSXAMAMMSSSSXSMSSSMXSSMSMXSAMAMAMAMSMMXXXMXMASMSMSAAAMMXSAMASXAAMMMMAMXMAMASMMMXAMAMMMSMMXXXXAAAASMSSSMASMMMSMAMMMXAAXAAAMSASAMXSAMMASAAXAX +MMSXMMASXMMAMMAAAXAMAXAAAXAXXMAXMSMMMASXMMSMMMSAAASMMMASAMASXXXSMXXMSSMASAMAXAASXMMSAAMAMAMSMMSXSMSAMAMMAMXMAXMSSMXMMXSMMMSMAMAMMMMSSMMXMMSX +XAXAXXXSAAMAMXXMXSMMSSMMMMSSSSSSXAMASAMASAAASXMXMMMXASXMASAMXMXXAMSXMASXXAMXSSMSAXAAMXSAMMAAAAXXXMMAMAMMMMAMMXAMAMSMSXXAAXXMXMAMAAAXAAAXXXMM +MSSXMASXXMMASXSAMXMAMMAAXXXAXAXXXMSMMASXMMMXMAAMXASMMMAMAXAXXMAMXMMASXMMXSAMXMAXMMMXXMSMSMSSMMSXMAMXMASAXSASMMMMMMSAMASXMMSSSMSSMXMASMMSSMSA +AXAAXXXMAXSASMAMSAMXSSSMMMMXMXMMAMAXMAMAAAMSMMMMSMSMMSAMSMMSMMAXAAMAMAMAAMAXSMXMXAXASMSAXAXXXXMAMSSMSXMAXXXAMXMASAMAMAMAAAXAAAAMXAMAXAXXMAXS +SMSAMXMASMMMMXAMMXXAMMMAAASMMSASMSXSMMMSMMXAAAXXAAXAASXMMAAAASASMXMMMAMMASMMMXMASXXXMAMMMSAMMMSMMAAXSAXSASXSAMXXMMSMMXSSMSMSMMMSSSSMSSMMMSMX +MMAMXSMAMAAXXMXSASMMSAXSMSAAASAMAXAMXMMXXMMSSMXSMXMMMSXMXMMSXMMSAASMSXSMAAMAXMAXXXASMSMXMMAAAAAXMMMMMXMAAAAXXSMXXMAMXMMXAXAXAMXXAMAMXAXXAMMM +MXMSSSXAMSMMAMMSAMXXMXXMMMMMMMAMAMXMXSAMASAXAMXXMSXSAMAXSAAMASAMXMAAXAXMMSSMMMMXMMXMAXAMXSSMMSMSMSAXXASMSMAMAAXMMSMSAASMAMSMASAMXXXMSMXMMSAA +SAMXAMSSXMSMAXAMMMSXMSXSAXAAXSSMMXSAMMAMAMXSMMAAAAXMAXMMAMXSXMSAMXMAMXMXAAAAAXSAMAAMSMSSMMAMMAAAAAAMSMMXMMAMSMAAAMXSMSXAAXASAMMSSXMAXXMXAMAX +SASMXMAXAASMMSSMSAMAMAAAMXSMMAAAAAMAMSSMMSAMXSSXMMXSMMSSMMMMXXXMASXSMAMMMSMMMXMASXXXAMXAXMAMSMSMSMSMSAMAXSXMASAMXXASXMMSMSMSXMMAXAMAXMAMSSSX +SAMXAMASXMMAMXMAMMXAMMMMXAMXMSSMMXSSMAAAAMASXMMSAXXXMAAAXXAXXAMMMMMXSAXAAMXSMSSMMMSASXMXMXMXMXAXXXAASMMMXMAMXAMXSAMSAXAAMMAMXSMSSXMASASXXAXM +MMMSMXAAAMSAMMMAMSMSSSMMMMSAXAMXMXSAMSSMMSSMMAASXXAAMMSSMSXSMXMXAAMMSXSXSMASAXXAAASAMXMSSXMAMXMASMMMMXXMAXXMMXSAXAMSMMSSMMAMXAAAAAXAXMMXMMMA +AMAMAMSSMMAMMXSSXSAXAMXAAAXMMASMMMSAMAAAAXAASMMSSMSSMAXAAXAXXASMSMSASMSAAMAMMMSSMMXAXXMAMMSMSAMAMASXMAXSSMMSMAMXSMMXXAXMASMSMMMMXSMSSMMAMMAX +XMAMXXMAAXXXMAMMAMXMASXMSSSMSASAAASXMSSMMSMMMMMXMXAMMXSMXMMMMXSAAXMXXAMXMMXXAMAMXXMSMSMAXMAASAMAXSMMMSXMAASXMASMMAASASMSMMAAAXASXMAMAASXSSMS +MSSMMASMMMMMMAXMMMSXXMAMAAAAMASMSMSMMXAMAXXAXMSAMMMSSMMMAAAXXXMXMMSMMSMSMMAMMMMSSXMMAASMMMMXSXMSXXMSAMAMSMMASXSAMXMSAMAAMSSMSMAMXSSMSMMAAAMX +XAAASMMXAAASMSSMAAMAMSSMMSMMMXMAMAMAXXAMMSSXSAMASAAAMAASXSMSSMMAXAAAMXAAAMSSMAAAMAMMXMSXMSXASMMMAMAMASMMMASXMASMMXXMAMSXMAAXXMXSMXAAXXXMSMMM +MMSMMAMSMSMSAXAXMSSMMAXAXXMXSAMAMAMSAXMMMXAMXASXMMMSSSMSXXMAAMSMMSSSMMMMMMAAMMMMXAMAMSMMMSMMMAAMMMAMASXMMAMASXSAXXASXMXMMSSMXMXMAXMMMXXXMAXX +MAXAXXMAAMXSMSMMMXXMXXXMMMSASASXSMXMMASAMXMASMMMMAMXXMASMSMXSXXXAXXAAMXAMXSMMXAXSMSASAAAXXSMXSMMAMXSXMAXMAMXMASAASMMMAMXAAMMSSMMMMAAXXXASMMS +MSSMMSMMSMAMMAAAXXXMASASXMMASAMASMXSXMSASASXXMMASAMXAMXMAAXSAXMMSMMSMMSSSMXSASXXAASXMMSMSSXSAAMSSSMSMSXMMMSMSXMMMSAASXSMMMSAAAAAXSSMSSMMMAAM +XMAXAAASAMMSMSXMMMASASAMXAMAMAMAMXXMAMMMMAMMAMXMXMSSMMAMSMSXAAMMASXMMAXAAAMSXAXSMXMASAXXXXAMSSMAMAAMASMSMAAAXXAXASAMAAAMSSMMSSMMXMAMAXAASMMX +XSAMXSMSASAAAMSMXSAMXSXMXSMSSSMXXAMSXMASMAMSSMSXSAMXAAAMAXXMMMXSAXMAMXSSMMMSXMASXAMXAASMMMMMMXMMSMMMMMAAMMMSMMXMASMSMAMXMASAXAAXAXAMXSMXSXSX +MMMSAMASXMMSXSAMXMASXMMSAXXMAXAMMMAAASASMSMMXAAAAXXSMSMSMSMAMSAMXXSAMXMXAMAXAXMMMXMAMSMAAAAAXMXMXXXAMMSMSMMXMMAMXMAXXXMASMMMSSMMMSXSASXMMAXS +MAASASAMAMAMMSAMXXAMXAAMASAMMMMMAMXSMMASMMAMMMMSMMAXAAAAAAMAMMASAXMASXMASMMSASASMSMAXAXSMXXMMXMMMMSMSAMMAASXMSMXAMSMMMSASXAMXMASXAXMAMASMMMX +SMMSMMAXXMAXAMMXSMMSSMMSXXAMXASXMSAXMSXSASMMAXXMASXMSMSMSMSSMSAMXSSMMAXAMXXAASAMAAXAMSXMASXSSMSMAAAXMASMSSMAAXAASXMAMAMASMXXXMAXSSXXAMAMAXAA +ASAMXSXMMSMSMAMAMXAAAXXXXSXMSXSAAMAMAMASAMXSSSXSAMMXMAAXAMXMMMMSMXAASXMMMMSMMMXMSMMXAMAMAMAASAAMSSMMMAMXMAXMMMMMMASXMAMAMMSXXMSXXMAMSSXSMMSA +AMMXMASAAAXAXAMMSSMSSMMSMSMASAMMMMAMXMAMAMMAMXAMAMXAMSMXMMXMXAMAMXMMMXAMAAXXXAXAAAXSXMAMAMMMMSMXMAMSSMMASMMMXAXASXMXSASAAXAMXAXSMXSAMXASXMAM +SXMMSXAMSSSSSXSAMAAAMXAAAMMAMAMMSSSSSMMSAMMSAMXSAMSAXMAMXMAMXMSASXMSSMSSMSMSXMMSMAMSASMSSSMMMMXAMAMMAMSASAAXMXMAXAAAXASMSMMAASMXMAXAAMAMAXMM +XAMAMXMAXXMAMMMASMMMSSSMSMMXSXMMMAAMXAASAMAMXMXSAMMMAMXAAMASAAMASAAAAAAAAAXSASMAMAAXAMAAAAXMASMSSSMMAMMXSMMXAAAMSMMAMXMAMAXSSMXAMXSASMAXSMMX +SMMASMXMXXMMMASAMXSAAAXAMXMXSXSAMMMMSMMSXMASAAMSXMMSAMMSXSASMSMASMMMXSMMMMMSAMSXMXSMSMMMSSMMASAXAAASMMSXMAXMSXMXAXSXSMMXMXMMAMSXSAMMXMSAMASM +AXMAXAAMSMSXSASXSXAMMSMMMASMSASXMSAXXMASASASMSAMAMAMASXMXMAXMXMASXASAXMSXMAMXMAXMSXMMAMAMAMAXMXMMMMMSAMXSMMAXXSMMMAAAAXMASMSAMMAMXMSAAXMSXMA +MSMSXXAMAAMAMASAMMMMAXAAXXSAMXMAMSASMXASAMASAXMXAMMXXMXMMMMSSMMXXMASMSAAAMSMXMAXSAAMXSMMXAMAMXMXSAXXMXMAAXAMSAMASXMXMSMMAXASXMMASMAMMSSXMASM +XXAMASXSMXMAMMMMMAXMSSMMSSMXMMXMXXXMMMXSMMMMMMSSMSXAXSAMXAXXAASXSMAMXMMMSMMAXAMXXAXMAXAXSAMSAMXAXXSXMASXMASXMAMAMAXSSMXASMMMAXSAMXXXSMMAXAMA +SMAMAMAAXASXSAAASMSMMAASXMAAXAAMMMMSXSMXXAXAXMXAMSMMSAAMSMSSSMMAXMAMXMMXXAMMMMMMMSMMXSAMSXMASAMMSMAMAMXSMXXAMAMAXXMMAAMMXAAMAMMASXXXMAMSMXSM +AAAMAMMMMMXAMMXMSXMASXMSAMSMSSMSAAXAAXMASMMSXXSAMXAMAXMMMAMAXMMMMSMSSMSXMAMAAXXAAAAXAMAMXASAMMMMAXXSXMAAMAMASMSMSMMSMMMXSMMMSSSXMXMMMSMAXMAX +SSMSXXAAAXMMMSSMMXSAMXAXXMAMAMASXSMMSMMXMMMXMMSMMMXMAXXXMAMXMMXMAMMAAMAASXMSMSAMSMMMXMASMXMASASMMMASAMXAMXSAMMAXAMXXAXXXMMAXMXMXAMXSAMXAMMXM +MAMXASMMMXMMAAAMAMMASMMMSSMMAMMMXXAMXAXAXAASAAXAXAXMMSSMMMSMAXAMXSMSSMSXMAXAMXAMAXMSMSASAMXAMXMAASMSXMSXMXMASXSSMSSSMMXMASMMSAMMXMAXASMSSSMM +SAMMXMAASAMXMSXMAMSAMXAAXASMMMXMAXASMSMAMMSSMMXXMMAXAAMAAAAAMSMSXAAAMMXSAMXAXXAMXSMAAMAXMAMXSAMMMMAXAMXAAXSSMAXAXAAAXAXMAMXAMAMASMXMAMAAAMAX +SAMXXXMASAXMXXASAXXMASMMSMMMSSSMMSAMAMAXMSAMASXMMSSMMSSSMMSSXAAMXMMMSXSAMXSSMSSMAXMMMMXMXMSASXXMAAMSAMMSAMXXMSSMMSMMMSXMASMSSSMAMAXMMMMMSMMM +XAXSAMXMSXMSASAMXSAMAXAAXXAAMXAAAMXMAMXXXXASAMXAXAAAMAMXSXAXXMMXAMXMAMXMAMXXAAAMXSSXMXAMAXMXSAXSAMXMAXAXASMSAMXXAXASXMAMXMAXXASXMSAMXAAAAAXA +MSMMASXMSMXMASAMXXAMXMMMXSMSSXMMXMMSASMMMSXMAXMSMSSMMMSAMMMMXSASXSSMSMSXMXXMMMSAMXXAMSASMXMXMXMAAMASMMXSMAAMASAMSSMSASMMSMMMMMAXAXASASMMXSXX +MXAXAMAMMSAMXMASXSSMMSASAXMAMXSXMMAMAMAAAXMXSXAAAXAXAAMASMXSXMASAAAAAAMXXMMXAAAAMASMMMASAASXMMASMMMAAMXMMAXMASAMXXASAMMAAAAAAXMMAMAMAAXXSMMX +SMXMXMXAASMSAMXSXSAAXSAMXSMSMXSASMASASXMXSXAMMSMSMMSMXSAMAASAMXMMMMSMSMMAMXAMMSAMASXXXAMXMSAMAMMXXMXAMXMMSSMXSAMMMMMAXMXSSMMXXXMASAMXMAXAAXX +AASXMAMXMSASMMAXMXMMMMMMMMAAAAMAMMAXXSXMSMMASAMAAAXAAXMMSMAMXSAAAXXMXMMSASXSSXMAMSSXXMASAMSAMSMSMMXSMSXSAAAXAMAAXAXMAMSMMMMSMMXSASMXMXMSMSMX +MSMAASMSMMAMAMASAAXXXAAAMMSMSXMMMMMXMSAMAASAMMSSSSMMSMMAXXAMXSXSMSAMAXXSMMMAMXXAMXMXMSAXXMXAMMAAAMMAMXAMMSSMSSXMSXXMSMMAMMAAAAXMASXXAAXAMXAX +XAMXMMAXSMXSMMXAXMSMSMSXSXAAAASAMXMAMXASXMMASAAMAAXAMAMSSSMSAMXXASMMASAMXMMSMMSMSXMAMMSSSSSMMMSMSMAAXMXMXXMAXAXXXXXXMASMMMSSXMXMASMSSSSMMMSX +MMAXMMXMXSAMXMXMXMAAMAMASMMSMXSASASMSMMMMXSXMMSSSXMXSSMMAMXMMSASMMSMAMASXASAMAAAAXSAMSAXMAXAAAXXMMSMMSSMMSSSMSMSASMXSAMASXAXAMXMXMAXAXAAAAMM +AXSAMAXMMMMSAMMXASMMSAMAMAXAMMSAMASAAXSSSMXAMXMAMMSMAAXMXMXXXMMSAMXMSSXMMMSASMMSSXSXSAMXMAMMMMMXXAAAXXAAAAAAAXAMXMAASASAMMAXMXMASMSMMMSMMMSA +SMAASXSMAAASMMAMXSAAMAMMMXMMXAMXMMMXMASAAXSSMSXAAASASMMSSSMMSAMXMMXXXXAMAXSAMXMAMAMMSMXXMSXSASAAMSSSMSSMMMSMMMSMXMMMSXMAMMMMSAXAXMXMAAXAMAMX +XAMXMAAASXXSASMSAMMMSXSMMXMXMMMMSAMXXSXSMMSAAMXMMASAMXXAAAXXAAASMSXXMSMMSMMMSMMMSXMASXXXMAAMAMMSMAAAMAMAMMMAXXAXSXMMMMSSXXMASASXSMASMSSXMAMX +MSSMMSMMMMXSAMAMAXAAAASAAASASMSASASMMMAMXXXMMMXMMXMAMAMMSMMSSSMSAMXXMAMAXMAXMAXMXMMXSMSSMMSMAMAXMMSMMASMMAMSMSMSXMSAAMAMMSSMMXMAAMAXMMMMSMSM +AXAAAMASXXAMAMXMXAMSMXMMSXSASAAXSXXAAXAMSAMXAAAXAASMMAAXMAXAAAAMMMXMMAMASMSMSAMSAMXAMXAMAAXMXMASXAXXSMSASASAAAMXXASMSMMSAAAXSAMSMMSXSAAAAAAA +XSSMMSAMXMXSXMASXXXXXMAXXMMXMMMAXMSSMSASXSASXSSSSMXSSSSMSSMMSMMMAXMASXSMSAMXMXMSAXMASMSSMMSAMXXXMSMMAMXMSSSMSMSMXXMSXMXMMSSMSMMMSAMXSSSSMSMS diff --git a/inputs/input4_test b/inputs/input4_test new file mode 100644 index 0000000..c41c5ea --- /dev/null +++ b/inputs/input4_test @@ -0,0 +1,10 @@ +MMMSXXMASM +MSAMXMSMSA +AMXSXMAAMM +MSAMASMSMX +XMASAMXAMM +XXAMMXXAMA +SMSMSASXSS +SAXAMASAAA +MAMMMXMMMM +MXMXAXMASX \ No newline at end of file