From 7463f0f9db4dbfe76c1999ed0d8c1cd4d38571a7 Mon Sep 17 00:00:00 2001 From: kleph Date: Thu, 5 Dec 2024 18:11:10 +0100 Subject: [PATCH] 2024 - Day 4 part 1 --- 2024/4/4.py | 60 +++++++++++++++++ 2024/4/input.txt | 140 +++++++++++++++++++++++++++++++++++++++ 2024/4/input_example.txt | 10 +++ 3 files changed, 210 insertions(+) create mode 100644 2024/4/4.py create mode 100644 2024/4/input.txt create mode 100644 2024/4/input_example.txt diff --git a/2024/4/4.py b/2024/4/4.py new file mode 100644 index 0000000..03d35fd --- /dev/null +++ b/2024/4/4.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python +# 2024 - Advent Of Code 4 + +# file = 'input_example.txt' +file = 'input.txt' + +# pylint: disable=consider-using-with +input_lines = [line.strip('\n') for line in open(file, encoding="utf-8")] + +MAX_X = len(input_lines[0]) +MAX_Y = len(input_lines) + +# for line in input_lines: +# print(f'{line}') + +def find_xmas(grid, start_pos, vector): + # vector = (x, y) + x = start_pos[0] + y = start_pos[1] + xmas = ['X', 'M', 'A', 'S'] + for i, _ in enumerate(xmas): + if grid[y][x] == xmas[i]: + if i == 3: + return True + x += vector[0] + if x < 0 or x > MAX_X-1: + return False + + y += vector[1] + if y < 0 or y > MAX_Y-1: + return False + else: + return False + + return True + +accum = 0 +for pos_y in range(0, MAX_Y): + for pos_x in range(0, MAX_X): + if find_xmas(input_lines, (pos_x, pos_y), (1, 0)): + accum += 1 + if find_xmas(input_lines, (pos_x, pos_y), (-1, 0)): + accum += 1 + + if find_xmas(input_lines, (pos_x, pos_y), (0, 1)): + accum += 1 + if find_xmas(input_lines, (pos_x, pos_y), (0, -1)): + accum += 1 + + if find_xmas(input_lines, (pos_x, pos_y), (1, 1)): + accum += 1 + if find_xmas(input_lines, (pos_x, pos_y), (-1, -1)): + accum += 1 + + if find_xmas(input_lines, (pos_x, pos_y), (1, -1)): + accum += 1 + if find_xmas(input_lines, (pos_x, pos_y), (-1, 1)): + accum += 1 + +print(f'{accum=}') diff --git a/2024/4/input.txt b/2024/4/input.txt new file mode 100644 index 0000000..6f19ac7 --- /dev/null +++ b/2024/4/input.txt @@ -0,0 +1,140 @@ +XXAMXSSMSSXMAXMSXXMAMMMXXXXSAMXMSMSMXSAMXMSMSXSXSSMSMXXSXSXSXSAXXMASASMSMXAASXXMAXXXXXXMXXAMSAMXSMSMMSXXMASMMSMMMMMMXMAXSXMMSXXAMXXXMMMMSAMX +SSMMXMAAAXMMSSMMMMMAAMSMAAAMXMAXMAAAMSAMXXAASAMAXAASXMASXMASAMAMSSMXASAAXSAMXMAXMMSSMMMSMSMAAAAAXMXAAXXXXAXMASAAAAAAAXSXMAXAAAXMSAMXMAMXMXAM +XAAMMSMMMSMAAAXMAXMASMAXSAMXASASMSMSMSAMXSMXMMMAMMMMAMXMASAMAMAMMAMMMMMMMAXXASMMAAAAAAAAAAXMSMMMSMAMMSMMMXSMASXSSSSSSSMASMMMSSXXAMAMSASXMSSS +SSMMAAMAAMMMMSMSXSAAXXMMXMAXMXMMAMAMMMMXXASXAMSMSMXSXMMSAMASXMAMSAMXSAXMAMMMXAAXMMSXXMXASXXXXMAMAXXAAAAAAAXMXSAXAMAMXAMAMAAXMAMXAMAXMASXAAAS +XMASXSSSSXAMSMAMASMXSMXMASMSSSMMAMAMMMMXMAMXMMAAAAMMAXAMMXAMXXSAMXMAMMSXMXASMSSXSXXMMSAXAMXMMSMSMMSMSSSMMSSMMMXMMMSSSMMMSMSXMAXSXMXSMAMMMMSM +ASXMXXAXXXMSAMSMASXMMXAXXMAAAAAMSSSMAAMSMAMASXMSMSASAMXSASAMXMMMSMMASMSASMMSAXXMMAXAASXMAAAMAMXAAMSXXAAXXXAMSXMXXAAXAASXAAXXMAMMSAMXMAXASMMM +XMMSSMMMSXXSASXMASAMAASMMMMMSMMMMAMSXMXAXAMMSAAXAXMAMSAMMAXXAXAMAMSASMSAMMSMXMAAMSMMMMXAAXMSSSSMSMSMMMMSXSAMAASAMXXXXMMSMSMMMMXMAXAXSMSMXAAA +SXASAAXAMMMXXMXMAMMMMMXAMXXXMMXSMAMAMSMMMSMXSMMMMMSMSMXSMMMSXXXXAMMAXAMAMSAAXSXSAXASXMSSXSXAAXAAMAXAAAXSASAMXXMASMMXAAAXXAAAXMASXMMMSXAASMMM +AMSSMMMXXAAMMXXMASXMXXSAMSSMSSXASMSSMSASAXMMXAAXXAMXAMXXAXAMXMSSMSMSMSMSXMMMMXAAASXMAAAAASMMSMMMMAMSSSSMAMAMAXMXMAASMMMSSSSMMSAXAAXAXXAMXAAA +MSMSXXAASMSMMAMMAMAXAAMAMAAAAMMAMXMAASAMASXMASMXMASMMSASMMSXAXMASAAAAXXAXSXMSMXMXMASMMMMMMAXXXXAMAMMAMXMMMMMASXMMMMMAAAAMAMXMMASMXMSSMSXSSMM +XAAMXMAMAAAASASMMSAMXSSSMMMMASAMXSSMMMAMAMMSMAMXMAXMXMAAXAMXSXSSSXSMSMSMAAMXAAMXMSASMXAXXXXMAMMXSXSXSAMXMASMAMAAMMMMXMMSMMMXXMMMMAAAAXAAMMXS +SMSMAASMSSSMSASAMAMXAMXXAXXSAMXSAAXAASAMXMAXXAMSMSMAXMSMMAXAMMSAMAXXAAAXSMMMMXMAAMAXXXMXSMMAMASAXAMXMASXSMSMMSXMMASXXMXMAMMSMSMXSXMASMMSMAAM +XMAXAXAMXAAAMAMMMXXMASMSXMMAXXAMXSSSMSMSSMASMSSXAXAMXMAXXAMSXMXAMXMSMSMMMXMASASASMSMSMAASAMMSASXSSMMSAMMAMXAMSAMSXMAMSAMXSAAAAAMAAXXAXXAMMSS +MSMSXSSMMSMMMMMXAXSSXMASMMSSMMXXMAAAAXAAXMAXAXAMXMSSXSASMXSAAMSSMSAAMAMXMASASASXXAAASMSMSAMMMASAMMAXMASMSMMSMMAMMAXAXSXMMAXMSMSASMMSMMSASAAM +XAASAMXAAXXXMAXMMSXAAXAXAAAAASASAMSMMMMMSXMMSMMXAAXXXMASMXMXSMAAASMMMMXASAMXSMMMMXMSMAMMXAMXMMMMMMSMMASAAXAAASXMSSMMMMAMAMXXXXXXMXAXAAXAMMSS +SMSMMMSMMSXSMMXAMMXMASMSMMSSMMMAAXAMAAXASMSAAAXSSSSMMSAMXMAAMMSMXMASASMMSASAMASXSXSXMMMSSXMASAMASXMASAMMMMSSMMAMXMAXMMSMSXAMMMMAMMSSMMSSXAAX +AXAXXXXAXMASASMSMSSXMAXAXAAAXAXXXMMSXXXXMAMAMMMXAAAMMAXMSAMSSMXXXSXMASAXMAMMSMSAMXMXXMAMAMSSSXXAMAMXMASAMAAXAXSMAMSSSMAXMAXXSAAASAMAAXMXMMSS +MMMSSSSSMMXMASAMXAXMMSXMMMXSSMMSAXXMXSMMMSMSSSXSMXMMMXXMXSMAAMXMMMMMXMMMMMMAAAMMMAMXSMSSMASAMXMSSMMXASAMMMSSSMMSMSAAASMMXSXASMSXMASMSMSXMAXM +XAXXAAAMXXXMAMAMSSXSMMASASMXAAASMMSMAXMASAAAAAAAAASAMASXXMMSMMAMXASAXXXXXSMSMSSMMASAAMAMXSMAMMXMAMMMXXMXAMXAAAMAMMMSMMXMAMMXMAMASAMXMAXMMXSX +SSSMMMMMMAXXXSXMXAMSASAMAMASMMXSXAXMSMXSXSXMSMMMMMSASMMMAXAMXMXSAAMAXSMSAXAXSAMXMAMMSMMAMXXAMAMXMAMAMXXSMSMSMSMAMMAMXSAMMSMSMAMMMXMAMAMMSAMX +XMAASXXAAMSMMMMSMMMSAMAMAMMXASAMXSMMMMMMXMXXAAAXXAXAMAASXMXSAMASXSMMMXAAMMMMMMSSMXSMAAXSMSSSSXSAMMMSMMMAAAAMXXMSMMSSMSASAAMXMASXMAMXSAXAAASM +MSSMAASXSMAAAMAXAXAMXMASASXSXMAXMAXAAAAMAMSSSSMSMSSSXXMMMAXXXMASAMAXMMSMSAXAXMAMXAXXXMMXAAAXAASMSMAAAMAMMMSMXXXXAAAAAMMMXSSXSASASMSXMMMSMXMX +AAAXMXMAAXSSMSAXSMMSSXMMAMAAAXSMMSSSSSSMAMAAMXAAAMMMSSSMMSMSMMXSMSSMMAMXSMSMSMAXSSSMXSAMMMSMMMMAAMSSSMASAMAAXMMSMMSSMMXASMMMMXSXMASMAAAAMSMS +SSMMXXMSMMXMAMMMMAAAXASMSMSXMMASXAAXAMMMSSMSMMSMXMAAAXAAAXAXAAAXXAMAMMSAMASAMXSMMAAAAMMXSAMAMAMSMMMAMMAXAMAMSAAAAMAAASMXSMAAMAMAMXSSSMMSAAAA +XAXASAMASAAMXMMAXMMSSXMAXAXAMSXMMMSMSMAAXMAAXXMXMXMMSSSMMMMMSMSSMSSSMAMAMXMXMAXAMXMMMSMASAMXMXXAMAMAMMMXMMSXMMSSMMMSXMASMXSSSXMAMXMXMAMMMXMM +SSMSMMMAMMXSXSMMSASAMXMXMAMXMSAMXXXAXMMMSMSMSMSASAAMAAAXSAMAAAAXMAAAMXSAMASMMXSAMMSSXXMASXMSXMMMSASXSMSAAMXAXMMMMAXXAXSMMMMMAMSMSAMMAAXMMSMX +XMMMSXMSMSXSASAAXMMSMSMAMSXMASAMSMMMMAMSMMAAXASASMSMMSMMSXSXMMMMMMSMMAMXMASASASAMAAMMMMMSMMMASAMSAMXMASMSMMMMSAMSMMMMSMSAAAMAMAAXAXASXSAAAXX +MXAMXXXXAXAMAMMMSMAAXAAXSAAXASXMAAAMSMMAAMMMMMMXMAMAAAMXSAMMXAMXSXXXMXXAXASAMASMMMSXMAXXXAASAMXXXSSXMMMAXXMSAMMMAAAAMAASMSSSSSSSSMMMMASMSMSM +ASASXMSMMMMMAMAAAMSSSSSMMXSMASASXSMMAXSSXMAMXSASMMMSSXSAMAMASMSXMASMMMSMSMMAMXMAASXMSMSMSSMMXXXAAXMASMMMMAXMMMMSXSMSMMXMAMXAAAXMAXAXMAMXMXMA +MASMAAAAXAAMAXSSMMAAMXAXXAXMMMXAMMMMMMAMXSXSAMXSAAAAXXMASAMXSMAAMAMAAMAAXMASXAMMMSMXAAAXAMXXSMSMSMSAMAASMSMSSSXSAMAXXSAMAMMMMMMSMSMSMXSASAMS +XMAMMSSSMMSSSMMAXMASMMSMMXSAAMMSAMSASXASXMMMXMAMXMSSMXMAAXSXMMSSMAMSXSMMSMMXSMSSMXMSMSMSMSMXMAXXAAMMMSMMAAAAXSAMAMAMASASAMXXMMAMXAAMAMMMXAMM +MXAXMXMXMMAMXASAMXMAMAXXMAXXMMAMMASASMSMMXSASMXSAMXMAMSXMMSAMXAMMAXMAXXAAAMAXXAAXXMMAAMAMAXAMSMMMSMMMXAMSMMMAMMMSMMMXMAMXMMSAMAXMMMMAMXMSMMM +SMSMMAMASMMMSMMXAXSAMXSMSMSSSMSSSMMASXMASAMASAASXMAMMMASXASAMMASMSAXMASMXSMMMMSSMSAMMMSASXSASAAAAMASAMAMXAAXXAMAMASXSMSMXMAAMSSXSAMSXMXMAXSA +XXXAXAMAMASAMASXSMMXSAMAXAAAAAAAXXSAMASXMXSAMMMSASXSASMXMMSXMXXXAXMXMMXAAMASXAAAAAMMAASMSMAMXXXMXSAMXSMSSXMSMXMASXMAMAMMXMASXMXXSAMXAMXSMSAA +MSSSMAMXSXMASAMXAAXAXAMMMMMSMMMXMXMAMXMXXMXMXXXSAMASAMXXMAMAMXMMMMXXMMMMMXAMMXSMMMXSMXMAMAAMMSSMXMASXSAAAXSAMXSASXMAMAMMASAMXAMMSAMSSMMXXAMM +XMAMSAMXAXSAMXXSSMMASXMSSSXXMXMASMSMMAMSMMASMMMMXMMMMMMAMASAMASAXMAMAAMXSMAXAAMXSXASMMMXMMASAASAMXSMAMMMMMSAMAMASXSASXMSASXMMXMASAMXXMAXAMXS +AMAMSMSSXMMMSSXAAXXXXAXAAXASMSMAMAAXSXMAAMASAAXMXXSASASASASMSASMSXASXXMASXMMMXSAAMASAASMSSXMMXXXAXXMMMXAXASMMAMXMASXMMXMAXAXSXMXSXMXSSSSXXAM +ASXMXXMMXMASAXMSMMSMSMMMSMMMAXMASMMXMASMSMASXMMSAAXASAMASASAMXMAMMMXXAMXSASMMAMAMMXMXMSAMXMSMMSSSSMMAMSMMAMASXXXSXMMSSXMSSSMSXMASAMAMMXAAMXS +MMMAMXXMAXMMAXXMXMXAAXAMAXXMMMSMSAXAXMMAMMXMMSAMMSMMMAMAMMSXXXMASAMMSXMXXMMAMXSXXMASXMMMMAAMAAXAAAXSAXAAXASMMMMXXAAAAXASAAAMXAMAXXMASXMMXSAM +MSAMXSXXXSSSXSMMXMAMMMMXMXMASAAXMASMSXAMXAAXXMMSAMXXSXMXMASAAXSASASXXAMSMXSXMMSAMSAXAXAASASXMMSMSMMSXSMSMASAAASMMXMMSSXMMSMMSMMMSMMAMAAXAMAS +XMAXASMSMAAMAMAMAMMASAMXSASMMSSSMAAAMXMXMSXXMAXMASMMMXMSXMMSMAMAXXMXSASAAMMASAMAMMMXAMSMSAMAMXXMAXXMXSAAMXMMSMAAMSSMAMAMAXAMMMSAAAMSSSMMMSMM +SMSMAXAAAMXMASAMAXXAMASASXSAAAMAXSMSMAASAMAXSAMMXMAAXAMXMSAMXXMSMXXMAMMXXASAMASXMASXMMMMMXSAMAXXMSAXAMSMMAXMXMMSMAAMMMAMMMAMAAMMMSMAAAAXAAMA +SAMMSMSMSXXSMSASMSMSSMMMSAXMMMSAMXXAXAMSAMAMSASXASXMXAXAAMASXMAAAXSSMSSSMXMMSAMAMASAAAXAMASAMASMXSAMXMAMXMMMMSSMMSSMSMSSXSAMMXSXAMMMSMXMASXX +MAMAAAASMMAMASAMXMAXAAXXMMMSSXMMSMSMASXMAMMMMASMXMASMSSSMXAMAMSMAMAAMAAAXMAXMXSMMASXMMSXMASAXAXXXMSXMSMSASASAXAAMMAAAAXAMMXMMAXMMSAAMMSMSAMX +MXMMMSMMMMAMMMXMAXXSXMSSMXAAAXXXAAMXXMASXMMAMMMMSSMMAMAMSMMSXMAMMMSSMMSMMXXMSMSMMXSXXMAMMMSMMMSMSAAXMAASASAMSSSMMMMMMXMAMMSSMMMSASMMMMMXMAAM +MASXMXXXXSASXMXSXSXSAAAASMMSMMASMSMMSSXMMXSMXSAMXASMSMASAMXAMSMSXAAAAAAXSSMMAAMASXXAXSAMXMXAMXAAMXMMSAMMMMMMAXAXAASXSXSXMMAAAXASASXSAMMAMXMS +SASAMAMSMAAMMMMMXXAMXMSSMMXAMXXXAXMXAXASAMAMAMSMSAMXXSXMASXMMAAMMMMSMMSAAXASMMMMMAMMXMXSASXSMSMSMXXAMXSASAMMXXMXMMSAMMAMXMSSMMXMAMASAMSASXSX +MASMMASASMXMAAAXMMSAMXXMASXMMSAMXMXMASMMSAAMMSMXAXSAMXXSAMAXSMMMAAAXAMXMMSXMASMXSAMSAMXSASAXXAAMAMMMSASAMMSAXMSMSAMAAAAMMMAAXXMMSMASAMSXSXAM +MMMASXSASXMSSSXSXAMAXXMXSSXMAMAXAXSAMXMAXSSMSAMMXXMAMAMSAMMAMAASXMSSSMAMXMAMAMXASAMSASMXAMAMMMXMASXXAMMXSSMXSXAAAXSXMXMXAMMXXMASXAAMMMMXMASA +MSSMMMMAMAXAXMXSMSMSMMXMMMMSSSSSXSXASAMXMAMXMASASXMAMXXSASXSMSMSAMXAAMAMASXMMSMMMSMXMXMMMMXMAXXSAMMMMXSAMAAMMMMSMMAMXASMSSSMXASXXMMSMASAMAXS +AAAXSMSMSMMSSMMSAMXMASAAAAXAAAAMXAMXMASMMXMASMMMSASXSXXSAMAXMXXMMMMSMMXMASXAMXMXAXMXSMAAXSXSSMMMXMAXXAMAXMMMXMAAXMSAMXSAAAAAASMSXMAXMAMAMXSX +MSSMXXAAAAAAAMAMAMSMAMSSSMSMMMMMMMAXXXMMAXXAAXXMSAMAMAMMAMSMMXAXMAXMAMAMSMMAMAMXMSMAMAMMXSAMXMAMMSSSMSSSMXAXXMMMSMMSSXMMMMMMMAAXXMAMMMSMMMXM +MMMMXSMSMMMSSMMXAMAMAMXMMASXMAAXASXMSSMXMMMMMSAMXMMMMAASXMMASMMMSXSSXMXSMAMMMASASAMAXMXSAMXMASASASAAXAAAMSMSAMXXMAMAMAMMAXASMMSMMXSSMAAAAAMA +XAAAAXAAMMMXMAMSSSXSXMXAMXMAMXMMXSAAAAXAAAXXSAMXAXASXXXAMXMXMAMMMAMAMSXMMMMASASMXAXASXMMXSASXSASXSMSMMSMMAMAAMSSSSMAXAMMMSMMAAXXXAMAMSMSMSAS +SSSSMMSMSAAAMXMAXAMMMSMXXAMXMASXXMMMMSMSSSXXMAMMMXMSMMSASASXSMMAMMMMMAAMAMXAMMXMSSMASXAAXSASAMAMMSXMAMAMSASXMMAAXMSSSSXSAAASMMMXMASAMMXXAXXM +AMXAMXMXSXSXSMMMXMAAAAMXXMXSXMXAAXXMXMAXAXMXMAMASAMXAXSAMASXAXSXSXAXMSMMASMAMSMXAAMMMMMMXMAMXMSMAMASMMAXSAMAASMMMMAMAAAMSSMMAAXXSASXXSAMXMXX +MMSMMAAMMXMXXMAXASXSMMSSSMASAMXSAMXMAMSMSMAMSXSAXASMMMMMMAMMMMSAMMAMMMSMASMMMAXMASMASXMMMMSMXMAMAMMMAXSMMSMSMMAXXMASMMMMXXXMSMSMMASAMMMSSMSS +XMAMMXSAMASAMSSSMSAAMSAMAMASXMAAAMXSXSXXXAXAXAMASXMMASAMXAXAMAXAMMSASAAMXSAMSXMMAMXXMASXAXAMAXMSSSSSSMMASAMXXSAMXSASXSAMXMXXMMXAAAXMASXXAAAX +MSASAAXXMAMAXAXAXMMMMMASAMASAMMSXMMAMMMAXSMSMXMASXAMMXXSXXMAMXSXMXXAMASXAMAMSAMSSSXSSMMSSSMSSSXMAAAAAASMMMSSMMAAXMASAMXMXAAMMAXSMSSXSXMSMMMS +MSAMMMASMASMMMSMMMXXXSXMXMAMAXAMAMAMAAMSXAMAAAMASMSMSMSMMSAMMAMMMAMXMXXAMMSMXAMAAXXXAAXAXAXAXMAMMMMSMMMXXXAMASXSXMSSXXAMSXSAMSMAAXXMMAMXMASA +MMSMXMAXMAMAAASMMSAMAMAXASXMSSMSSMMXXXSXMSSSSSXXXAMAAXAAASAMMXXAMSXMMXMASAMMSSMMMMSSMMMXMXMSXXSMASXXMXSXMMMSXMAMAMAMMSSMSMXXAAMMMMXMSXMAXXXM +XAMXAMASMSSSMSMAAMASASMMMMAMAAMAMXXSSMMMAAAAAAXSMMMSMSSSMMAMXAXSXMAMSASMMXSXMMASMAMAASXSXMAMXAXXAXMASAMXMAXAAAASMMAAMMXAXMMMXMMSAMXMAMSMSMAM +MSMSXMAMXAAXMAXMMXAXAXAAMSXMMMMASXMMAAXMMMXMMMMXAMAMMMMAMSMMMMSMAMXMXASXAAXAASAMMSMSMMAMMAAXMXMMMSSXMMSMSASXSMASXSSSXAMMMMXSXAMSAMXMAMAAAXAM +AAAAAMSSMMSMSMSMSMSMMSSMMSAMXASXSMAMSMMMASXSMXMMAMAMAASXMASAASAMXMMMMMMMMSSSMMXSAXMMAMXMASMMMAXAMXMXXXAMMMSAMXAXXAMXMXSASXAMASASAMXSXSMSMSXS +SMMMSMAAXAXMAAAXMAMAMAXMASAMSASAMXXMASASAMMXAAAXSSMXSXSASAXSMSXMASAXAAAXMXAMAMXMXMASMSMSAXAASASXSAMMMXMMAMMMMMXMSMSAMXSAMMASAMXMAMMMAXAXAMMX +MASXAMMMMSSMMSSSMAMAMSMSAXXMMAMAMAXSASMMMSMSSMMSXAAXMAMMMMXMXXAXMSXSSSXSMSMSAMMSAMMMAAXMASXMXASXSXSASMSSXSASASAAAAAMMAMSMXXMMSMSMXAMMMMMSAMX +SAMSAMXAXXSAAAAXMAMXMMAMASXXSMSMMMXMAMAXAAMMAAXSXMMMMAMXASMSASMMMMMXMMXMASXSASASASAMXMMMAMASMMMMMASAMAAAAMASAXMSMSMXMAMAMMAMXSAAASAASASXXSSM +MAXXMSSMMAMMMMXMMSXSAMMMAXMASAAMAXXMAMAASMSSSMMMMXSASMMSXSAMXMXAAMMXAMMMAMASAMMSAMASXSAMXSAMAXMAMXMMMSMMMMAMASAMXMMSSMMASXMMAMXMMXSMSAAXMASM +ASXMAXAAMSMSMMMAXAXMAMXMASMXMMMSSMMSASAMXAAAAMAAAXMASMAMMMXMASMSMSAMXMASMMXMSMXMXSAMXSMSXMMXMMSSMMAMXAAAXMXSXAXSXAAMASMXMAMMXXAXXMAXMAMSMAMS +SXMASMMMMAAAAASXMMSSSMMSAMXMXSMAXSAMXXXMMMMXMSSMSXMAMMAMAMAMMXAAAXMMSMAMAMXAXXXAXMMMXXSAMXSASAMXMSAMSSSMSMAMMMXSMMXSASXMSSMMASMSAAXXMAAAMAMA +XXXXMXMXSMSMSMSASAAMAAAAAMXMAAMAXMSMSMSXMXMSAXAAMXMASXSSSSSSSMSMSMXAAMASMSMSMSMSSMXMSXAXAASXSMSMMXAXXAXAMXASAXAMAXAMASAMAMAMAAXXMASXSMSAXSSM +MMMMSAMXXMXMXASAMMSMSMMMMMAMMSMMSMASAAAMSAMMXMMXMASMSXMAAAAAXAMXXMMSXXAXXAAAAXAAXMAMXXMASMMAMAAASMMMMAMMSMXMXXMMAMMMAMAMASXMMSMXXASAXAXMAMAX +AAXAXAXSMSAMMMMMMXXMMASXSMMMAAXAAMXXMMMXMASASXSMSAMXMMMMMMMMMSMSAXAXMMXMSMSMSMMMXXAXAMXMAMMAMMMSMAAXMSMXSASXSXSAXMAXMSMMMSAMSAMMSMMXMASAXSAM +SSMMXSMAAXASXAAMXASASAMAMAAMXSMSSSXMXMXXSSMMSMAAXXSAMXSAAAXAAXXXXMASMXSAXMAXMASMXMSSMSMXMAXSMMXAMSMMMAMAXAMMSASASMSMXAXAXXAXSAMAAXAMXXAAXXAA +MMMSAMMXXSSMMSSSMASAMMMSSMMXSAMXMAMSSMSXXAAAXAMMMXSAMASMSXSMSSMMXSAXAAXMXAMMMMMMSXMAXSASASXAXSMSXXASXMMMMSMXMAMAXMASXMSMMMSMSAMSSMMSSSMSMSSM +XAAMXMXSXXMAXMAAMXMMMSAMXAAXMAMXMAMAAAMMMSMMMXAMXXXAMMSXMXXXAAAAAAXMMMSXMMXSAMAAXXXXMMXMAMMMMSAMASAMXXAXMMXSMSMMMSSMMAAAAAAAMXXAAAXXAAAAXAMX +MMMSMMASMMAMMMSMMSAMAMMXSMMSMMSXSMSSMAMAAAAMASXMSSSXSXSAMXSMSSMMSMXXAAMXAAASASMMSMSSSSSMAMAXAMAMMMSMSSMSXMAXXAAAAXXAAASXMSMSMSMSSMMMSMMMMMSM +XMXAXMASAXAAAAXAASAMSMSAMXASAXAAXMAXXAMMXSSMAXAXAAXAXXMAMAAMXXXXMASXMXMSSMXSMMAMAMXAAXMMSXMMSSXMMAMSMAMAAMAMSSSMSSSXMAXAXXAAAXXAAXMAMAAXAXAA +AMSMSMAXAMMSMSSMMSSMAAMMMMXSAMMXMMSSSMMSAAAMXSSMMSMSMXSAMXSMMSSXMASAMAMXXXMSXSMSMXMMMMSMXASAXXXXMASASAMSMSSMXMAXMAXAMXSMMMSMMMMSSMMASXMSASMS +XMAXSMXMAMXAXXXAAMAMMSMXXSAMMAMXAXAAAXAMMSMMAMAAXXAAMMSXXSAAXAASMASASXSMMSXMASASAASMMMAASAMXSMMXSMSMSMMMMAMMSSSMMAMXMAMXAMAXSAMMAXMASAAAASXA +SXSMSAMSSMXMSMXMXSMMSAXXAMAMXXXMASMSSMMSXXXMASMSMMSMMAXXXMMAMXMMMASXMXSAAMAMAMAMMMMAXSMMMAMAAAAAAAXXSMXAMXSXAAMMMMSMMASASMAMSAMSMMMSMMXMXMAS +XAMAMXMAMMMMAMAMMMXXMASMSSSMSMSXMXXAXAAAMSXSAXXAAMXMMSSMMSASXSAXXMSAMAMMASASAMAMASMXMXXASXMSSSMSMMMMMAXSAMXMMXMAAXAXSMSAMMAMSAMXXAXXXSAMMMMA +MXMAMMMAXMASASASAXSSMXMAXAMAAAXAMMMMSMMMMSASXMSMXMAMAMAMASMAAXMASASXMAMSASASASXSASAMMXSMSAAXXXAXXMSSMMXMASMXAASMSSSMMXMASXMXSMMMSMSMXSAMAAAX +SASAMXMSMSXSASASASXAMMMXMAMSMXSAMXAAAAXXAMAMSAAMASAMASMMMSXMASXAMAXXMXMMASASMMMMXMAMXAXXSMMMAMMMMSAXAXSAMXXMSMSAAAXXMAMXMMSAMXAAAMAXMMSMSSSS +SASASXXMMXAMAMXMXMXSMAMXMXMAAXMAMSMSSSMAMMXMASXSASASXSXSAMXXAAMXMMMMMMMMXMXMASXSSSSMMMSMXAAMXMMAXMASMMMMMMSMMMMMMMMSSXMAMXSASMSSSSSXSAMXXAAX +MAMAAMASMMMMSSMSASAXSASAMMMXSSXMMAAAAMXSMMSMXMMMASAMAMASMXSMMMAAAASMMAXMXSXMAXAXXMXAAMAMSSMSSMSXSXAMXAAASXMAASAXAAAAAXSSSMSAMAAAMAAAMAMSMMMM +MSMSXMAMMAAAMAASAMAMSMMASAASXMASMSSMSMXMAXMXAXAMMMAMSMAMXAXASXSSSMMXSSSMASAMSMMMSMXSMSAXMXSAMXMSMMXXXSSMSASMMSAMSXSMAMMMAXXXMMMSMMMMMMXMASXX +AXAXXMAMSMMXSMMMSMSMSASAMMMMASMMAMMMAMAMSMSXXSSXSSMMXMMXMXSXMAMXXASXMASMASAMAAAAMAAXXMMXAXMXSXXAXMASMMXAMAMAAXAMMAMXXMXSMMMSMMAXXASXMXASMMAS +XMMMMMMMSAMMSXAMAXAASAMAXXMSXMXMXMASASAXMASMMMMMMAAAMXMSMXMMMSMMSAMAMAMMXSASMMMMSAMXASMMSMXASMSMSMASAAMAMASMMMSMXASAXSAMAAAAAMSXSASAXSAXXMAS +MMAAAXMASAMAXSXSMSMMMMMSMAAMASXMASASASXMMAMMAMAASMMMSASAMMAAAAXAMXSXMSSMAXMAMSAXXMSMMMSAAAXXSAASAMXSXMMMSAMMAAAMSXMMMMASXMXSSMAAXASMMMXMSMMS +MSSSSSSMSMMSMMXAXAXAAXAXMXMMXMASASMSAMMSMMMMAMSMSAMASXSASXSMSSSSXMAAXXAXMASAXMSMMXSAXAMXMSSMMXMSMSAMAMAXMASMMXMASAAMASAMAXAXAMMSMMMXXAAMAAAX +XAAAXAAXSAAMAMMMSSSSSMMSSMMSSMMMASAMXMASAMMMSXMASXMASMMAMAAAAAXAAXSXMSSMXMMMSMASMASXMXSSMAXAMSXMXSASASMSMMMMASMAMMMMMMASMMMSAMSAMSASASXSXMMS +MMSMMSMMMMMSAMXXAAAXAMXAAAXAAASMXMAMMMXXAMXMMAMXMXMASAMXMMMMMSMSAMMMASMMMAASAXMAMXSXMAMXMASMMSASASASAXAXMXMXAXMSMMSMXXAAASXSAMMAXAASMXMSMXAX +XAMAMMASMXMSAMXMMSMSMMMXSSMSSMMXXXXMMSMSMMAMSAMXAXXMSXMSXMAXXAMXAMXAXXMAASMSMMSAMMMXMASXMXSXASAMXMAMMMSMSAXMMSAMAXMASMSXXMASXMSSMMXMASAMXMSS +MXSAMSAMXAMXXMXSAMXMMAXXAXMAAXSMSMSXXAAAXXAMMAXMSMSMSAMXMSMSSMSXSMSSSMSAXXAXAASASXAASAXXAMXMMMXMAMAMXAAASMSMAMMMXMMAXAXMASXMAXAAAXSMSMSMSMMA +SMSAMMASXMSSMSXMASAMSASMMMMSMMAXAAAASMSMSSSSSXSAAAXXMASMAAAXAXMAXAAXAMMXMSXMMMSAMMSMSMMSSXMXAAAMXMAMXXMXMXXMMSXMSMMMSSMMASASXMSSMMAXAAXXMAAM +MAMXSMMMXAAMAXAMAMAMMASXMAMAMAXSMSMMXXXAMAAAAAMXMMMMMXMAMMSSXMMMMSMSMMSAMAMMXAMXMAMXSMMAMASXMSSMSSSMAMSAMSAMXSXMAAAAMAXMASXMXMMMAMMSMSMASAMX +MAMAXAXAMMMMMSXMAMAMXAMXSAXAMXXAXAXSSMSXXMMMMMMXXMASXMASXXAAAMXAXXAMXASASAAMMSSMXXSMSAMXSXMMMMAMAAAMAMSASAXSMXMSSSMXSASMXSXMAXMXSXXAAAXAMXMA +SMSSSMMMSAMSASMSMSSSMXMXSASMSXMASMSAAAMXASXMXSAMXMAXAMAMAMMSMMSSSMAMMMMAMXSXAMAMXMSAXMMMMAAAASAMMSMSMXSXMMXXAAAXAMXASAMMASASAXSAMMXMXMMASXAA +AAAAAXAXMASMASAAMAMXAASAMXMAAMAXAMMMMAMMXMAMAMASMMSSSMASAMXAXXXMAXAMAMSMSAXMXSAMAMMXMMAAXSSSMSXMXAMMMAXAAXAMMMXMASMMMAMMASMMASMASAASXSMXSAMX +MMMSMMAXMSMMXMXSMXSXSXXASXMMMMMMSXMXSAMXASXMAMAMAAXAASASXSXSSXMASMMSAMASAAXAASMSXMAMSSSSXMAXMXAMSMSAMXSSMXMSAAXSAMAXSXMMASAMXMXSMMXSAAXAXXXX +XAXAMASXMXAMXSAXMAMMMMAMXAXMASXAASMASAMSAMMASMMSMMMMMMMSXAAMAMXSAMXSXSXSMXMMMXAMMMMMMAXMXMMXMMXMAASAMAAAMSASMSMMASXMAMAMASMSSSXMAXXMXMMMSMSM +SSSMSAMAASAMXMASMASAAMAMSMMSASMSMXMASAMXAMSAXAMXXMXXMSXMMMXMXAMXAAMSASMMXMSXSMAMAASMMMMSXXXAAXMMMXMSMMMAMSAMAAXSXMMSAAXMAMXAAMAMAMAMXXAXAAAM +XAAXMASMMSAMAMSMMASXSMMXAAMMAMAMMSMASMMSAMMASXMMSMSAXSAXSMSXSAMSXMXMAMMAAAMAMSAMMMSAAMAMAASMMMXAXAAXXMSSXMAMSMXAMXAAASXMMMMMSMASXSXSXMSSMSMS +AMMMSXMAASXSAXMAMXSAMXSXSMMMSMAMAAMXSXMAMXSAMASMSAAMMSAMAAAMXAMXXSSMAMSMMSMAMMXSMMSXMMAMSMXMAXXASMSMAMAMASXMMMMXAMSMXMMMSASAMMXSAAXAAMMMAAAA +XAXXSXXMASAMMSMMMAMXSASAMXSAXXXMSMSAMXSASAMXSXMAMXMXAMXMMMMMSMMXAAASAXAASXMMSMMSAAMSSSMXXXXSASAMXAMMAMAMXMMAAAMMXAMXAMAAMMMAMMMMMMMXAMAMMMSM +SXMAMASXAMAMAXAAMASMMAMAMAMASXMMXXMXSASMMXXMXMMMSXXMSSSSXMSAAAXMMSXMSMSXMAXAAAASMMMAMAMXMMXMASMMMSMSXXMXSAMSSXMAASASASMSSXMAMXXASXSXXSASAAXX +AMMAMMMMMSMMXSSMSXSXMAMAMAMAMMSAMXSMMMSAASMSMAAAMXMXAAXXMASMSMMXAAAXXXMASAMXSMMMXAMXSMSMAXAMAMASAMAXMXXXSAMAAMMSXMAMAAAMAMSSSMSASASAMSASMSMA +XXSAMXAXMAASMXMASXSMSXSASXSASXXASXXXAAMMXXAASMMSSMAMMSMMMAMAXASMSSSMMXSXMAXXAAXMMXSAMXXXSMMMMSAMASMXMAXXSAMMSMAXAMXMAMAMAMMAAAAAMXMAMMMMMAAM +SXSASXSSSMXSSMSASMSAMASAXMAMXXSAMXMXMXSAAMSMMMSAXASMAMAXASMAMASAMAAXSAMAMASMXMMSAAMASMSMMXSAMMXSAMMMAMXASXMAMMASXMXXAXASASXMMMMSMMXSMSASMMSS +MASXMXAMAMXSAMMASAMAMXMAMSSSMXMASASAAASXSXMAXMMAMSAMXSXMAMMMMAMAMSMMMASXMASAASAMMSMSMMAXAAXASMAMXSXMASAAMXXAXMASXMMMASASASMMMAXMASMMAMMMAMXA +MAMAAMXSXMXMAMMXMMSMMSMXMAMAMAMMSASMSMMAMXSAMXMXMMMSASASXXSAMXSXMAASMMMXMASMAMASAMXMASMMMSXMMXMMMAAXAMMMMXMSSMASMSAAMMMMMMAXSSMSAMAMAMXSAMSM +MASMMMAMMSMSSMMSMXMXAAXXMXSASXSAMXMXMAMAXXMAMXMXMXXMASAMXMSXMAXAXXMMAAAXSAMXXSXMAMASAMXMXAASASXAXSSMSSXAAXXAXMMMXMXXXAXXAMSMMMMMAMXXAMXMAMSX +MMAMAMAXAXAXAAXMXAMMMSSSMAMASXMASAXAXXMMSMMASAMAXMSMMMMMXXXSMSSMMSSSSMMMXXSXXMMMSMMMAMXXAXXMAMSAMXAAAAXAMXSMSMSSMMSXSAMMMMMAAMXSXMSASMSSXMMM +SAAMMSAMSMSASMMMSMSAAMAMMAMMMMXAMXSMSSXMAMAAXAMASXSAMAXMXAAXMASAAAAXXASXMMMMMAAAAAXSAMMMSSXMAMAMASMMMSMMSMAAMMAAAAXAMXMASASAMXAMXMSAMAMAMSAS +XMSMXMAMAAXAXXAMAXMMSMAMSXSSXSSSSXSXAMASXMMSSSMSSXXAMXXMSMSMMASMMMSMSMMAAXAAMAMMSMMMAXMAAAASMSAMXMXAAXMXAXMAMMXSMSMMMAMMMASMXMXSAXMXMXMSMSAS +MAAMXSMMMMMAMSSSSSXAAMMMMMAMXMAMAMXMXSXMSAAXAAMXMASMMSXAAXXAMAMAAAMXSASXMMSXSAMXXAMSSMMMSXMMASXSAMMMSSXSMSXSSXMXAXAASASAMMMXAASXXSXXAXAAAMAM +SMMXAMXAAAMAMAMAMAMXSSMAXSAMAMMMXMXSMMMASMMMMMMAMXMAAMMMMAMXMASMMXSAXXMAXXAXSASASAMAAAMAMAXMXMMSASAAXXAMXMMAAXAMSMSMSASMSMSMXSAXMXMMSSSMSMAM +AAXMASMSXSSMMSMMMAAXMAMAMSASXSAMASXMAAMXMAAXXAMMXXXMAMAXXMAMMXXAASMMMSSSMSMMSAMASMMSSMMASAMXAXXSASMXMMXMMXMAMMSXMAMXMMMAXAXAXMASMAMAAAAAMXMX +SAMAASAXAAAXSAMMSXSASAMXASXMMSASAXMSSMXMXSMSSXSAASMSSSXSXMSMMSSMMXASXXAXAAXAMXMXMAAAXAMAMAMSMSMMXMASXMAMSXMAXAMMMXMXMASMMMMSXMSXMASAMMMMSASM +AXMSXMAMMSMMSMSAXMMAASMMMXASASXMMSXAAAAXXMXAAAMMMMAAAMASASXSAAAXASMMMMAMSMSXAXSMSMMSSXMMMMMAXXMASASAMXAXAXMAMAXAXMASXMSXMXAXXMXMSMMAXXXXXAMX +MMMMXMAMXXXAXXMXMASAMXXXXXXMASMSMSMXSXMSAMMMSMXASMXMXMASMMAMMSMMMXXAAMMMAXMMSXMASXAXMAXMAXSMMMXXAXXAAMMSMSSSSSSMSMAMAXSAMAXSASXMMXSAMSXMMMMX +XAAMMSXSAMMSSMMSSXMAXMMMSMSMXMAAASMMMAMSAMAAAXSXSMSXXMAXXMMMAAMAXASMSSMMMMXMMAMAMSAXSXMXXXAXXSSSMSMMMMXAXMAAAAAMMXSSMMSAMAXSXMASAMMSMSAMMSMM +SSSXAAMMASAAAAAXMASXMMAAMAXSSMSMSMMAMXMXMASMMXAAMASAMMSSXXAMSSXXMASMAMAMXMAMMSMSXSXMXXSAXSSMAXAAXAAAAASAMMMMMSMMAAMAMXSAMAXXXXXMASAXMXAMAAXA +XMMMSSMSAMMSSMMSMAMMAMSSMSMAMAAMAAMMSAMAXXAMXMMMMAMSMAXXMMAXMMMSAMXMAMAMAMAXAAXXAMMMSAMXMMAMMMMMSSSMSXSASAXXAXXMMMXXMXSAMXMMMSMSMMMSMSSMSSSS +SXAAAAAMAMXAAAXSMXMXMMAMXXAAMMMSSSMASASAMSAMXXASMMSXMXSAMXSXSAAXMXXSXSSSSSSMSSXMAMASMXMSASASAAAAXAAAXAXASAXMMSXSAXSMAASXMAAASAMSASMMMAAXAAAX +ASMMSSMMASMSMSMMXXSASXMSMXSSSXXMMMMXSAMXXMSMSXXMAMXMAMMAMXXAMMSSXMMMMSAAAAXMAXXSAMXXAAMXASASXXMMSSXMMMMMMMSMAAAMXSAAMASMXMMXSASMXMAAMSSMMMMM +MXSAXAAMXSAMSMAMAAMAMASAXXXAMMAMAAMXSAMXXAAXAMXSSMSMSSSSMXMXMAXMAXAASMMMMMMMSMMMAMSSSMSMMMMMMXXXAMAXSXMXAAAMMMSAXMASASMMSSMMSMMXXSXMMAXAMXMA +SAMMMSMMXMMMASAMSSMAMXSASMMAAAASMXSASAMMMSMSMSAAXSXAXAAMAMSMMSSSMSMMXAMXMAMXAMSSSMAAMMXXAAMAMXSMAXXMSAMSMSMSXAMMMMMMXAAAAAAMMXASMSXXMAXMMAXS +MAMSAMXSASASMSSXMMMMSMMAAXSSMSASAAMASAMXAAAXAMMSMMMAMMMMAMAAAAAAAAXSSSMASMSAMXAAXAMXMASXSMMASAXSSMSMSAMSXMAMMMSAAAAAMMMMSSMMAMXSASMSMSMSMSSM +XAMMASAMASASXXMXAASMAXMMMXAMAAAMMMMAMAMMSSSMMMXAAXASMAXSASXSMMSMSMMMAAMXXAMMXMMSMXSAMXMMAXSXMMMMMMMASMMMASXMAASXSSMSAXAAXMAMXXMMXMAAAXAMAXAM +XSXMAMMMMMAMAXMXMMSSXSXAXSAMXMXSASMXSXXAMAMAXMMMSSSMSSXSXSAMAAMAAXAMXXMMMSMMAAMMAASXSAXMSMSASXAMAAMMMSSMMMAMMXSAXAXAXMMMSMSXSAMXMSSMSMAMMMAM +MMAMSSXXAAAMXMAXSAMMMSMSMSAMXMAAMMAASAMXSMSXMMXSAMXXAXAMAMXSAMMSMSXMAMMXMMASMSMMMMMXSMSSMAXMSMMSSSXSAAXMMSXMXAMXMXSMSSMXSAMAMXMMXAAXXXAMXSSM +ASAMXMASXSMSXASAMSXXAMXAASMMAMMAMSMMSXSAMXSAAAMMASXMXMMMSMAMAMAXAMXMASMAASAMMAXAXAAAXXXMMXMXSAXAAMAMMMSXMASMMSSSSMSXAAMAMAMMMSMMMXSMSMSMAXAM +MSASMSMXAXXXXSAXMASMSSSMMMASXSXAMXAXSAMXSASMMMXSAMAXAAMAXMXSAMXMAXAMAXMAMMMSSMSMSMMMSMMMSMSAMXMMXMAMMMMMMASMAAAXMAMXXSMASAXMASAXSMMASAMMSSMA +ASAMAMMMSMSSMMAMXAXXAXAMAMASAMXSMSMMMMSAMXXAMXXMASMMMSMSSMASASXMSMSXSSMXSAAXAMXAAXAXAAAXAAMAXSMMSSMMSAAAMAMXMMSMMSXMAXMMSMSMXSSMMASAMXMAAXXX +MMMMMXAMAAXXAXMMMSSMMXMXASXMAMAMASXMXAMMSXSSMSMXMXXMAAXMAMMSAMMAXAMAXMAASMXSAMMSMSMSSSMSMSMSMSAAAXXAMXMSXMSAMXXXAAXAMXAMXMXMASAXMAMAMMMMSSSM +XAXSSSSSMSMMSMMAXMAMMASMMSMSAMMSAMAXMMMSAAAAAXAASMMMSSSSSMXMMMMAMAMSMMMMSAMSAMAXMXMAXAAXAXAMASMMSSMSSSMMAASXMASMSSMSXSSMMMMMMMMSMMSXMAAAXAXA +MSXXASXAAMMAAASAXSAMSASAMXASMSXMASXMSXMSMXMMMMAMSAAAAMAAAXSAMXMXSAMXASMAMAMSAMSMSAMXSMMMMMAMAMAAMXAAAAAMMMMAAASAMXAAMAMXAAAAAAXAAASASMSSMAMM +MXAMXMSMMMMSSMMSAMXXMMSXMAXXMAMSAMXXSAMXXSXASXMXSXMSSXMSMMSMMAXMAMASAMXSSSMXMAXASXSMXXXXSSXMMSMMSMSMSMMMAASMMSMXMMSMXMASMSSSSSSSSMSXMAXXMAMX diff --git a/2024/4/input_example.txt b/2024/4/input_example.txt new file mode 100644 index 0000000..1f4eda2 --- /dev/null +++ b/2024/4/input_example.txt @@ -0,0 +1,10 @@ +MMMSXXMASM +MSAMXMSMSA +AMXSXMAAMM +MSAMASMSMX +XMASAMXAMM +XXAMMXXAMA +SMSMSASXSS +SAXAMASAAA +MAMMMXMMMM +MXMXAXMASX