2025: improve folder names
This commit is contained in:
81
2024/04/README.md
Normal file
81
2024/04/README.md
Normal file
@ -0,0 +1,81 @@
|
||||
# Day 4: Ceres Search
|
||||
|
||||
[https://adventofcode.com/2024/day/4](https://adventofcode.com/2024/day/4)
|
||||
|
||||
## Description
|
||||
|
||||
### Part One
|
||||
|
||||
"Looks like the Chief's not here. Next!" One of The Historians pulls out a device and pushes the only button on it. After a brief flash, you recognize the interior of the [Ceres monitoring station](https://adventofcode.com/2019/day/10)!
|
||||
|
||||
As the search for the Chief continues, a small Elf who lives on the station tugs on your shirt; she'd like to know if you could help her with her _word search_ (your puzzle input). She only has to find one word: `XMAS`.
|
||||
|
||||
This word search allows words to be horizontal, vertical, diagonal, written backwards, or even overlapping other words. It's a little unusual, though, as you don't merely need to find one instance of `XMAS` - you need to find _all of them_. Here are a few ways `XMAS` might appear, where irrelevant characters have been replaced with `.`:
|
||||
|
||||
..X...
|
||||
.SAMX.
|
||||
.A..A.
|
||||
XMAS.S
|
||||
.X....
|
||||
|
||||
|
||||
The actual word search will be full of letters instead. For example:
|
||||
|
||||
MMMSXXMASM
|
||||
MSAMXMSMSA
|
||||
AMXSXMAAMM
|
||||
MSAMASMSMX
|
||||
XMASAMXAMM
|
||||
XXAMMXXAMA
|
||||
SMSMSASXSS
|
||||
SAXAMASAAA
|
||||
MAMMMXMMMM
|
||||
MXMXAXMASX
|
||||
|
||||
|
||||
In this word search, `XMAS` occurs a total of _`18`_ times; here's the same word search again, but where letters not involved in any `XMAS` have been replaced with `.`:
|
||||
|
||||
....XXMAS.
|
||||
.SAMXMS...
|
||||
...S..A...
|
||||
..A.A.MS.X
|
||||
XMASAMX.MM
|
||||
X.....XA.A
|
||||
S.S.S.S.SS
|
||||
.A.A.A.A.A
|
||||
..M.M.M.MM
|
||||
.X.X.XMASX
|
||||
|
||||
|
||||
Take a look at the little Elf's word search. _How many times does `XMAS` appear?_
|
||||
|
||||
### Part Two
|
||||
|
||||
The Elf looks quizzically at you. Did you misunderstand the assignment?
|
||||
|
||||
Looking for the instructions, you flip over the word search to find that this isn't actually an _`XMAS`_ puzzle; it's an <span title="This part originally involved searching for something else, but this joke was too dumb to pass up."><code><em>X-MAS</em></code></span> puzzle in which you're supposed to find two `MAS` in the shape of an `X`. One way to achieve that is like this:
|
||||
|
||||
M.S
|
||||
.A.
|
||||
M.S
|
||||
|
||||
|
||||
Irrelevant characters have again been replaced with `.` in the above diagram. Within the `X`, each `MAS` can be written forwards or backwards.
|
||||
|
||||
Here's the same example from before, but this time all of the `X-MAS`es have been kept instead:
|
||||
|
||||
.M.S......
|
||||
..A..MSMS.
|
||||
.M.S.MAA..
|
||||
..A.ASMSM.
|
||||
.M.S.M....
|
||||
..........
|
||||
S.S.S.S.S.
|
||||
.A.A.A.A..
|
||||
M.M.M.M.M.
|
||||
..........
|
||||
|
||||
|
||||
In this example, an `X-MAS` appears _`9`_ times.
|
||||
|
||||
Flip the word search from the instructions back over to the word search side and try again. _How many times does an `X-MAS` appear?_
|
||||
140
2024/04/input
Executable file
140
2024/04/input
Executable file
@ -0,0 +1,140 @@
|
||||
MMAMMMSAXAXXAXMASMMASAMXMAMMAMXXXXXSMSXMMMXMXXSXASAMXMAMMXSAMXXXXMSSMXMASMMMSMSSSSSXMXSASMSMMMMMXAMXAXMMSMMAXSSSXSXMXAMXMXSXSMSSXSAMXXXMXMXM
|
||||
ASASAAMXMXMMMXAXAXSSMXSASASMSSXMMSMMSAMXMMSSMASAMXMXMMMSMMMASMXSAMAMMXMAMAAXAAXAAAAMMSAMXAAXAASMSSSMSSSMAAMXMAAXMMASMSSMMXMAXAAAASAMXSXMASAM
|
||||
MSASMSSMMAAASMXSMMXAAMSAMASAAAMAAAASXMAXSAAAMSMMXAMAMAMAXAXAXAASMMAMMXMASXMSMSMMMMMAXMASMXMSXXMAAXAAAAASXMMAAMSMMSAMXAAXXAMXMMMSMSASAAASASXS
|
||||
MMAMAXMASMSXXMASXMMMMMMMMMMMMXAXSMXMAMXXMMSSMMAMMAXXSASXSXMAMMMMXSMSMXXAMAASAMMXMASXXXXSXMMXMSMMMSMMMSMMSASMMXAAXAASMSMMSXSAXAAMXSAMMSMMASAA
|
||||
MMMMXMSXMXXAAMAMASXMAAAXAMXAASMMMXMSXMSXMXAAASAMSSXAXAXAAMXMXSASMMAAAMMMSSMMAMSXSAXMAMMMXAAAAAAAXXAAXAAXSXMASMSSMSXMAAXMAMMASMXXAMXMXAXMXMMM
|
||||
ASAXMAMAMASXXMASAMASXSSSMSSMXSAASAMXAMMAMMSSMMXMAMXMMSMMMSSMAXXMAMSMSAAXMXASXMSASMSMAMAAMSSSSSMMMSSMSMXMXXXMXAAMAXMSMSXMASXAMXAMSMMXSMXSAXMX
|
||||
XMASXSSXMASMSSXMASXMMMAAAAAXXSMMMMMSAMSSMAMMAMMMASXXAAAXXAAMXMMSSMAMXXSSMSXMXXMAMAAMSXXXMAMMAMXMAXMAXAASMSXSMMMMSXMAAMMSAMMMSXMXMASXMXAXMMSA
|
||||
XSXAAXXXMMXAAXAXAMXXAMMMMMSAMXMXXMASAMAMMMMMAMAMAMXMSSSMMSXMAAMAMXXSAMXAAMXMASMSMSMXXAASMSSMAMSMSSMAMSMMAAASMXAAXMSMSMAMASMAMMSASXMASMXXMAXA
|
||||
MMXMSMAMXSMMMSSMASASXSASXSAMXAMMMMASMMAXAASMMSXMASXMAMXXXMASXSMAXXMMMMSMMMAXMASAAXSAMXMXXMAMXXAAMXMXMMAMMMXMXMMXSASMMMMSAMMAXAXASMXMXAMSMSXS
|
||||
SXXAAAXMAXASXAMMXMMAASASMAAMMXMAAXXXXSXSSXXAAAMSAMXMSXXMASAMAMMSSMXAAXAMASAMMMSMMMMXSSMXSSSMMSMSMMXSSSMMSMMSAMSMMMMSXAAMASXSXSMAMMMSMSMMAXAA
|
||||
MXMAMSSSXSMMMMSSMXAMXMAMAXMSAXSSMMMMXAMXMASXMMMXAXXXXMASAMAMXMAMMAMSXSAMAXMXSAMAAAXAMAMXXMAAMAMXMAAMASXAAAASMSASMAXXMMXSAMAMAXMAMASMAAXMAMSM
|
||||
MSXSMAAMMSAASAAMMSSMMMMMSAAMMMXXAAAXSAMMMAMMASXMXMMXSAMXASMMSMMSMSXMASAMSSMAMASXMMMXXMMMMSSMMAMSMSSMAMMSSXMXXSMSXSXSXSMSMMAMMMSMSXSASMSMMMXX
|
||||
MAAXMMSMASMMMMMSAAAXAAAMAMXMXAAMSSSXXAMAMXMSAMMXSXMASMSMMMMAXXMAMMAMAMAXAAMXSAMASXAMXXSAAAAAMAMAAMXMASXAMAXXXMMSAMASAXAMXMSSXXAMAMXAMMXMMMMM
|
||||
MMSMAAXMASAXXXAMMSSSSSXSXSAXMMSMAAMASMMSXSMMAXSAMASMSXAAMAMXMMMMXSAMXSXMSSMAMASAMMXSAAMMSSSMSSSMSMXSAMMAMXMXMSAMAMXMMMMMAXMAMMASXSMSMXMMAAAA
|
||||
XSMXMMSMMSMMMMMSXAXAAAASAMXSMAMMMSMMXAAXAXXMMXMASAMAXXMSMSSSMXSAASAMXMXAXAMXMAMAMAAMMSMAMAMAAAXXAXAMXSMMSMSAAAMMMMAAAAAMAMMAMSMMASAXAASMSSSS
|
||||
XMASMXXAMXAASMMMMMMMMXMMAMSXMASXXAAXSMMMMMSSMXSAMXSAMXXMAMAAAAMMXMMMMSASMMMSMSSSMMXSAAMXMAMMMXMMSSSSMSXAAASMSMXASMSSSSSXSASAMMAAMMSMMMSAAAAX
|
||||
XMAMMMSXMSSMSAAMAXXXASXMAMXAMXSXSMSMXMASAAXAMXMMSMMMAXXMAMSMMMMSSSMAAMXXAAAMXMAMMXAMMSXSSXMXMASAMAAXAXMSMXMXMXSMSAAAAMAAXMSXSMMXXAAMAMMMMMMM
|
||||
XMASAAXAXMAMSXMMMXMXMXMSMSSSMXXXMXMXXSXSMSXSMMSAAAAXSMMSAMMXMXXAAAMMXSASXMMSSMSMSMMSAXAMXASMMAXAMMMMSMAAXSXMMMMXMMMMMMMMMXSAMXXMMSMSASXSXSXS
|
||||
XSASMSSMMSAXSAMXSSMMXMAAAXAMAMAMXMXMMAMXAAXMAMMSSSMSXAASASXAXSMMSMMMXMASMMXMMAAXAMXMASAXSMMAMSSMMAMAAMXMMAXMASAMXXXAXMAMSAMAMSXXAMMXASAMASAX
|
||||
XMASXAAAASAMXAMASAAXAMSMSMSMAAAAASASXXSMMMMSAMAAXMXXMSXSXMXMXXAAXAAAAMSMAXSAMSMSMMXAAMAMXXMSMAAASXSSXXMXXMMSASMAMMSXSAMXMXSAMXXMASAMSMMMXMAS
|
||||
XMMSMXXMMMAXXXMXSAAMMMMAAXXSMMXSASASMMMMMSXSSMMSMSMSAXXSMMAMXSMMSSMMMXMXAMSAMXXSXASMMSAMXMXAMSSMMMAXXMSMSXAMXSMASMAXAMAAXMSASMSXAMAXMAAXXMAM
|
||||
MMAXAXXSAMMSMASMMMMSXAMSMMMASAAMAMXMAMAAMMAMMSAAAAAAXSMMMSAMMMAMXAMXSASMSXXAMMXMMMMAAAASMMMAXAXAAAAMXXAAMMXXAXMAMMSMSAMXXXXAXAXMAXMMXSMSMMAS
|
||||
SMSMSAASASAAXAXXAAAXMSMMAMSAMMSMSMASXMMSXMAMAMSXSMSMSMAAXSMSASASAMXXSASAMXSSMMSAASMMMSASAASMMMSSMMAAASMSMMSMXSMSSMXAMAXMASMSMSMSMMSSMAAAMSAM
|
||||
XAAAAMMSAMMMMMSSSMMSAMMXAMMAMXXAXXXSXMSAXSAMXXMMMXAXAXXMXXAMXSAMMSAXMAMXMMMMAMAXAMAAXXAMMMXMAXXMSSXXMAMXAAXMASXAAMMMMAAXMMAAAAMXAAAAMMSMXMXS
|
||||
MMMSMXXMXMAXAAXXASAMXSAMSXSAXAMXMXXMASMAXSAMMSAAXSXSMSMXMMXMXMMMASMXMAMAMAAXAMMMSMSMMMSMAAMSMMMAMMMXMAMMAMXXAMASMMSSSXSMSMSMSMSSMMSSXAAMASMA
|
||||
MXXMXSXMASMSSMMSXMXSAMMXXASASXMSMMSMSMMXMMAMAMMSXMXMXMXAAXXXAAAMAMSASASASMSSMMXAMAAAXXXXMMXAAAMAMMAAXMMSSSMMMSAMXAAAMAMAAMXMXMMAXAXAMMSSMSAM
|
||||
MMMAASXSASAAAAMAMXXMMXXAMXMMMXAMXAMSAAAASXMMXXAMASAXAASMSMMSMSMMAMSXSMSMSMMAXXMASASMMMMXMMSMSMSSSMSXSAAAAAXAAMXSXMMXMAMXMMAMXASMMSSMXMAAAXXM
|
||||
XAXMASAMASMSMXMXAMMMMSSMMMXXAMMMMXSAMMSXSASXSMXXASMMMMMXMAMMXAXSMMSASXSMSMSAMXMXAMXAAAAASXMAXXXAAAAASMMXSMMSXSASXXXXMAMAAMMMSAMXXXMMMMSSMMSS
|
||||
SSXSAMMMXSAMXAMMSASXAAMXXAXMMXSAAXMMXAMMSMMAMMSMMMMSMSXSXSMSMMMAXAMSXAXXSXMASXXSAMXSXMSMMAMAMAMXMMMXXXXMMXXXAMASXMAMSAMSSXSAMASMMXAAAXMXMSAM
|
||||
SAAMXSXXAMAMSXMAXXMMMXMAXSMAXAXAXSSXMMSASAMSMAXAMXSAAMAMAMAMAXMXMXSMMSMMMASAMMASXMAMXMXASMMMSXSASAMMMMMAMXSSXMAMAMAXMMXAAMMASAAXAXSSSXSAMMAS
|
||||
MMMMMMXSMMSMMXMMSAXSAXMSMXASMSMSAAMAMXMASAMXMXSAMXSMSMSMSMAMSXMXSMXXAAAAMMMMSXAXMMAMASMAAXAMMASAXAXSASXSMAXMAMXSXMXSAXMMMMSXMASXXXAMAXMAMSAM
|
||||
XXAAAMXMXAAAXMSAXXMMXSAMAMXMAAAXMMMXXASXSAMXMASAXMXMAMXAMSAMMXSAMMSSSSSMXSAMXMMSXASXAXMXMMXSMMMSSSMMXMAMMXMSAMXSXSMMMMXXMAMASMMASMMMSMSAMMAS
|
||||
SSSMSSXMASXSMAMMSMXMAAXMAMAMMMMMXMSAMXSAMXMAMXSAMAAXXAMAMXMSXAMASAAMXMAAMXAMXAAXMAXMSMMSSMMSASAMXXMASMSMMMMSMSASMSXAAXMMMXMAMXMAMAXAXXSXXSAM
|
||||
MAXXMAXXAMAAXSXAAAAMMSXSXMXSXSASAMXAMAMAMMSMSMSXSSSSSMSMMXMAMASAMMMMXSMMMSSMSMXSXXMAXAXAAAXSAMASXMMAXAAMXAAMMMMSAXMSMXSAMXMSSSMSSSMMSXXAAMMS
|
||||
MAMMMMMMMXSXMMMSXSASAMASXSXAAXXSAMSAMAXAMAAAAAMAMAMAMXMMSAMMMAMAMSASMXMXAMAAXMASMMSMSMMSSMMMXMAMAASAMXMSSMXMAASMMMAXXASASAMAAXAAMAMXSMMMXMAS
|
||||
MMSSXAXAMMMMAMMAMMMMAMSMASMMXMASAMSXMSSMSSMSMSMAMSMSMMSASASXMSSSMMAMAAAMSSMMMMAMAXAMAAAXAMXSASXSXMMMSSMAXAASMXSASMSMMMSAMAMMMMXMXAMMMAXXAMAS
|
||||
AAAMXMSMSAMMAAMASAMXASAMAMMMMSMMMMMSAXAMAAAMXMMMXXAXAMMXSXMAMMAXSMXMSMMXMAMXMMMSSSMSSMMSAMXMASAMMSAMAAMMXSAMXAMAAAAXSXMMSXMMXMMSSSSSSXMAXSAM
|
||||
SMMSXMAASMSSSSSSSXSSMXAMMSMAMAAMXSAMXMAMXMMMAXXSMMAMAMMXMMSSXMAMXXMAMAXMSAMMXAXAAAXAAAMXAXXMMMAMASASMXMAAMAXAXMXMSMSMXMAXAMXAXAXAXAXMAXMASAM
|
||||
XAAMASMMMXMAAAXAXAXXMMAMAAMAMSXMAMMXSMXMSSSMMSAAAMSSSMXSAMAAMMASXSXMMSMAXAMMSASMSAMXMMASXMMAAXXMXSAMXAMMASMMMMSMXXMMMAMXSSSSMSSMMMMMXMASASAM
|
||||
SMMSXMMMMSMMSMMSMMMASMSMSSSMMXAMSXSASAAXAASAMMMMXAAAAMASAMMXASASXMASAASXSXMASAXAAXXAMXMAAAASAMMXXXAMXXMMAMXAAMAMMSMASXMXAMXAAAXAXXXSMAXMASMM
|
||||
MMMXMSMAAXAAMXMAAAMXMAAAMAXMASMMMAMASMAMMSMXMAXXMMMSMMMMAMXXXMXSASAMXMAXXAAAMMMSMSSSSXXMMMMXAMXMMSXMXSXMASMSXSASAXMASMMXSXXMMMSSMMSAMSSMMMMX
|
||||
XXMAMAMMSSMMXAXSSMASMSMMMMMMXSXAMMMAMXAMXAMAMXSXXMAXAMSSSMMSXMSSMMASMSMSSXMAMMXXAXAAXXAXXSAMXXAXXAASAMAMAXXAASMMXXMMSASAMAXSXAAAAMSAMAMAMASM
|
||||
MASASMXSAXAMSMMMAMAXMAMXASXSAMAMMAMXSXMMMASXMSAMXMAMAMMAMAXSAMASASMMAMXAAAMXMXMMSMMSMMXMASXMMSSSXSSMASAMSSMMMMXAAXSAMMMASAAMAMSSSMSAMXSAMSXA
|
||||
AMSAMAXMASXMASASAMXSMSXSMMAMXSAMMASAXAMXMMXMXXMASMXSSMSAMXMMAMASMMMMAMMXSMMASAASXAXAAXASAMAAAXAMXMXMXMMSAAXMAXMMSXXAMMSAMMMXMMAXAASAMXSXSAMS
|
||||
SXMAMSMMAMASASMSXXXXAMMXMMSMMSMSXMMASMMSAXAMMAMXSXAMAASXSMSMXMAXAAXXMSMMMAXAXMXSXSMMXXXMASMMSMMMASAMASXMMSMSMMSAMMSXMAMXSXSSXMXSXMMXXMMMMMAX
|
||||
MSSSXMAMXMASXMASAXSMMMAXSAMAAXASMMMMMXASXSMSAXSMSMXSMMMAXAAXSSSSSMMSAMXAXAMXSXMSAMASMSXSAMXXXAXXXMASASASAMXXSAMAAMXMMMMMXMAMASXMAASMMAAXSXSX
|
||||
XAXMASXMAMAMAMMMXXXAAMMMMASMSMAMASAMMMXMASAXMSXASMAXXAMXMMMSMAAXMAMMASMXSAMSAMXMAMAMAAAMAMSSSSMMMXAMXSXMASASMXXSMMASXXSMAMMSMMASMMAAXXAMSAMX
|
||||
MMMMXMXMMMSSXMXMMMSSMSAASAMMXMASXMAAAMAMMMMMXMMMMMAMMSAMXASMMMMMXMASAMAXSAMMMSAMXMSMMMMMAXAAAMAAMMMSMSASAMMMSSXXAMAMAAASAXXMXSXXMSSSMMSAMXMX
|
||||
SXSXSSSMSAAMMSAMXAXMAMXMMMMXAXMMMSXMASXSXMASAMAAAMMSMAMASXMAAXAAXAAAMMMMSSMMMSASXAXAASASMMMSMSXSXSMAASXMXMXSAMXSMMMXMSMSMSASAMXXMAAAXXXMMXSM
|
||||
SAAXMASAMMXSAMASASXMMSMMASMSXSASASASXXXAMXMMAMSMXMAAAXMMAASXMSSSSMSMXAXASXSAAMSMMSXSMSAXAAAXXSXMASAMXMMMAXMMMSMMMSXMXMAXMAMMASXMMMSMMMSAMAXA
|
||||
MXMASAMXMAXMXSAMXXAMAAAMAMXAXSAMASAMXMSSSXXSSMXAMMSSXMMXMXAMXXAAXAAMSSSMSASMSSXXAMXMMSXSXMMSAMAMSMXMAXASMXSAMAAXAAASMMMMMMASMMXAXAAXMASAMXSS
|
||||
XMXAMASXMXSAASXSXSAMSSSMSSMMMMAMMMXMMAAMAMXXMAMAMXMMMAXXXSMSMMMMMSMMAAMXMAMAXAXMASXMASMSAXAMAMAMAXAXXXMXMASASMSSMSXMAAAAAMMXASMSMXSASXSAMXAM
|
||||
MAMXXAMXAAMMXMAMXMMMXAXXMAXXXSAMAAAMAMXSASXMMAMAMAASXSMSAMXAAXXXAXXMMSMAMMMSMMMSMMMMAMASAMMSMMMSMSSSSMAMMASAMAAAMXXSSMSSSSXSAMXXASXAXASXMMMA
|
||||
SAMSSMMXMXMAAMAMAMXSMMMMSAMMMSASMSSSSXXMASAMSMSSMMMMAXAXMMSSSMMMMMMSAXMXSAAMAXAAXMSMASXSSMAAXAAAXMMAAAMXSASAMMMMMMMMAAMMMMMMXXMMMMSMMMMMXSAM
|
||||
MASAAAAXMASXMXAXXSAMASAXMAXAMSAMXMAMXXMMMSAMXXMAMSMMAMMMMMAMAMXASAAMAXAMXMSSSMSMSAAXAMMXAMXSSMSXSAMSMMXMMASAMXSSMASMMMMAAMXAAXSSMAAXXMASASAX
|
||||
XSMXSMMMMASAASXSMMAXAXSXMASXXXXMASAMXMXAAMAMXMASXSAMXXAASMSSSXSASMSMSMSMSAMXAAAAMMMMMMSSMMAMAMMMMMXMMXSSMMMMMMMASXXAAMXSMSMMSMAAMSMXMSXMASMM
|
||||
XAAXMMXAMASMMMMAMXAMXSMXMAMXAAMSXSXSAAMMMSAMXSMMAMMMMSMMSAAXAASAMXMAMXXSXXMXMMMXMASXXAAAXXSSSMSAASAMSAXMASAMXAMAMXSSMSAMXAMAAMSMMAXAMXMMXMAS
|
||||
XSAMXSSSSXMMMSSSMSMSMAAASMSSXSXAXMXSMSAAAMXSASMMAMXXXAXMMMMMMMMSMAMAMAMMMASXXSXXMASAMXSAMSAAXASMMXAMMMXSAMXSSSSXMAMXAMXMSMSSMMMMSMSXSAMSMMAM
|
||||
AXXMXMAMAMXAAXXMAAAAMMMMSAAXAMAMSXAXAXMMMMAMMSASXSSMSXMAXAXAMXAAMXSAMAXASAMAXMASMASMMXMASXMMMMMMSSSMAAMXSMXMXMAMMXSMSMSMXXAXAMSAAASMSMMAAMAS
|
||||
XSMSAMXMASMMSSMMSMSMSXSAMXMMXMAMMMMSMMSXSMMSAXMMMAMAMSSSSMSSMMSSSMMXSXSMMASMXSASMAMXMXMSMXXAASAMMAASMXSMMXAMAMMMSMMAMAXXMMMSMMMMMMMAMASMSSSS
|
||||
SMASXSASXSXXAAMAAXAMXXMXAASXSSSSXAXAAAXAXAXMMMMAMAMSXAXMAXSAAAXMMMSMMXAAMXMAAMASMSXMAMXMAMSSXSASMSMMMASAMSXXASXAXAMAMSMMAAXAXXAMMSMSMAMXXMAS
|
||||
XMMMXMMMMMMMMSMSSSMSMSXMAMXAXAMMMSMMSMMMMMMMMASAMAMAMMSSMMSXMSXSAMXAMMSSMAMSMMAMMAAASMSMAMXXASAMAAXAMAXAMASMXSASMSMMSAMAXSMMXSXSAAAXMAXXSMXS
|
||||
MSAMXMAAXAAAXXXXAMMAMMAMSSMMMMMMAMAAMXSMAMXMSMSASMSMAXMXMAMAXMAMXMSAMMAMXSMAAMXXMMSMMAXSAMXMXMAMMMSAMSSSMAXMASAXXAMXSMMSMXASXSAMXSXMSMMMXMAS
|
||||
AXAMMSXSSSSSMSAMXMMAXSXMASAAAAXMASMXXAXSSMXMAXMAMAAXMSXMMASMMMXMMAXXXMASMMMSMMMSMMMAMXMSXMAAAMXMMXMAMAAXMAMMMMAMMMMAMXXAASAMXMASAXXAXMASAMAS
|
||||
SXSMAAAXMMAAAAXXAMSMXMXMMSMMMMSMASAAMMMMMMASXSMSMSMMAXAMSASXAMSMMSSMXSSMMXAAAAAAMXSAMXMXMSMSMSAXXASAMMXMAAXSAMAMASMSXSMMMMAMXSMMASMMMSASAMAS
|
||||
MAXMMMXMASXMMMXMMXAXASAMXMXSSMAMXSXMASASMSASAMAMAMMMMMAMMMSXXMXXAMMXAMMAMMSSSMSMSASASAXAXAAMAMXMSMSXSAMSSMSAMSSSXSAMASXMAXAMXXXMSMMSAMAMXMAS
|
||||
AAMAXAXSAMMXAXMAXSASMSASXAXXAMXXAMXMXSXSAMXSMMAMAMXXMASMMMSAMXMMXSAMSMMAMMMMMXXMMAXAMXMMSSXMAXMASAMXMAMAAXSMXAXXAMAMAMASMSMSSMMXMXXAMMSMAMAS
|
||||
MSSSMSMMASXSASASXMXMXSAMMMAXMMSAMXXMASXMAMXMXMXSAMMAMXMAXXXXAAXMAMMMMMSMSXMAMMXMMXMMMMAAAXMSMMMMMAMXMMMSXMMXMMSMXMAMMMXMAAMAAAAAMSAMXAXSXMAS
|
||||
MMXMAMASAMAAAAXMMMAMMMAXXMAASAMASXXSASXSMSXAXXMAXXSAMASMMSMMMSMMASAAXMAXMASMSMAMSMXMAMSMMSMASAAXXSMSXSMXAMXAAXXXXXSMMMAMMMMSSMMXSAAXMXXAMXAM
|
||||
ASAMXMXMXMASMMXXAXAMAXASAMXXXAXAMXMMASAXAMXMXMXASMSASASAAAAXAXXSASMSSSSXMAMXAMASAASXMMMAMXXAMXMSAXAMXSAXXMAXSSMMMMXAAXAMSMXMAASMSXMMMXAXAMSS
|
||||
XMAMMSMSXXXAMXXMXSSSXSASAMXSSSMAXXASAMXMAMAMASMXSASAMXSMMSSMAMASAMAMAAAMMSSSSSXMMSMAASXSMMMSSMMSMMAMXMAMSXSAAMAAAASXMMXAAXAXAXMAXMSSSMMXXMAS
|
||||
MSSMAAAMMXSAXMXSXAAAASXSAMMMAMSSSSMXMMXSASXSASAAMXMSMXXXAAXMMMMMMMAMMMMMAMAAAMAMMMMSMMAAASAAAAASMSAMXMXMMAMMMMSXMMSAAASXSSMSMMMXMXAAAMXMXMAS
|
||||
AAAMSMXMAASAMAAAMMMMMMASMSAMAMMXAAXSSSMSXSAMASMMSAXAXMASMMAAAAXAAXASMSXMASMMMMASAAAXXMSMMMMSSMMSASMXMASMMAMASXXMSMSMMMSAAAXAAAXMMMMSMMAASMAM
|
||||
ASMMAMXMMMSSSMXSSXMXXMXMASXSMSXMXMMAASAMSMAMAMAMXXSMSXAAAXSSSSSSXSASAMASXSAAXSASMMMMAXASXXAXXMXMAMAASAAAMXMAMMSMAASXSMMMMMSSSMMMAAMAXMXXAMXM
|
||||
AMXSAXXAMAMAXXAMXAMSXMAMXMAMXSAASMSMXMMMAXAMSMSMAMXMAMMSSMMMAMAAAMMMAMMMAXXMXMASMMSSMMASMMXSXXMMXMSMSMSMMSMAXAAXMSMASAMXMXXXMMASASXASXSMMMSA
|
||||
AMASASMXMASMSAMXSSMAASXMSMXMAMMMMAAXXXXSMSSXMAAMSMAMASMAMAAMASMMSMMSSMXMXMSMSMXMAAAAAMAMAMAMMMSMAMXAXMMXASMSMSSSXXMXMAMAMMSAAMMMAXMAXAAXAAMX
|
||||
SMAMAMMASXSXSAMXAMMSMMAAAAXMSSXXMSMMMMMSAAXAMXMMAAXMAMMASXMSASAAXAAMAMAMAMXAAAASMMXSMMASAMXSSXAMSSMMMMMMMSAAAAAAMMSAMXSAMASMMXSMAMXMAXMMMXSA
|
||||
MMASAXSMMMMMXMXMASXMXSMMMMMSMAMXAXAAXXAMXMMSMAXSAXMMSMSASAMMXSMMSMMSXMAXASMSMSASASXAXSXSMSXMASMSAAAXXXAAXMAMMMSMMAAAXMAXMMXAAAXMMMXMAMXXSAXM
|
||||
MMAMAXAMXAAMASXMASAMAMAAAAXAAAMMMSMMSMASMXMXSXMASMMXAAMASAMXAXXMAXMMMSSSMSAAMXXMAMXXMMASXSAMMMXMMMMMMSSSSSMSAMXAMAXSXSAXMXSMMSXASASXMASMMMSX
|
||||
SMSSMSMMXSASXXAXAMXMASMSSMMMSSMXMAMAXXAMXAMASXMAMXXMMSMXMMSMSMMSMXSAXAAAXMXSSMSMMMSSSMAMASMMXSASXMSAMAAAAAASMSXMSMMXAMXMSAMXAMMXMASXMAXAAAAX
|
||||
AAAAAXMAAXASASMMSSXSAXMAMXAXAMXASMSAMMSSSXMASMMSMAXAXXMXXSAAAAAAAAMXSMSMMMAXXMASAAXAAMMMAMAMASASAMAAMMSMSMMMAXXAAXAMAMAXXAXMMSSMMAMAMAXSMMSA
|
||||
MASMMMMMXSAMMMAAXSAMXSMAMSXMASMMMXMASXMAMAMXSXXMASMSSXAAXSMSMSSSMSSXSXAMAMSSXSAMMSMMMMSMXSXMASAXAMXMMXAXXAAMAMMSMSMXAMSMMSMAMAMXMSSSMSMXAXXX
|
||||
XXMASXMAMMMMXSMSMMXMAMMAXSMMMMAMSMMMMMMAMSSXXMASMXMXMMAMXMMXAAAXAXMAMSXSASAMAMXMSAMXSXXMAXAMXMXSXMASXSMMXXSMSSXXXSXMSXMAAXSMMASMAAAXAAXSAMMM
|
||||
XASXMAMSXMXSAXAAAMSSMSSMMSMAASAMASMSMASAMXAXXMMMMASAMAXSAMXSMMMMMMMXMAMXXXMMSMSMSASXMMMSMSAMXMXMXAMXAAASMXMAMXAXASAMMAMMMMAXSXMAMMXMSMMMXAAX
|
||||
MMAXMSMMASAMMMSMMMAAMAXMASXSMSASASMASMSAMXMMSXMASASMSMASXSXXAXXAMXMMASMSSSXAAXSAMXMXAAXAAAXSAMXMAMXXSMMMAAMXMMMMMMAMMAMMASXMXAXSSXSXMSAMASXS
|
||||
AMMXXMASAMXSXAXMSMSSMMSMXSAXASAMMXXAMXMAXAXAAAMXMAMXAXXXAMXSAMSMSAXAXAAAAXMXSAMMMMSSSMMSXMAXAMXSMMAXXASMSMMXXXAAAMXMXAMXAMAMMMMXAAXAASMMAXMX
|
||||
XAMXMMMMSMMMMAMAAAMMAAAXXMAMAMXMASMSSXMSMSSMSSMAMAMSMSMMAXMAMAXXSASXSMMMMMXXMAXSAMXAAXAMMSXSMSAAAMXMSAMAMAMSASXSMXAXXSSMASAMXXMXMXSMMMMMXSAM
|
||||
SASAMAXMAXASMSMSMSXSMMSSXSAMAMSSMXAAAAXMAMMMAMXMMAMAAAMMXSMASXMASAAASXXSAMXXXMMSMSMSMMASAMAAAMXXMSMAMXMMMAMXAMXAXXSMMMAMAXAMSAMXXXXAAXXXAAXA
|
||||
AAMXSMXASXMXAAAXXXAXXSXMASXSXMAAXMMMSMMMXMAMXXAXSASXSMSMAMXASAMASAMAMAXXMAMMSAMXXXMASMAMAMSMSMSMAMMXMMSXMXSMXMMMMXXASMMMMSMMSMSAMSSSMSMMMSMS
|
||||
MSMXXASAMAXMXMSMSMSMSAMMAMAMMMSMMXMAMASAASMMMSMMMAXAMAXMAMAXMAMAMAXXMSMSSSSMAMMMAXSAXMASMMAMAAAMAMMXMAMAMAXXMAMXSXSAMMXXMAXAXAXMXAXXXXAAAAXX
|
||||
XAAAMXAAXAMXXXXAAAAXMASMAMMXMXMASXSAMAMSMSAAAAMAMSMSMMMSSSSXXAMMSSMXMXAMAAAXSMSMMXMAXSXSXSXSMSMSSMSAMASAMSMSSSXAAMMAMXMAMAMXMSMSMSSMXXSMSXMM
|
||||
SMMXASMSMSAMXMMMMSMMXAMMMMXXSAMXSAMXMXMXXSMMXXMAXAAXAXAXXAAMSMMMAAMXSMMMMSMMMAXASMMSMXAXAMMXMXMAMMXAXASXSAAAAMMXMSSSMSMXMSXXAMAXAXAASMMMMAXM
|
||||
MXMSMMAAMMAMXMASXMASMSSMSAAAMMSAMAMXMASXMMASASMSSMMSXMXSMSMMAXAMSMMAMAAAMAAMXSSMMAAAMXMMMMAASXMASMSSMAXMMMMMAMXSAAAAAAAMXMAXSMMMXMMMMAAASMMA
|
||||
SAMXAMSMXSAMMXAXASASMMAASMXXAXMASXMXSAMSAMMMAMAMAXASAMAMMAXMMXSXMAMASMMXSMXMAMAAXMMSSMMAAAMMXASXSAAXMAMAMAAXSMAMMMSMSMSAAMSMMAAXAMXXXSMMSXSS
|
||||
SASMMMXAASXMAXMSMMASXMMMMXMMMMSAMAAXXMXAMMXMAMAMMMXSAMAMSMSASMMASXSASMAXSMSMSSSMMSAMAASXSMSXSMMXMMMSXMAXMMSAAMSXAXAAAAAMXXAASXMXASAXMXAMXMAM
|
||||
SAMXSAMMMXSXSMMAXMXMASXXMAAAAAMASMMMASMSSSSMMSXMXSASAMXXXAXAMXMAMXMASMXMXAAAXAXAXMASMMMXMXSMAXSMMSXMAMSSMAXMXMAMXXMXMSMMMSSXMMSAMXMSAMXMAMAM
|
||||
MAMAMASAXAMXMASMSXMXAMMAMXXMAMSMMXXMAMXAXXAAMMMAMMXSAMMAMMMSMMMAMMMMMAASMSMSMSMSMSMMMAXXXAXMMMXAAMASAMMXMAMXSXSASXXSXXAAMAMAXAXAMMXSMSSSXSAS
|
||||
SAMXXAMXMAMAAMAAAASMSMSASMSMSMSMSXXMSSMMSMSMMAMMSSMMMMXMAAAAAAXASAAAMSMSAMAMAMAXXASAMXMSMXSXXXSMMSASASXMXMXAAAMAASAAAMSMMASMMMSMMMXMXAAAXSXS
|
||||
XASXMSSMSSMMSMMXMMMAAAXASXAXXAMAMXXXAAAXXAMXMAMAAAXAAMASMMXSSMSXSMSXMAMMMMXMAMXSMMSXSAAXXAMMMXAMAMMSAMXSASMXMXMMMMXMSMMASXMXAMMMAXMAMMMMAMXM
|
||||
SMMAXAAAAMAXXXAXSSMSMSMAMMMMMXMASMSMMSMSMSMSSSMMSSMSMSAMXSMMMAAXXXMMMASAAXMSXSASAXMASMSMMXSASAAMASMSASMMASXMXXXXAXAXAASAMXMMSMAXXMXXXAMMMSAS
|
||||
AAXSMSSMSXSMXMXMXAAMAMMXMAXAAASMSAAAAAAXAAAAAMMMAMMAAMASAMAAMSMSMMSSSMMMXSAAAMAXMMAXXXMAMXSASXSMXMAMXSAMSMXMMMMSMSMSMMMAMASAXMSMSMMMSXSAAXAM
|
||||
SSMMAMXAXAMXXAAMMMMMAMMXMASXMASXMXMXMMSMAMMMXMMMAXMMSMSMXSSMMAAAMAAAASAXMAMMMMXMSMMSASMSSMMMMMXMMMSMMSAMAAAXAAXAAAAAXXSAMASASAMAMXXMAAMMSMSM
|
||||
AAXMSMMAMMMMSSMSASXSXSASXMMAMAMXMMMMSSMMSXSSSSMSSMMXXXMMXAXMSMSMSMMSMMMSAXXMXMAAMAXSAMAAXXAAAMSAXAAAASASMSMXXXSMSMSMSASMXXMAMMMMMMXAMSMAMAAS
|
||||
MSSMXSSMSAMXAMMSMSAAXMAMMASXMASAMAAAXAAXXAXXAAAAMAMMMSAAXMSXMAXXXMAMASAXXXXMASMSSMMMAMMMSSSXMMSAMSXSMMAXXAXMSMXMAMAMMXMMMSMMMXAAAMXMSXXAMMMS
|
||||
XAAAAXMASASMASAXXXMMSMSXSAMAMXXMMSMSSSMMMMMMSMMMSAAAAMXAXXXAMMMAXMAMMMMSASMSASAMAXXMXMXXXMASMMMMMXAMXXAMSMSAMXASMXSXMAAXAAAAXMSSSSMXAAXSSMXS
|
||||
MMSMSSMAMXMXMMMSMMMXXAAAMXSAMMSMXAXAAAMAAAAXAXMMSXXMMMMAMSSMMMSMMMAXMAMMMAAAASASMMSSMMMMXSAAXSMAAXAMMMXXXAXMMXMMXSAMXMMXSSSMSMXAMMXSMSMAAMAX
|
||||
MMMAMXMAXAAXSASAAASXMAMSMASASAAXXAMMXMMSSSMXMMSAMMSMSASAAAAXXAAXAMAXXASXXMSMMSMMMAMSAMXSAMXSMASMMSMXAMXMMAMAMXMAMMAMSSMXXXXXAMMAMAAXAMMXMMSS
|
||||
SAMAMMXMSSSMXMXMXMSAAXAAMXSAMMSSMMMSAAXMAXAASXMASAAASASMSSMMMSSMSAAMSMMAMXXMASAAMSMSMXAMASAAAMMSAAASXXAMAAXASAMAMMSMAAXSMMSSMXSMMMXSASXSXAXM
|
||||
MASXMAMMAMAMSMSSMMSMMMSXSAMXXSAMAAAXXSMSAMXMMASAMMMMMASMAXAAAAAAXMMMAAMMMSAMXSMMSAXSXMXSAMAMSXAXMXMAMMASXXSASMMXMAMMXXAMXAAAMMMXAXAMAMAAMSSS
|
||||
MAMXSSMMMSAMXXAAAMXAAAMMXAXASMAMSMMSAXAMMSMASMMXSXMXMAMMMSSSSMMMMMXSMSMAASASXSAMXMASAMXMASAMXMMXSXMASMMMMAMAXXSXMASXSSSSMMSSMAMMSSXMSMSMXASA
|
||||
SASXMXAAAMASMMSSMMSSMXSASAMXXMAMMAXMXMAMAAAXMXXAMXSAMXSAMXMAXAAXSSMSAAMMMSAMAMMSASXMMSAXAMXXXASAMXMAXAXXMXMSMXAASAMMAAAMXXXXMASAXXXXMAXSXMMM
|
||||
AAXMASMXMMAMXAAAAAXMAMXMAMMXMXXSMAMMXSAMSSXSMSMAMAMAMXSXSSMMMSMMXAASXMMSXXXMAMAMMMASXMASXMSMSAMASMSMSMMSSXMAAMSMMASMMMMMMXMASASMMMMMMAMMXXAX
|
||||
MSMMXMMXXMAXMSSXMMXMASXMMMSASAAMMMMMAMAXXMAXAAMAMMSAMMMXMASXAAXAMMMMAXXXSAMXXMMSXSAMXMAMAAAAAAMXMAAMAAAAMASXMMAMMMMAMMSAAXAMMMSXAAASMMMSMMMS
|
||||
XMXMXAXMAMAMMMMXAMXSASXAAASAMMSMAASXSSSMAMSMSMSMSXSXSAMMXAMMMXMMAXAMAMSMMMSSXAAAXMAMXMASMMMSSSMMMSMSXMMASXMMMSMSAXMMMASAMASXMAMMMSASXMAAAAAX
|
||||
MMAMSSMASMSXSAXSMXAMSSXMMMMAMAMXSXSAAAAMMMAAXAAAMXMXSASMXSSXSXAXSSMMSXMAXXAXXXMMXSAMXMAXXAAXAAMAXMXXMSMMMAXAXAASMMSAMAMAMSMAMMXMXMXMAMSSSMSS
|
||||
MMMMAAMSXAAAMAMMMMMSXMXSMSAXMSSMXMXXMSMMASMSMSMSMXMASMMMAMAASXMXMAMAMAMMMMMSSMMMASASXSSSSMSMSMSXSXXMASAASMSSMMMMAAMAMXSSMAMAXXAXAMASXMAAAAMM
|
||||
MSMMSSMMMMMSMMMAAMMAAMMMAMXSXXAMXMAXAXXSASAMMMAXMXMAXMAMAMMMMAMSSSMSSSMAAAXAAAAMXSAMAAXMXAAAAAXAMXMAASXMMAAMXSAMMMSMMMAASMSMSSMMASAMMMMXMMMS
|
||||
MAAMMAXMAXAAAASMMSMSXMAMXMAMASXMAXAXXMASAMAMSMAMAAMMXSASXXMASMMAAAAXAASMMMMMSMMXAMAMMMMMMSMXMSMAMASMMMASMMMMAXAXXAAAAAMMXXMMAAASMMMSMASAMXAS
|
||||
XSSMMSMSSSSSSMSAXMAMMSXSAMXMAXASMXMXXMAMXMAMAMASXMXMASAMXAXXSAMMXMXMMMMXAXSXMASMMSMMAAAAXASAMXMXSXSASXMMASMMSSSMMSXSMSXXMSMMMSMMAAAXXAXAMMAS
|
||||
XXAAAXMXAXAAMASAMXXSAMASAMXMSMMAMASMSMASXSXXXSAXASXMASASAXSAMXMSXMMSSSMMSMMASAMAMAMMXSSMSASMMMSXMAXAMSXSAMXAAAAXAMAMXMAAAAAAMAXSMMMSMSMSMMSM
|
||||
ASXMMXMMXMMMMAMMSMMXAXAMAMSMMAMXSXMAASMMMMAAMMMXAMAMASAMASAXXAMXAAAAXAAXXMSAMASASMXSAMAAMAMXMAMAMMMMMXXMASAMMSMSAMMMAXXMSSSMMMMSAASXMMAMXSAS
|
||||
XXMASAMMMSMAMASAAAASMMXSXMAASXMAMAMSMMXAXMMMMAMXMSMMXMXMXMMSSSXSXMMSSSMMMAMASXSASAAMAMAMSAMAMASAAAAAAXXSAMAXAXXMASXSSMXMAMXMASASMMMAAMAMXSAM
|
||||
XSXASAMXAASXSAMXSXMASXAXMXMXMXMAMXMAASMSXMAAXAMAMAXAAXAMXAMXAMXMXMXMMAASMXMXMAXAMMMXXMXXSASXSASMMSSMSMMMXSXMXMXMAMMMMAASAMASMMASMSSMMSAMXMAM
|
||||
XXMASMMMSXSMMAXAMXMXAMXMAXSXMMSMXMXMMXAMSSSSSSSMSAXSASASASXMXMASXMAXSMMMAMXSMSMXMXXXSASXMMMAMAMMMMMMMAMXXMAMSASMAMMMMMMSAMASXMSMMAAAAXMXXSAM
|
||||
MMMXXXMXMAMASAMXSXSXMXMSSXAAXMASAASXMMXMAXAXAMMXMMMMAMAMXXXMASXSASXXMAAXMMAMAAAASMSXMASMSSSMSMSMAAAAMAMXASAMMAMAMXSMSMMSXMXSMMMAMSMMMSSSMSAS
|
||||
AAAXMSMAMXSAMXMXMASMMAAAXSMSMMASMMAAMSMMMSMMAMXXMASMXMAXXMASASXSMMSASXMMXMASMMSMSAAMMXMMXAAAAAAXSSMSMMMSXMAXMAMASMMAAMXSMMMMAASMMXXSMMAAASAX
|
||||
MSXXAAMMMAMMSSXAMAMASXMMMXSAAMMMMMSMMAXAAAXASMXXSASAMSSXSSMMASXSMXAXXMASXSMSAMXMMXMASAXSXSMMMSMMXXAMXMXSXSXMMMSAXAMSMSAMAXASXMSASMMSAMSMMMMM
|
||||
MAMMSMSMMXXXAXSXMASXMSMXSSMMSMAAXAAASMSMSSXAAXAAMSMAMAAAXASMXMAMMMMXXMASAMAXMAXXMAXSSMXMAMAXXAMXMMXMMSAMXAXSAMMAXSMMAMASMSMAAASXMAASXMMXSAMX
|
||||
MASAMASMSSSMMXAXMASAAAMXMASAMXSMMSSMMXXMAXMSMMAMMASAMMSMSAMXAMAMASMAMXXMAMXMASMSMSMMXXASMSXMMAMSSMSAAMXMXMASASXMAMAMXMAMMAASXMMASMMMSMAASASX
|
||||
SAMAMAMAAAAXXXMXMASMSMSASAMXMAMAMXMAMXMXXXMAMXMSMMAXXAMXMXMSMMASASMASXMSMMASXMXAAMSMSSMMASAASAMXAAAXXMXMXXXSAMASMMAMAMXSSXMMMASAMMSXMMMMSMMX
|
||||
MMSSMASMMMMMSMXMMXSXMASASXSXMAMXXMXXXAAMSSSSMXAAMXMSSMXMSAMXSXMMMMMASXAAXXASAMMMMMASAAAMAXAXMASMMMMMASAMMSMMAMAXMAMSMSMAMSAAXXMASXSAMXMASAAA
|
||||
MXAASXSASXSAXAXAXMXMMAMXSXAAMASMMSSSSXSXAAAAAMSMMMAAAMAMSASASMAXAXSMMMSMSMAMXXAAAMXMSSMMSSMMSMMAMMXMAMAXAAAMSMXSXAASAMMAMMXXSXXMMMSAMXMAMMAX
|
||||
MMXXMMMAMAMAMXSMSAAAMXSAXMSXMASAAAAMMMMMMSMMMMAAAXMMMMAMMAMASXSMMMAAAAAAXMXMSMSSSSSMAXAXAAMAAXMAMMAMSSSMSXSXXXAAMXMSAMSSSSMMMMMAAAXMASMSXSAS
|
||||
MSSXMAMAMXMAMMAASMMMXAMMSAMXMXSMMMSMAAXMAMAMXSSSMSSMASXSMAMXMAXAXAMMMSSSSMAMAAXXAAXMAMMMSSMXSXSASMXSAAAAMAMMAMXSASXXAMAAAAXAMAAXMSXMAMXAAMAA
|
||||
AAAASMXMSXSMXAMAMAMXMXAAXASAMXSASAXXSXMSMMSXMAXAAAXMMMAMXMMMAXMSMXMXXAAAMXASMSMMMMMMSSSMMMXMAASXMASMMSMMMAMAAMMMXAASMMSMSMMSMSSXSXMMSSMMXMMM
|
||||
SMMMMSAMXXAMXSXMSAMXASXMMAMAMASAMMSMMXAXAMAXXXXMMMSMMMAMASMAMMMMAASXXSMSMSXSAMXXASXMAAAMMAAMMMMAASXXAAXMSMMSMSAMXMMMSAAXXMAMXAMMXAXXAXMASAXX
|
||||
XAXXAAMMSSMSAMAASMXSMMASMSMSAAMXMASAMMMSAMMMMSMMXAXAASASXMMAMXAMMMMAXMAMAMAXMAXMMSAMMSMMMXMXXAXXMAXMMSSMAAAMASMSMXXXMXMAMSAMXMSASMMMMSMAMMXS
|
||||
SSMMSMXAXAAMAMMMMMASAMAMXMAXMMSMSMMAMAAXAAXAAAAMMMSMMSAMXMSSSMMSASMSMMAMAMSMMMSAXSAMAMXMASXSSSSSSMMSAAAMSSMMAMXSMMSSMMXAAMMSMMAMAMAAXAMAXMAM
|
||||
MAAAXXMSSMMMAMAAAMXSAMXSAMXMAXSAMXSASMSSSMSASXSMXAAAXXAMAMAXXAMSASAAMSAMASXAAASAMSXMXSAMASAAAAXAAXAAMSMMXAAMMSASAAAAAASASXSAAMSSMASXSXSASMAS
|
||||
SSMMSXMASMXSXSSSSSXSMMASMSXSSMMMMMSMSXXMMAMXMAMAMSSSMSSMXMASMSMMXMXMMAXSXSXMMXMSAMXXASXMMMMMMMMSMMSSXXMASXMMAMASMMSSMMSSXMSAMSAAXMAMXXMASXMM
|
||||
115
2024/04/puzzle1.py
Normal file
115
2024/04/puzzle1.py
Normal file
@ -0,0 +1,115 @@
|
||||
import itertools
|
||||
|
||||
|
||||
verbose = False
|
||||
|
||||
def scan_line(line):
|
||||
to_find = "XMAS"
|
||||
if verbose:
|
||||
if to_find in line:
|
||||
print(line)
|
||||
|
||||
return line.count(to_find)
|
||||
|
||||
def transpose(list_2d):
|
||||
outlist = []
|
||||
for j in range(max(map(len, list_2d))):
|
||||
outlist.append([])
|
||||
for i in range(len(list_2d)):
|
||||
# TODO: This is a weird edge case.
|
||||
if j < len(list_2d[i]):
|
||||
outlist[j].append(list_2d[i][j])
|
||||
outlist[j] = "".join(outlist[j])
|
||||
return outlist
|
||||
|
||||
def rotate(list_2d):
|
||||
x_max, y_max = len(list_2d), len(list_2d[0])
|
||||
diagonal_list = []
|
||||
|
||||
# Diagonals starting from (0,0), for the first row.
|
||||
for i in range(x_max):
|
||||
substring = ""
|
||||
x = i
|
||||
y = 0
|
||||
while x < x_max and y < y_max:
|
||||
#print(x, x_max, y, y_max)
|
||||
substring += list_2d[x][y]
|
||||
x += 1
|
||||
y += 1
|
||||
diagonal_list.append(substring)
|
||||
|
||||
# Reverse
|
||||
diagonal_list = diagonal_list[::-1]
|
||||
|
||||
# Diagonals starting from (0,1), for the first column.
|
||||
for j in range(1, y_max):
|
||||
substring = ""
|
||||
x = 0
|
||||
y = j
|
||||
while x < x_max and y < len(list_2d[x]):
|
||||
substring += list_2d[x][y]
|
||||
x += 1
|
||||
y += 1
|
||||
diagonal_list.append(substring)
|
||||
|
||||
return diagonal_list
|
||||
|
||||
def rotate_neg(list_2d):
|
||||
x_max, y_max = len(list_2d), len(list_2d[0])
|
||||
diagonal_list = []
|
||||
|
||||
# Diagonals starting from (0,0), for the first row.
|
||||
for i in range(x_max):
|
||||
substring = ""
|
||||
x = x_max - 1 - i
|
||||
y = 0
|
||||
while x >= 0 and y < y_max:
|
||||
#print(x, x_max, y, y_max)
|
||||
substring += list_2d[x][y]
|
||||
x -= 1
|
||||
y += 1
|
||||
diagonal_list.append(substring)
|
||||
|
||||
# Reverse
|
||||
diagonal_list = diagonal_list[::-1]
|
||||
|
||||
# Diagonals starting from (0,1), for the first column.
|
||||
for j in range(1, y_max):
|
||||
substring = ""
|
||||
x = x_max - 1
|
||||
y = j
|
||||
while x >= 0 and y < len(list_2d[x]):
|
||||
substring += list_2d[x][y]
|
||||
x -= 1
|
||||
y += 1
|
||||
diagonal_list.append(substring)
|
||||
|
||||
return diagonal_list
|
||||
|
||||
if __name__ == "__main__":
|
||||
result = 0
|
||||
|
||||
with open("input", "r") as fp:
|
||||
# Skip last line as it is empty.
|
||||
full_string = fp.read().split("\n")[:-1]
|
||||
for line in full_string:
|
||||
result += scan_line(line)
|
||||
result += scan_line(line[::-1])
|
||||
# Transpose for vertical hits.
|
||||
for line in transpose(full_string):
|
||||
result += scan_line(line)
|
||||
result += scan_line(line[::-1])
|
||||
|
||||
# Rotate 45 degrees to one side for diagonals.
|
||||
diagonal_list = rotate(full_string)
|
||||
for line in diagonal_list:
|
||||
result += scan_line(line)
|
||||
result += scan_line(line[::-1])
|
||||
diagonal_list = rotate_neg(full_string)
|
||||
# Rotate the other way round.
|
||||
for line in diagonal_list:
|
||||
result += scan_line(line)
|
||||
result += scan_line(line[::-1])
|
||||
|
||||
print(f"The sum of all horizontal XMAS's equals {result}.")
|
||||
|
||||
30
2024/04/puzzle2.py
Normal file
30
2024/04/puzzle2.py
Normal file
@ -0,0 +1,30 @@
|
||||
verbose = False
|
||||
|
||||
def x_mas_at(M, i: int, j: int) -> bool:
|
||||
# NOTE: Checking i and j are not on the boundary is wise.
|
||||
|
||||
top_left = \
|
||||
M[i - 1][j - 1] == "M" and M[i + 1][j + 1] == "S" or \
|
||||
M[i - 1][j - 1] == "S" and M[i + 1][j + 1] == "M"
|
||||
top_right = \
|
||||
M[i + 1][j - 1] == "M" and M[i - 1][j + 1] == "S" or \
|
||||
M[i + 1][j - 1] == "S" and M[i - 1][j + 1] == "M"
|
||||
|
||||
return top_left and top_right
|
||||
|
||||
if __name__ == "__main__":
|
||||
result = 0
|
||||
|
||||
with open("input", "r") as fp:
|
||||
# Skip last line as it is empty.
|
||||
full_string = fp.read().split("\n")[:-1]
|
||||
|
||||
x_mas_count = 0
|
||||
|
||||
for i in range(1, len(full_string) - 1):
|
||||
for j in range(1, len(full_string[0]) - 1):
|
||||
if full_string[i][j] == "A":
|
||||
if x_mas_at(full_string, i, j):
|
||||
x_mas_count += 1
|
||||
|
||||
print(f"The sum of all horizontal X-MASs equals {x_mas_count}.")
|
||||
Reference in New Issue
Block a user