despair day 4

This commit is contained in:
mtrx 2024-12-06 20:55:20 +01:00
parent 75d541877d
commit 199303ce82
2 changed files with 208 additions and 0 deletions

140
inputs/04.txt Normal file
View file

@ -0,0 +1,140 @@
SAMMSSSSXSAMXMSMASMMSMSSMMSSXMASMAMMAMSSMSMSAXSSXMXMSASXMSAMXSMMXAMXMMSMSSMXSAMXMMASMSMSMMMAXAAXXASXMMXMSSXMASMMSMXAMSMMMMMAMXSASAMXMMXSAMXM
SAAXAASAASXAAAAAMAAXMAAAMSAAAXAXMAXMSASAASAXAMAMXMSMMAXMAXAMXXAASMSMMAAXXAASASXSXSAMXSAMXAXMSMSMSMMASAMXMSXXAAMSAMMMSMMMAAMAMAXAMXSAMXMAMMAM
SMMMMSMMMMMSMSXSSSSMMMMMMMMSMMASMXXAMXSXMMMMSAMXAMAAMMMAMSSMMSMMSAAXMSSSSMXMAAXSAMXSAMMMMSXXAAAAAAMMMSSMAMMSSMMSASXMAAMSSXSASMMXMASASMAMMMAM
SAAXXMASAXAXMMMXAAXASAXXAMXXXXMMASMXMASAMXXAMSXSSSSSMAXAMXXAAAAAMXMMAAAAXXXMMSAMXMMMMMSAAMXSMSMSMSMMAXXMAXMAMAASXMASXSMAMXSASMSSMASXMXSXSSSS
SSMSSXASXMXSASAMMMMMAAXSAMXXMASMAMMAMXXXMMMMSMXAAMAAXXSSSMSMMSAXSAXASXMMMMXXSXMSAXAMAMMMSMASAXAMAMAMXSXXSAMASMMSASMMAMMSSMMAMAAMMASXMMMAMAAS
XAXXAMXSMXXSAXXSASMSMAMXAMXMMASMXMMSSSMAXMASMMMMMMSMMMAMAMAAXXXSXMMMMAMXMXMMMAASASXMMMXMAMAMAMAMASMMSMMAXMMASAMSMMXMSMAAAXMAMMMSMXXAMAMAMMMM
MSMAMMMMAXMMMMSMASAAXAMSSMSXMASMSMAAAASMMSMSAXMASAAAAMASASMSMASMMXAASAMXAAAAMMMMAAMXXSMSXMASXXASAMAXAAMAMXMASAMXSMXSXMMSSMMMMSAMMSSMMXSAXMAS
SAAXXAAXMXMAMMAMAMMMMXXAXAXXMASAAMMMSXMXAAMMMMMAMXSSXSASASAAMXMAMSMMMMMSSXXSXXXMSMSXMAMSAMXMASMMMSMSXXMASMMASAMASMMMXMAMAMSMMMAMAMMASAMMSAMS
SMSMXSSSMXSASAMMMSAXASMSMSMSMMMXMXXXXMMMMMXAAMMAXMMMXMAMMMXMSASAMXSMSXAAXMAMMSXMASMXAMXMAMXSAMXAAMXSXASASXMAMAMAXAASXMASAMAAXSMMAXSAMASAMAMX
MMAMAAAAAMSAMXXMASAMXSAMAMMAAMAAMMMXMASMSMMSSXXAXSMSSSSXMASXSMMASAMSAMMXSAAMASAXMASXSSMXASAMXSXMXXAMSXMASXMAMSMMSSMSAMAMAMSAMXAXMXMMSAMASMMS
ASASMMSMMMMSMXMXASXXXMAMAMSXSMSMSAAAAXSAAXAXMXMSMSAAMAMXMAMMXMSMMASAMMSXSMXSASAMXAXXAAMSMMMSMMASMMMXAXMMMXMXXMAMAAASAMXSMMXMXSMMSSSXSMSAXMAS
MMMSXAAXAMXAMASMASAXSSSMSXMAAAMAMXSMSMMMMMMXMXAXAMMMMAMXMAXAAMAXMXMMXAXXMAMMMMAAMMSMMMMAAAAAMMAMXAMASMSMMXAMXSAMMMMMASAAXAXSASAMAAXAMAMXMMAM
XSSSMSSSSSSMSASMSMMMMAMAXAXSMMMSMAMAXAMAMASAAMSMSMSXSASASMSSMSSSXAAXMXSMMAMAASXMXMAXXAXXXMXSMMASMMMAXMAAMMSAMSAMXSXMAMXSMSSMASAMMXMAMAMXAMAS
XSXMAMXAMAAAMMMXAAMSXMMSMMMMAMAXMAMMSSMASASMMMAAAXXASAXAXMAAAAMMXAMXMASAMASMXMXMAXXSSSSMXSAXASXSAXMSSMSXSAAXAXAXMSAMXSXMAXAMASXMXMSASASMMSAS
SMMMSMMMMSMMMSMSXSMMAMXXAMASMMMSSXSAAXXXMAMXASXSMSMMMSMXMASMMMAAMSMSMAMAMXXXSXASMSMMMAAAAMMSAMAMXMAAAXAMMMMMSAMMXMAMAXMSMSAMXXAXXASASXMAXMAS
MAAAAAASAXAAXAAXAXMSMMASAMASXMXMASMMMSAMMXMSASAMAXAAAMXSAXXXXMMXMXAXAMXMMSMAXSMXMAAAMXMMMSMSMMMMMSMXSMMSSSXAAAAXMSMMXMASAMMMMMSMMMMAMXMAMMAM
SSMSXSMMSMSMSMSMXMAXXMXSAMAXMAMXXXXXAAMSSMAMAMMMSMSMMMAXMASXMSSMSMMMXSAXAAMXMXXASMSMSAMSMAASAMXAAXMXXAXAAMMXSSMMMAMASMAMAMSMSAAAXXMXMMSMAMAS
XMAXXAXAXMAASXMMSMMMMSMSXMASMSXSXSSMMSXAXMAMAMAMAMXMXMXMMAMAAAMAAAXAASAMSSXSMXSXSXAASMSASMSMAXSMSSMAMMMMXMMXAXAXSAMASMXMASAAMSSMMSMXMAAXMSAS
SMAXSXMASAMMMAMAMAMXAAASASXMAXAXAAXAXAMXXSASASASXSASASAAMASMMMSSXXMMMSXAMMMAMAMAMMMMSXSASXXXSMXAXXMAMAXXASAMMMMMSAMASMXSMSMSMAMASASAMXMSMMAS
XMMMAXMASMXAXAMAXAMMSSSSXMAMAMMMSMSXMMSMMMXSXSASMSASAMSAMXSXAAXMXSASXSMAAASAMMSAMXSAMAMAMAMMAMXSMSXMXXMXMSAMXAAMXAMASAMXASAAMAXMSASXSAMAMMAM
SAMMMXMASXSASXSSSMSAXMAXAXAMXSXAMXSMAAAMASXMAMMMXMAMXMMMSMXXMMSAASAMASASMMSAMASASXMASMMMMSMAMMAXAXASXXSAAMAMSXSMMXMXXASXSMSMSMSAMAMAMMSMSMMS
SAXMXAMXSMMXAXXAAAAMXAAMMSSSXMMMSAMXMMSSMSAXAMXSXMMSMMMASAXXMMMMMSSMSMMXAASXMASXMASAMAAAAXXSXMMSSMMMAASMMSMMSAAASXMMSAMMXAXMAXMAMAMAMXAASAMX
SXMMSASASXXMASMSMMMSMMSSXAXMAMMMMXSAMXAMXSMMXSXAXMASASMASXSMMAXMAMAMXMSSMMMAMASXXAMXSSMMXSSMAAAAAXXMMMMXMAMAMMMMMAAXMMMSSMMSSXSSSMSASXMMSAMX
SAMXAAMASXMAXSAAXMAMXAAMMSMSAMAASASASMXSAMXMASXXMMXXAMMAXAXAXMSMMSAMAMMMAXSXMAXAMAMXXMXMASAMMMXSMMMXMMMXXAMAAAXXSMMMSXXXMAAXMAXAAAXMMXXXSAMX
SMMAMMMMMAMSMMMSSMXSMMSSMXAMMSSMSASMMMAMASASAMXASXSMMMMSXSXSAMXAXSASMSASAMXAMSMXAAXMASAMXMASAMXMXAAXXAXMSMSMSMSASAMASMSMSMMSMSMSMMMAXASASAMX
SMSMSAXSXXMAXAAMAMAAAXAXAMAMMXMAMXMMAMXXAXXXAMMXMAAMAXXXAMAMAXMXMMAMXXASXASXMAAMSXSAAMMSXSAMXSSSSSSMSXSAAXAXAMXMSAMASXSAAAXXAMXMASMSXAXAMAMM
XAASMMXAXSSSSMXSAMXSSMMMMMSXAAMXMAMMASAXSSMSAMMAMSMSASXMAMASMMMSSMMMSMAXXMXMMMSMMASMXMSAMMXMXSAAAXXXAAMXMSXSMMAXSXMASAXAMSMXSSXSASAMMSMMMSMM
MMMSMXSMXMAMXMAMXSAMMMXAXSAMMXMAXAMSAXMMMAMMMMMMMXAMXXXMMMMSAAAAAAXAXMXMSMSXAXAAMAMMMMMASXSSXMMMMMMMMSMMXSAAXSSMSXSMMMMSXXAMXAASAMAXMAAAAMAX
ASXMMAMXAMAMAMAMAMXSASAXXAMXXAASXMMMMXSAMAMXSAXMAMXMSSSXSAAMMMMXSMMMSXAAAASXSMSXMAMAAASXMAAMMSXXXAAAXXASAMXMMAMXXAAMAMMMMMAXMMMMXMAMMASMXSAM
MAAAMMXSASASXSMSSMMSASMXMAXXMMMMMXAMXASASMSMSASMMXAMMAAASMSSMSMXMXXAXMSSMXMAXAMXMMXSXMSAMMMMAMXSXSXSSXXMAMAXMSSMMMMMAXAAAXSMAXASXMXXXMAMXXXA
SSSMXAXAAAMAAAAAAAXMXMASMSMSMAAASXSSMMSMMXAAMAMAMSSMMMMMMMAAAAMMMAMMMXMAXXMAMAMMXSAMASXXMAMMXSAMMMXMMMSMSMSSXAAXXXASXSSSSSXAXMAXASAMXXAXMAMS
MXMAMXMMXMSSSMMSMMMMMMAXXAAAXSMMMAAMAXMASMMMMAMXMAMXSMXMASMMMMMAMASAAMSAMSMMSMMSAMASMXMASMMSMMMMAMMXAAXAAAXAMMSAMXMXAMAAMMMSMMSSMMAMXMMAASMM
SSMMSSMXAXAAAMXMASAMXSSMSMSMXMXSMMMMSMMMAAXASMSSMAMMMAASXSXMXSMMXASMSXMASAMAMXAMASASAASMMSASASMSSSMMXMMSMSMSAXXAXAMMSMMMMAAAAXAAMMAMAASMMXAS
AAAAAAAMMMMSMMAMXXASAXAAMAMMASAMXXAAAASMSSMASAAMSMSMMSMSMMMMASASMAXXXMASMXMASMXSAMAMMXSMAMXSAMAAMAASAMXXXXXASAXAMXXAMASMSMSSSMSSMSMSXMXMASAA
MSMMSXMXMAMAMMASXMMMXSMXMAMMAMAMSXMSSMMMAMMXMMMMSMAXXAMXXAAMSMAMAMSMMSMMMXSAMMAMXMAMMXXMAMAMAMMMSSMMXMASMXMMMXSSMXMXMXMAXAXMAMXXAAAXMSSMMMSM
XMXXXMMAMXXAXSASASAAXMAMSXSMASAMXAXAXXXMAXXSASXAMSMMXASXMSMSAMAMXXAAAAAAMMMMSMXMMMMSXMXSAMASAMAXMAMMMMAMMXMXMAXAAAMSAMMMMSMMMSAMMMXMAXAASAMX
MSMMSASMSSMMMMASAMMSMAMXSMXMAXXSSXMASXSSSSMAAAMXXASAXXMAAAXSXSASXSSSMSSMSXAASXMASAMXAMASMSMSASXSSMMAXMSXSAXAXXSMMMAAAMXXMXAXXMASXMASXSSMMASX
AAAAXMASAXAAAMMMMXXAAXMASMMMSSXMASMXMAAAASAMXMMMSASMSMAMMSXMASAMXAAAMXMASMMMSAMAXAXXAMASXSAMASAMXXSMSAMASXSMSAMXAXMSXMAXMMXMXXAMXMASAMAASXMX
SMSMMXMAXSMMXXSAMMSMSSMAXAMAAXXXAXMAMXMMMMMSAXAXMMMAAAXMAMAMAMXMMMMMMXMAXAAAXAMMSSMSSMXSAMXMAMAXAXSXSAMAMAAAAAMAXSXMMXSAASMMSMASXMASASXMMMAS
XXMMAAXSAMMSAMMASAXSAMMSSMMMSSMMMMSMMAMSXMXSXSMSAMMSSSMMXXMMSSMSXSMXMAMXXSMXMAMAAAXAXXAMXMAMXSSMMSXAXAMXMSMMMSMXSMAXAAMMAMAAASAMAMXSMMAMXMAM
SAMXSXMMASAMAMSAMMSMMSAMAMXMXMAAAAAMXMMSAMMSAXAXXMMAMAAXXXSAMAAXAXAASXMMXMAMSSMMSSMMSMXMAXAMASXASXMMMMMXMXAMXAMSAXXMMSXMXSMXMMMXMXMXASAMMMSS
MAMMXAXSAMXXSMMASMSAAMMSAMAAAMSSSSXSASXSAMAMMMMMSXMASAMMMMMASMMMMMSMSAAXAMAMAXAAAMAASAMSMSMSMSMSAMXAAXAXXSMXXAXSAMXSMXXSAMASXASAMXAMAMXSXAXX
SAMASMMMASXSAMXSXASMMXASAMASMXAMMXMMMSASMMXSXAXAMASAMAMAXASMMMXAXMXXSMMMMSSMMSXMMMSMMXMAMAAAMMMXXSSSXMXXASAAMSMMAMXAAMXMASASAAXAMMSAAMAMMMMM
SXMMSAAXSAMAMXMXMMMMSMASMMXAMMMMXMMSAMXMMXAAXASASAMASXSMSXSMAMSASMMMMAMXXAXXXXMXXAMMSMSXSMSMSAMXXMAMSXSSMMMMXXAMXSXMMAASAMXSMSSMMAMSMMAMAAAA
MMSASMMMXMASXSAXAXAASMMMMMMAMSSSMAXAXXMASXMMMMSAMASAMAAAXAMMAMMAAXMXMAMMMMSMSAMXMASAAMMXMXAAXMSMXMAMMMMAAAMMASAMAXMXSSMSASXXAXAXSXMAXSMSSSSS
XAMASXMASXAXXXSSXMMMSAMXAXSAMSAASMMSXXMSAMXAAAMXMXSXMSMXMMSXSAASXXSASASMAMXAXAMXXXMMMMSAMSSSSMAASMXMAAMXSMSMASAMXXAMXXMSXMMMSMXMXAMXMSAMXAMX
XSMXMAMAMAMMXMASMAMASMMMMXMASMSMMMAMMAMMMAMSSXMXSAMAAXMSMXAAMXMMMXSASAXXAMMSMSSMSMAASAXAXAAXAXXSMMASXSSMAAAMXSXMAMSMMSXMSAAXXAMSSSMMSMMSXMAM
SMSMSMMASAMAMXAMMAMXXAXSMMSMSAXMXMASMAMSSSMMMASMMASAMXAAMMMXMAAAXMMXMMSXMSXMXAAAAMXMMSSMMMXSMMSMMXMSXAAXMXXSAMAMMMMAAXAASXXMMSMAAAXMAAMXASMS
SASMAXMAXAXSAMSSSMSMSMMSAMAAMAMXMMMSXMSXAAMASAMAXAMAMASASXXASMSSSXMXAAMAAAXMMSXSSXSXAAMAXAAMXMXAASXMMSMMXAMXASAXMASMMXMMMSSXAXMMSMSSSSMSAMAM
MAMSXSMSMSAMXSXAAXAMAAMXXXMSMSMMXMMMAXAMSMMAMASXSSSMMAMAAASMSAXXAASMMASMMMXSAMXAAASMMMSAMMMSAMMAMXASAXSAMSAXAMMSSMSASAAAAXMMSXXMAMMAAXMAMMAM
MAMSXMAAAXXMMXXMMSMXSXXXMASMMAAAAXSMSMMAMAMXXMMAAAAXMASMMMMMMXSMSMXAMAAXAXAMASMMMMMAXXXMASAAAXMXSMSMSMMMMXAMSAMXAAMAMXSMSMXMASXSSSMMMMASASXS
XMMMMMAMMMMAASASAXMAMSMXAMXASXSMSMMAXSMASAMMSSMMMSMMMMXMAXXXAAXXAXSXMMXSXSMMXMXXSXSSMSMMMMMSMMMAAXXAXXMASMXMXAXSMMMSMMXAXXXXMAXXMAMXMXAMXAAM
MXAXAASXSAXXXAMMXSMASAMASMSMMAAMXAMMMAMASAMAAXAMAMAMXAAMSMSMMSSXMMMMMSAMAMAMMMXAXAAXAMXAAXMAMAMMSAMAMMSASASAXXXMASAAAMMXMASMSSSXSXMAMMXMAMXM
ASMSSMAMMMMSAMXSXSMXSAMMXAAXMSMMSMMXXXMASMMMXSAMXSMSSSXSAMAAXAXAMXMAAMASXSAMASASMMMMXMASXSSMSMSXMAMXMAMMSMMXMSMMAMMXAMXAAAXXAAXASXSMMSMASMMM
XAAAAMAXAMAMXXAXXXXASMMXMSMMXAAXMXSAMXSAMASXMXMXXMAMXAMSASMSMSSMMASMSSXMXSASXMAMXXAAXSXMAXMASXMASXMSMMXAMXXAMAAMSSSSSSXSSXMMMSMMSASAASXXMASM
SMAMXSMMMXXSAMMSMSMXMXXAXMASMSMMMAMASAAASAMMMAMSMMMMMMMSAMAXMAAASXSAAMAMXSMMMMSMMSASAMAMAMMAMAMXMAXXAAMSSMSMSXSXAAAAAAXMMMMSMAAXMAMMMSAXXXAM
XXSXMAAMSMMAXSMAAAAXSMSMXSAMAAMAMAMXMMMXMAMAXAXAAASASAAMMMAMMSSMMMMMMXXSAMXXMAMAAAXMASAMASMMXMMSMSMSXMXAAXXXAXMXMMMMMMMMAAXAXMSMMXMXMMMMASMS
SMMASMAMAAXMMAXMSMMXAAAAAMASXSSSSMSAAXSXMAMSMMSMSMSAMMSSSMSSXMMMAASAMXSMMMXMMSSMMSXMAXXXXSASXSMSAAASXMMSMMMMSSMAXAAXXAASMMSMXMAAXAXMXAXXXMXS
SASAMXAMMXMXXXAMXASXMMMSMSXMAMAAAMXAMXAMMSXXAASAXMMXMXAAXAXMXAASXSSXXXAAAAAXMAMAMXAMSSXSMMAMAAAMSMMMASAMMXSAMAXMASXSXMXMXAAXASXSMMSMSMSMXAAS
SXMASMMSSSSMSMMMMMMMAAAXAMXMXMMMSMMSMSMXXMAXMMMAMAAXMMMSMXMASMMXXAMAMMSMMSSMMASAMXAMAAASAMAMSMMMXSMXXMASAAAASXMXAMAMXSAMMXMSXSAXMXAAAAAMXMAS
MMSAMAMAAXSASXAAASAMMMXSAMXMAXXAAAAAAAXXXMSMSMMMMMASAAMXXMMMMMSMMMMMAAXAXAMMSASASMSMMMMMASXXXMXMSAXSAMSMMMSAMXAAMMAMASASAMMMMMXMMSMSMSMSXMAS
XAMXSAMMXMMXMASXSSXSXMASXXAXMXMXSSMMSMSXAAAAAXXMASAAMSSXAXASAAAAAMAXXSSXMASASXSAMAAAXAASAMXMAMAMSAMMAMXAXXXASMSMSMSMXMXMMXAAXMAMMAAAXAAXAMAS
MXSASXMAXMASMXMMMMAAXAMXMSSSSXSAAAXXMAMXXMMSMXAXMMXSXMAMASXSMMSSMSMSSXMXMXMMSAMAMMMMMAXMASXMAMAMMMMSMMSMMSSMAAAAAXXAXMASXSMSMSASXMSMSXXSMMAS
AAMASXMASMAXSAMXASMMMMSAMSAAAAMXSMMXMAMMMMXXMSMSXMAXAAAMXMMXMXAAAAMMAAXXSAMXMMMASASMXXMAXMASXSMSMMASAAAXMAMXMMMSMSMMMSMSASMAXMAMMAMXXMMMXAXS
SMMMMAMASMMMMMSSMSAAXAXMMMMMMSAMXAXXMAAAAMXSAAAXAMSSMMMMAXMASMMMSSSSSSMAMXSAXXSMXAXXXXXSAMXAAXAAXMASMSMSMMXAXAMAMXAXAXMXAXMMSMAMSMASMMAASXMX
MXSASAMMSAASAMXAASMMMMMSAAAAXMXASMMMSSSSSXMMSMXMAMAAMAXSSSMAMAXXAAAXAAMSMMSASMMMMSMMXSAXAXSMMMSMSMMSAAASXSMSMMXASMSMMSAMXMMAAMAMAMASASMMAMMX
MASXSASAXMMSASXSMSXSMAASMSSSSMMXXXMXAAMXMMAMXSMMAMSSMXMAAXMASMMMMMMMXMAXAMMAMXAAAMAAMAAMSMMAXAAXAAXMXMXMAMMMAAXSXMASXAAAAXMASMAMMXAMXMMMAASM
MXMMMAMMMMXXAMAMAXASAMXSAMXXAAMXMXMSMSMAMSMSAMXSAMAAMXSMSSSMSAXXAAMAMXASMMMMMSMMXXMXSMXMAXSAMSSMXAMXAMAMXMAMMMMMASAMMMSSMXXXMMASXMMSSXXMSMAA
XAAAMAMMXSXMXMXMAMMSAMXMAXXSXMMMAAXMAMMAMAAMAXAMAMSMMAXXAAAXXMAXSMMAMSXSASXAASAASXSMSXSAMMMMXMMMAAXXASAMAMAMAAAMAMASAAXAXMMAMMXXAMXAMAXAMXXM
XXMMMMXMASAMXXAXXXXSMMASMMMMMSAMMSSMXMSXSMXMSMMSSMAMMMSMMSMMMMXMAMSMMMASAMXMXSMMXAAAMAMXXSAMXSASMMSXASASMSSSSSSSMSMMMSXAAXAAMASMMMMASMASMMSS
MSSSMSSMMSXMASMSMAXSXSXXAMXAASAXSAMXAAXXMXMAXAXAAMAMXMAXAAMMMAASAMASAMXMMMSSMMXSMAMMMSMMMXAMAMAMAAXMMMMMMAMXAAAMAAXMAXMMMASXSASAMXSXXXAAAAAA
XSAAMAAAXMXMAMAAXXXSXMMSMMXMXSAMXMMSAMSXSXMASXMMSMSSSXSMASXAMSXSASAXMXXMAAXAAAAXMSAXXMAMXSXMXMMMMMMMXAXAMAMMAMASXMMSAXMASAMXMMSXMAAMMMSSMMSS
XMAMMSSMMMAMAMSMSMAMAMXASMXMAMXMAAMXMASXSXMASXASAMMAMAXXAMMSXMASAMXSMSMSAMSSMMSSMMAXSMSAASXSXAAXAAXXAASMXSMMXXASAMAMMMXAAAMXSAMXMMXSAAAXMAMX
MAXMAXAXXMAXAXAAXAASAMMMSXMXSXAMXSXAMASAMAMASXMMASMAMMMMMSAXAMAMMMMSAAAXMXMAMAAAAMXMXAMMSMAMSSMSMSMAAXXMAMAAXMASAMSSXMMSSSMAMASMSAMMMSSXMXAM
ASAMXSMMSSSSSSMSMSAMXSAXMASAMXSMXMXXMASASAMXMASXXMMAMMAAMMASXMAXXAAMXMMMSXXAMMSSMMAAMXMSAMAMMMAMAMASXMSMAMAMXSXSXMASAAAAAAMXSAMAMASMXAXAMSAS
MMASAXAXAAAXMAXXXAMXASXXSAMASAMMAMMXMXSASXSXSAMMSMSMSSSSSMAMXXAXMMSSSSSXMMSMMAMAASXSMXMXASMSAMXMAMMAXMAMASASAMAMMMASXMMXSAMXMAXMXXMAAMSMMAXM
AXAMASMMMMMMSMMSAMXMXSAXMXSAMXSMAXSMMMSMXMAAMMXAAAAAMAMAMMMXMMMSAAAAXAMAXAAAMXSSMMXAXSMSMMXMMMXMXXMMMSSSMXMMAXXMAMASAXAMXAXSASMXMSAXAMAMMMSM
MMMMXAXXMAMMXXAXAMSMMMXXXXMAMASXMXXAXAXMAXXXMAMSMSMSMMMASASAAAAMMMMSMMSSMSSSMXMASXSMMAMAXMASAMSMSMSXMAMXAMSSSXSMSSXSAMSSSMMSAMXAAXMMXSXMAXAX
XAXAMMXMAAMMMMMSAMAXXAMMSXSAMXSAMSSSMSASMSMAMAXMAMAXXXSMSASMSMSSXMAXAXMAMAXAMXXAXMAXAASMMSAXMMAAAAMXMASAMXMAMAMAASAMXMAAAXAMAMMMXXSAXSASXSMS
SXSMSMAMSXMAAAXMASMSMASAAXSMSMMMMAAXAMMXAAMAMMSMAMSXMAXAMAMAXAAMAXAMMSMSMMMXMMMAXSSMSASMAMMXSXMXMSMXSAMAXAMAMAMXMSXMAMMSMMXSAMXSAXMASMAMMAXX
SAXXAMXXAASXSXSAASXSAMMMSMSAAMASMMMMMMAMXMSAXSAMAMXMSASXMSMMMMMSXMMSXMAMMXMSAMMSAMXAMAXMSMSASXSXXXAXMASXMASXXAXXMXMMAMXMXSXXASAMMSAXSMMMSSMM
MAMXMAMXSXMXXXAMXXXMAMMMXAMSMSASAMXAAMMMAMMAMSAMXSXASASAAXXXAXXXXSAAXMAMAAASAAAXMASXMMMMASMAMAAAMMMMSMMMMASASMSMMAASMSMMAMXXSMXMAMXMXASAAAAX
MSMSMSMAXMSXSAXMASMSAMXAMXMXXMASAMSSXMASXSMMMMMMXMMXMAMMXMSMMMMMMMMMXSAMSSXSMMMXAMXAAXMSMSMSMAMMAAAAXAAXMASAMXAAXSMMXAAMSSXXMASMSMAMMXMMXXMM
MAAAAAMXMAAAXMMXSAASASMMSMMMXSASAXMXSMXXAAXMASASMXMSMAMXAMMMSAMAAMSSMSAXAMMXAAXSSMSSMXXAXSAMMAMXSXXXSSMSMMSXMSMMMXAXMMMMXAMXMAMAASXXMSSSMSXA
MMSMSMSSMMMSMAAXAXXXAMXAAAAAAMASAMMAMMMMSMMSXSASASMAMAMSMXAASASXMSAAASXMASMXSMXXXAMAMXSMSMMMSASAXMSMAMMXMAMAXSAMSSXMAAASXMMSMSMSMMXAXXAAASXS
SMXXAMAMXAMXXMASXMXSAMMXSSMMSMMMAXMAXAXXAAMXAMAMMASASAXAMSMXSXMASMXMMMSXXAAXMMSSMSMAMAAMAAAASASXMAAMAMSMSAXXMMAMAAXSSMXSAMXAAAAAMMSSMMMMMMAM
AMMSMMSSSSSMSXMAXAAAXXXXMAXAAASXXASMSMXSSMMMMMAXXMSMSXXAMAMMSAMXMAAXASXSAMMMXAAAAASAMXSMXXMMMAMAMSMSAMXAXMMSASMMMSMMASASAMSMSMSMSAAAAMSMXMSM
MAMXAXAAMMAAMMMAMMMMSXMSMAMMSMMXMAXMAAAMAMSSSSXSMXMASASMMASAMXSXXMXMXSAXSXMAMMMSSMXXXMMMMASXMAMXMXAMXSMSMAAMMMAAXAXSAMXSAMSAMAAXMMSSMMAMAMAM
SAMXAMMMMSMAMASXMXMXSAAAMASAAAXSXMSSMSMMAMAAXMASAMMAMMAXSXMMXSAMMMSMMMAMXMASXMXAMXXMSMAASAMASMSMAMMMMXAAMMMSMMSMMMXMSSMSXMMAMSMSXXAMXXMXMSAS
SASMSMAAMMSXSMSAMXSAMMSMSMSMSSMMMXAXXMASMMMSMMMMSASASXMMSMSAXMASXAAAAXMASXMAMXMMMMSAAMXMASXAXMAMXASAMXSMSXSAMXASAXXAAMXMMSSMMMAMMXXXMMSAMSAS
MAMAXMXMMAMXMASAMAMASAMXMMMXXMASAMMSMSAMMXMAMXXAXXSASXXASASMXSAMMSSSMSMAMXSMSMAXAAMSSMSXAMMXSSXMSASMSAMXXMSAXSASMSMMMSAAMASMAMAMMSMSMAMAXMAM
SSMSMMASMSMSSMXAMMSAMASXMASMSSMMSSXXASASAMXSSSMXSMMAMMMXMAMAAMAXAMXXXSMMSASXAMSMMXXMXAXMMMAMAAAMXAXAMASXXAXAMMAMXMASXXXSMAXMASMAMAAAMASXMMMM
SAAXAMAXMXAAMXSAMXMASXMMXAMAAASAMXMAMMAXXMAMAAXMMAMXMASAMAMMMSSMSSSMMSAAMASMXMMXSXSMMMMXASMMMMSAMMMMMMMAMSMSMMAMSSSMASXMMSXSAMXAXMSMSXSASASM
SMMMSMSSMMMMSMASXXSAMXMMSMSMXMAMSAMSAMXMMMXMSMMSSMMXSASASASXXAAAAXAMXMMMMSMMXAMXMAMXAMXMMXXAXXAMAAASASMXMAAAAMMSAXAXXSAAXAASASXMSAMXMASAMASX
XSAAXAAAAXMAMMAMXMMMMAXAAAAXMAAXSASXAXMMXSXAAMXXAAAXMXMASAXAMSSMXSMXXXXXXMASMMMXMAMSSXXAMMSMMSMXSXSSXSXASMSMSSSMMSMASMMMMMMMAAAMAMSSSMMSMSMM
SAMSSMSXMMMASMMSAXAAXSMSXXMSMMMXMXMMAMXMAMMSMSMSSMMSXSMMMXMXMMMAASMXSASMSMAMAASXSMMXAAMMMAAXAAXXXXAMAMMXMMXAAXAAXXXMAMAXXSXMMMAMXSAAAXAXXMAS
SAMXAXMASASMSAASMMMXSXAMSSSXMAMMMXMXMAAMAMXXAXAAMAMXAMMXAAXAMXSMASAAMXMAMMXSSMSMXSAMXMSAMSXXXMSMMSMMASAAMSMMMSSMMMMSMSMMMMAXXMSMSMMSMMXMAMAM
SXMMMMMASASAMMMSMSSSMMXMAXSASXMAXXSAMSXMASXMSXMSSSMMAMAMAMSMSAMAMMMMSMMSMMAXXXMAXAMAAXSAMAMMSXSAAXXAAXXXMAXXAXAAASAAXAXAAMMMSXAXXXAAMAAXAMXM
XMXXXAMAMAMAMXXMAAMAAMSMXMMMMMSMSMSAMMMMSMMAMAAMAMXXMAAXXXAAMXMASXMAAMAAAMMSMMSSMSXMMXMXMASAAASMMMSMSSSXASMMXXXMSASMSSSSXSAAMSSSMMSSMSXMXSSS
SAMMSSMSSXSXMMSMMMSSMMAAAMAXMXAAAASXMMAXAAMAMMXMAMSMSMMMMMMXMASASAMXSMMSXMMXAMAMXMXMMSMMSASMMXMMMAAAXAMMMMAMMMSMMMAMAAAASXMMXAXAXXMAMMMSMAAS
AXAAXASAMXMAMAMMMMMMMSXXMXAMXMMXMXMMXXSSXSMSSSMMAMAAAASMXSXXXAMMSAMXXMMXASXSMMMSASASAXMAMASXXAAASXMSMAMAASAMAAAAMXSMMMMMMMASMMMMMMXMMXAAMMMM
MXSSSSMMSASAMASAAAAXMASASXSSSMXMSMSAXXXSAXAMAAXMASMSMMMAAAMMMMSMXAXASXASXMASAAXMXSAMMSSSMXMASXMMSMXMAASXMSXMMMSMMAMAAXAXAXMSASASAMAASMSMSASX
XXMAXMAXAASMSXXMSXSXMAXXMAXAXXAAAAMSSMAMSMMXSXMAASXXMXSMSMXAAMAMSSMASMMMAMAMAMXSAMXMMAMAMXAMXAXAXMASXMSXXMASMXMMMAXMSSXSSSXSAMXSASXSMAXXSASM
SAMXMSMMMAMXMXMXMMXAMAXMMSMAMSSSMSMAXMAMXMMMXAAMXSXXXAXXAXMSMSAMAAMMMAXSXSASAMAMASXXMSSMSASXSSMMMSASASXXMMAXMASAMMSMMMMMAMXMMMXSXMMAMMMXMXMA
SSSXMAMSMASASMMMAAXAMSSMAMMAMMAAXXMAXSXSAMAAXAMXXMASMSMSMSXAXSMMMSMSMSMAASASMMXSAMXSSMMXSAAASMAXAMXSMXMMMMMSMSMSAAAMAAAXASXMASMMMSSSMSSXMMMS
SAXAMAMXMMSAXAASMMSSMAAMAMMSSMSMMMMXXAAMMSMSSSSXXMAAAAAXASMMMMMSSXXMAAXMAMMMXSMMXXAXAAMAMMMSMSSMMMAMXSMMAAMAMAAAMSMSSSMSASASASAXAAXMAMAXMASA
MMMMSMSMMMMXMSAMAAAXMSSMMXAXXMMAMSASMMMMMAMXAAAMSMSMSSSMAMSAASASASAMSMMXXXMASAAASMSSSMMASAXMAAXSMMXSAMAMAMMASXSMXXAMAMMXMSXMASXMMMAMAMMASMSX
ASAMAAAMMAAXXAASMMMXAMXMAMSSMXSAMMASXAXMSASMMMMMXAXXAAXMXMXXXSMMAMXMXAMXSAMXXXMAXAAXAXXASASMMMXAXAMXXSAMXSSXXMAAXMXMSMSAMMXSXMXAXMSXSSXAMMMM
AXAMMSXSAMXMMSXMMAXASMSMMXAAAXSASMAMXXMASXMASAXAMXMMSMSXMASMXSXMMMMASASAMXXSMSSSMMMMXXSASAMMSSSSMMSMMSXSAMAMMSSMMXXAXASASAAMAMSSMXAAMMMXSAAM
MMSMAMAXASXMAMXAMXSXXAXASASMMMSAMMSSSMSMSASMMSSSSMXAMXMMSAMXAMAMMMSAMSAMXMASXAAXMAXSAXSAMXMXAAAXXAAAAXAMMSAAXAAAXSMMMMMMAAMMAXMASMMXMAXAMMSS
XAXMMMASMMXXSAMXMAAXMMMAMMXAMXMMMMMAMAAAMAMXAMMAAMMMMAAXMASMMXSMAAMAMMMSSSMSMMSMSAXMMMMAMSSSMMMMMMSSMMMMMSMSSMSMMXAAAXAXMASXMMSXMXSASMMMSSMM
MMSAXMASAAXXMMAMMSSXAAMSSMSSMAMMMSAAMSMSMSSMMSMSMMAMSSSXSAMMMAXSMXMSMXXAASAXAXAMMMMMAAMAMAAAMXAAXMAXAAMAXMAAXMAMXSSMSMXSXASASXSXAAMAMAAXMMAX
XASAMAASMMMMXSAMMMMMSXMXAAAMMXMXAAMXMAXAAAAASXXAXMAMAAXAAMMSMAMASMAMXXMMSMXSXMASAMASXSSSSMSMMXSMMMASXMSMSMMMMMAMXXAXMXMMMMSAMAXXMXXAXSMSXMXM
MMSSMMMXASXSASXSAAMXXMXSMMMSMSMMMSMSMXSMSMSXMMSSSSSMSSMSMMAXMMSAMMAMASAMXMAMAMXMAXMSAAAAAXMASMAMXMAXMAAAXXMASXMSMSSMMASAAMMMMMMXSAMSAXXXAMMS
MAMXXXMSXMAMASASXSMMMMMAMAXXMAAAAAAXXAMMXXMAAXAAMAAAXMAAAMXSAAMMMMASAAMXMMSSMSMSSMAXMMMMMMSAASAMSMSSMSMSMMMAMAXAASAXXAXXXMAXAAAAMAXXASASMMAX
MSSSMAMXSMXMXMAMAXXAASMMMASMSSSMSMSMMASASASMMMMSMSMXMMSXSMMMMXSXSSXMMSSXXAMAAXMAXMXMMXXASAMXMMXMXAXXXXXXAMMSMMSMSXMMMSSMSSMSSSSXMSMMAMMAXMMS
XAAAMMMAXXXSSMSMMMMSMMASXSXMAMAAAAAXXSMAMAXXAAXMAXXMXXMAMXAAMMXAMXMASAAXSASMMMMASMSMSASAMAMSXMMSMMMMMMASXMAXXXAMXMXXXMAXXAAXXMAMMAMMXMXMXXAM
MMSMMSAMXMMXSAAXMAXXXMAMXMXMASMMMSMXSAMSMSMSSMSMAMXAMAXMASXSSMMMMASMMMSMSASXSXMASMAAXASMSMMXAMXAAAXMAMAXASASMXMXSAMXXSXMSSMXSXXMSMSSSMASAMMS
XAAXXMAXAMMAMMMXSMSAMMSSSMASMSXXXAAXXMMAAMAAXAXASMMSAMSMMMMAAAAXXXSXAXAAMAMAMAMXSMMSMMMMAMSSMMSSSMSXSSMSXMASMXSAMSMMMMAAMXMAMMMXAXSAXSAMASAA
MMSSMSMSMSXXSASXMAMXMAXAXMASMXMMSMMMSSSMSMMMMMMMMAXAXXAXAMMSSSMMMXMXMSMSMXMMSAMAXAXMXAASMSXASAAMMXSMXAASAMAXAAMMXAMAAMSSMAMASAAMMXMMMMXSAMXS
MXAAXAAAAMMMMASXMSMSMXSAAMASXMAMAAMSAMXMXXXMMAAASXMSMSXSXXMAMAAXSXMAMAMAMMMXMASXSAMMSSXXXXXMMMSSMAMAMMMSAMAMMMSSSMSMXMAAMXSSXASXMASXSAMXASAM
XMASMMSMSMAAMAMMAMAAAXXAAMASAASXSSMMXXAMAMXMMSSMSSMAAXASMSMASMMMMAMSSMSAMAMSSMMXAMAMXMASXXAXAXXXMMSAXMASAMXXXXAAAASAMXSSMMSAMXMXSASASMASXMAS
MXMAMXAXAXXSSXSASMSMMMAMMMMSASXMAMAXSMMXAAMAAXXMMAMMMMMMAXSAMAMASXMMAMSMSSSMAAAMXSAMMXMAMXMSSSMMMASASMASXMAMMMMSMMMMMAMXAXMASMSXMASAMMMAXMAM
AAXXSSMSMXSAMAXMXAAAASAMAXXSXMMMMSXMXASXSSXMMSAMSSMMXSAMSMAMSSMAAMMSAMXXAMAMSMMMASASMXMSXSXAXAAAXMMMMMMMMXXAXXAXXAAAMXXSMMSAAASAMXMXXXXMXMAS
SASMXAAMMMAAMMMMMSMMMMASXSMXAMXXAXMXMMMAMXMMXSAMAMAAAMAMXAMXAXMMMXASASXMMSMMMXXMASAMXXXMASMMSMMMMAAAXASAMXXSXMMSSSXSAXAASAMSSMSXMASMMMMXASMS
MASASMXMAXSSMXAXAMMXSSMMAMMSMMXMMMAMAXMXMAMSAMXMXSXMAXAMMSXMASXMXMASAMMXAAAAMSMMMMASMSMMXMAXXXAMXSMMMMSASMMMXXAAMMAAAXSAMXMAMXMAMXSAAMASMSAM
MAMMXXAMMXXAMSSXMSMAXAXSMSMAAXMASASMSXMASAMMMMSAMXXMMSXSAXXSXSASAAMMAMSMSSSSSXMAMXAMMAMXMSSMSMMSAMAXSASAMAAXMMMSSMSMSMMAMXMSMSMSMMMMMSAMMSMS
MMMMMSSSSMSAMAXAAXMSSMMMAAMMXXAMXAMAMASASMSXSASMMMXXAAXMMSAMAMAMXMXMASAAMAAMAMXASMSMSASAAAMSXAAMASAMMXMAMSMSAMMAXXXAAXSAMAXASAAAAAAXXMASASXX
AMAXMAAAAMSAMASMMMMMAAAMSMSMMSSMMSMMMAMASAXAMMSAAAMMMMSXMMAMXMMMSMMXXMASMMMMSAMSAMXAXAXXMMSAMMMMXMMMSXSSMMMAMXMSSXMXMAXMMMSXXMSMMMSSXSAMXSMM
ASASMMMSMMSAMXSAXXXXMMMXAAXAXAAAAXAXMMMXMMMXMASXMMSAASXMSSMSMSAAAXAXSAMXXAMAXAMXASMMMAMXMXXMSXSXAAAXXMAMXXMASMMMMAXAXMXSAMXXMXAXXMXMASXSMSXA
XMASAXXAXXSAMXSXMAMSASXXAMSMMSSMMMAMXMMAMXMXMXMAMASXSXAAMAAAAXMMMSSMSAMXSXSAMAMSASAXXMAXMAMXAASXSMMXMASMMXMAMAAAXXSMSMAMAMAASAAAMSMSXSAMXMMX
XMXSAMSSSMXXMAXAMAASAMMXXMAXAAXXSAMMAXSMSAMASAXAMXSMMMSSSMMMSMMSAAMAMXMASMMMSXMMASXMMSMSASXMMXMAMXXMSAMAXSMMSMSXSAMXAMMSMMMXAAAMSAASAMMMASMM
XXAMAMAAAMXXMSSXMXMMSMMMMSASMXSASAASXMXMAASAMMXSAMXAAAMMXXSAMASAMXSSMSMAMXAAAMXMXMMMAAAMXXAMXMMAMMMMAAXXMMAASXMMSASXMXMAMSSSMXSXMMMMAMASMSAS
SMXSMMXSAMMAAXMASMAXAXAAXXXXAAAAXXMXXXMAXMMXSXAMAXMSMSXSXMMAMXMMMMAAASMMMSXSMXMAMAAMMMSMASMMAMMAXAAXSSMSMXMXMASASAMMSAMMAMAAXAMAMXSSXMASXSAM
MAXMMAMXAAMMSMSAMSMMMSSSSSSMSMMSMSMSSSSXSAMXAMSSMSAMAMMMASXSMSXXXAMMMMASAAMXAXSAMMMXAAAMXXASASMMSXXMAXAAAXMAMMMMMAMAMXSMAMXMMSXMMAAMMMASXMAM
MSMMAMMMMMXAAXMMXAXAXXAAAAXAMXXAXAAAAXAASAMXMAMAAMAMAMASMMAXAMXMAMXAXXAMMSAMXMSASXXSMSMSXMMMASXAAASMMMSMSMSASXASAMMSSSXMASMSMMASMMSSSMMSMXAA
AAAXXMASXSMSSSSMSXSMMMMMMMMSMMMMSXMMSMSMXMXXXSXMXMXMXSXMXXXMAMXMASMSSMSSXMXSXASAMMXAMXMXXAXMXMMMMXMAMXXAXAXAXMAXAASXMMASXMXXASAMMXAAXAMXASMS
SSSMSMASAAAXMMMASMSASASMSMAMAMMXSMMXXAMXAMSMMMXMASXMAMMMMMMSXMXSAAAAAMAMXXAMMMMAMXMMMSASMSMSMMASXMSMMAMMMMMMMSMSSMMASMMMMMSMMMMMSMMSSSMSMMAA
MAAAXMAMMMMMAAMMMASASASAAMASAMAAMASAMSSSXSAAAXASXSAMXSAAAAMMMAAMAMMMSMASMMXSAASAMAAXXMAMMAAAASASAAAAMASAAAAAAAXXAASAMXAAAAAAAXAAAXAAMAMXAMXM
MSMMMMMSAMXSSMSXMMMXMXMMMSMSMSXXSSMXSAMXSSMSMSMSASMMSSMSSSXAXMXSXMASMXMSXXASXMSXMAMSAMXMSXSSXMSSMMMASMSXSSSMSSSSSMMMSXSSSSSSMSMSSSMXSSMSMMAX

68
solutions/04.ts Normal file
View file

@ -0,0 +1,68 @@
import { solvables } from "../main.ts";
import type { Solvable } from "../solvable.ts";
import { readInput } from "../utils.ts";
class DayFour implements Solvable {
input = readInput('04')
public part1(): Solvable {
const transpose = (m: string[][]) => m[0].map((_,i) => m.map(x => x[i]))
const matrix = this.input.trim().split('\n').map(line => line.split(''))
const countOccHorizontal = (mat: string[][]) => mat
.map(line => line.join('')
.matchAll(/(XMAS|SAMX)/g)
.map(match => match[0])
.toArray().length)
.reduce((prev, curr) => prev + curr)
// b/y = height
// a/x = width
// start top right
const getDiagonals = (mat: string[][]) => {
let [b,a] = [0, mat[0].length - 1]
const lines = []
while (b < mat.length) {
let [y,x] = [b,a]
let line = ''
// walk top left of diagonal to bottom right
while (x < mat[y].length && y < mat.length - 1) {
line += mat[y][x]
y++
x++
}
lines.push(line.split(''))
if (a > 0) {
a--
} else {
b++
}
}
return lines
}
// console.log(getDiagonals(matrix.reverse()))
console.log(transpose(matrix).map(line=> line.join('')))
const downRight = countOccHorizontal(getDiagonals(matrix))
const downLeft = countOccHorizontal(getDiagonals(matrix.reverse()))
const horizontal = countOccHorizontal(matrix)
const vertical = countOccHorizontal(transpose(matrix))
console.log(horizontal + vertical + downRight + downLeft)
return this
}
public part2(): Solvable {
return this
}
}
solvables.push(new DayFour())