diff options
author | Guillermo Ramos | 2024-12-11 16:13:25 +0100 |
---|---|---|
committer | Guillermo Ramos | 2024-12-12 09:12:18 +0100 |
commit | 94abe97596828b0fa5ba79a3ba1cc76720c53994 (patch) | |
tree | a3410d4d7e4efacf717289fdc641f3a642c3f992 | |
parent | a360df726d04bf49fc8a06fdcbf668f1fea98aff (diff) | |
download | AoC-94abe97596828b0fa5ba79a3ba1cc76720c53994.tar.gz |
2024.11
-rw-r--r-- | 2024_rust/inputs/11 | 1 | ||||
-rw-r--r-- | 2024_rust/inputs/12 | 140 | ||||
-rw-r--r-- | 2024_rust/src/bin/day10.rs | 2 | ||||
-rw-r--r-- | 2024_rust/src/bin/day11.rs | 92 |
4 files changed, 234 insertions, 1 deletions
diff --git a/2024_rust/inputs/11 b/2024_rust/inputs/11 new file mode 100644 index 0000000..555ebb1 --- /dev/null +++ b/2024_rust/inputs/11 @@ -0,0 +1 @@ +0 7 6618216 26481 885 42 202642 8791 diff --git a/2024_rust/inputs/12 b/2024_rust/inputs/12 new file mode 100644 index 0000000..66723e0 --- /dev/null +++ b/2024_rust/inputs/12 @@ -0,0 +1,140 @@ +GGGGOOOOOOOOXXXXXXXXXXXXXXXXXSSSSSSSSSSSWWWWWWWWWWYYYYYYYYYYYYYYVVVVVVVVVVVVVVAGEEEEEEEEGGGGGGGGGGGGGEEBEQEYYYYYYYYBSSSBBBBBBBBBBBBBBBBBBBBB +GOOOOOOOOOOOOXXXXXXXXXXXXXXXXSSSSSSSSSSWWSWWWWWWYWYYYYYYYYYYYYYYYPVVVVVVVVVVVVVVEEEEEEEEGGGGGGGGGGEGGEEEEEEYYYYYYYYBBBBBBBBBBBBBBBBBBBBBBBBB +GGGGOOOOOOOOOXXXXXXXXXXXXXXXSSSSSSSSSSSWSSWWWWWWYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVEEEEEEEEGGGGGGGGGEEEEEEEEEEEYYUYYYYBBBBBBBBBBBBBDBBBOOBBBBBI +GGGGGOOOOOOOXXXXXXXXXXXXXXXSSSSSSSSSSSSSSSQQWWRWYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVEEEEEEEEGGGGGGGGGNEEEEEEEEEEYUUUUUUBBBBBBBBBDDDDDBBBOOBBBBII +GGGOOOOOOOOOXXXXXXXXXXXXXSSSSSSSSSSSSSSSSSQQQRRRYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVEEEEEEEEGGGNGGGGGNTTEEEEEEEEUUUUSSSBBBBBBDDDDDDDDDDOOOBBBBBI +GGGGOOOOOOOXXXXXXXXXXXXXXSSSSSSSSSSSSSSSSRMMQRRRYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVEEEEEEEEGGNNGGGGGNTTEEEEEEEEEUUSSQQQOBDDDDDDDDDDDDDDOBBBBBBB +GGGGGOOOOOOXXXXXXXXXXXXXXSSSSSSSSSSSSSSSRRRRRRRRRJQQYQYYYYYYYYYYYVVVVVVVVVVVVVVVEEEEEEEEGGNNNNNGNNNEEJUUUUUUUUUUQQQQQDDDDDDDDDDDDDDBBBBBBBBB +GGGYGYOOOOOOXXXXXXXXXXXXXXXSYYSSSSSSSSSRRRRRRRRRJJJQQQCYYYYYIVYBBVVVNNNNNVVVVVVVEEEEEEEEGGNNNNNNNNNEJJUUUUUUUUUUQQQQQQQDDDDDDDDDDDDBBBBBBSSK +GGGYYYOOOOOYYYXXXGGXXXGGGGGYYYYYSSSSOSSRRRRRRRRRRQQQQQQYYYEEIIIBBVVVNNNNNVVVVVEEEEEEEEEEGGGNNNNNNNNNNJGGUUUUUUUUNQQQQQYDDDDDDDDDDDDSSKSSSSSS +GGGGGYYOYOOYYXXXGGGGGGZGGGYYYYSSSSSSSSSSRRRRRRRRAVVQQQYYYYEIIIBBBVVVNNNNNNVVEEEEEEEGGGGGGGGNNNNNNNNNJJGGUUUUUUUUUQQQQQQDDDDDDDDDDDDDSSSSSSSS +GGGGGYYYYYYYYYXXXXGGGGGGGGGGYYYSSSYYYSSRRRRRRRRRVVVQQQQIYYIIIIIIBBVNNNNNNNVVEEEEEEEUUUGGGGGNNLGNNNNGGGGGGUUUUUHHQQQQTQQDDDDADDDDNDBBBSSSSSSS +GGYGYYYYYYYYYYXXXXGGGGGGGGGGYYYYYYYRRSRRRRRRRRRRRRVVVQQIIVIIIIIIIGNNNNNNNNMMEEEEEEEEEGGEEERRRGGGGGGGGGGUUUUUUUHGQSQTTTCDDDXXDDDDNDBSSSSSSSSS +YYYYYYYYYYYYYYXXXGGGGGGGGGGGYYYYYYYRRRRRRRRRRRRRRRVVVVQQQVXIIIIIQGNNNNNNNNUMEEEEEEEEEEEEEEEERGGGGGGGGGGUUUIUUHHHHTTTTTCDDDXXDDDDNNSSSSSSSSSS +YYYYYYYYYYYYYYYXXGGGGGGGGGGGGYYYYTRRRTRRRRRRRRRRRRRVVVVVVVIIIGIGGGGNNNNNNNNAEEEEEEEEEEEEEEEERGGGGGGGGGGIIUIIGGHHHTTTTTCDDDXXXXNDDNSSSSSSSSSS +YYYYYYYYYYYYYYYXGGGGGGGGGGGGGGGGYTKTTTTRRRRRRRRRRRVVVVVVVVVVIGGGGGGGNNNNNNZMMEEEEEEEEEEEEEEERRRGGGGGRRIIIIIIIIOHHTTTTTTTXXXXXXNNNNSSSSSSSSSS +YYYYYYYYYYYYYYYGGGGGGGGGGGGGGGTTTTTTTTGTRRRCRRRUUUUUUUUUVVGVGGGGGGGGGNNNNMMMMMMEEEMEEEEEEERRRRGGGGRRRRRIIIIIXITHHTTTTTSSSXXXXXNUUNSSSSSSSSSS +OOYYYYYYYYYYYSYGGGGGGGGGGGGGGGGGGTTTTTTTTCCCRRRUUUUUUUUUVVGGGGGGGGGGGGGGTTMMMMMEEEMMEEEEEEERRRGRRRRRRRRIIIIIXTTTTTTTTSSSXXXXXXUUUNNNSSSSSSSS +OYYYYYYYYYYYSSGGGSSSGGSGGGGGGGGTZTTTTTTTTCCCCCRUUUUUUUUUVVVTGGGGGGGGGGGGMMMMMMMMMMMEEEEEEDDTTRRRRRRRRRBIIIIITTTTTTTSSSSSXXXXXXUUNNNNSSSSSSSS +OYYYYYYYYYYYSSSSSSSSSSSSGGGGGHGTTTTTTTTTTTTCCCYUUUUUUUUUZVNOOGGGGGGGGGGGGMMMMMMMMMMEEEEEUTTTTRRRRRRRRRBIIIIIPTTTTTSSSSSSXXXXXUUUNNNNNNSSSSSS +OOYOYYYYYSSSSSSSSSSSSSSSGGGGGHHHTTTDTTTTTCTUUUUUUUUUUUUUODOOOGGGGGGGGGGMMMMMMMMMMMMZUUUUUTTTTTTRRRRRRRBBIIIBBBBTTSSSSSSSSXXNNUNNNNNNNNNSSSSN +OOYOOYYYGSSSSSSSSSSSSSSSGGGGGHHHHTTTTTZCCCTUUUUUUUUUUUUUOOOOOOOGGGGGGGGYMTMMMMMMMMMMUUUUATTTTTTRRRRRRRBBBBBBSBBSTTSSSSSSSSXXNNNNNNNNNNNSNNNN +OBOOOOYBGGSSSSSSSSSSSSSSTGUGHHHHHHHTTTCCCCCUUUUUUUUUBBBOOOOOOOOPOOGGGGGYYYMMMLMMMMMMUUUUAATTTTTTRRRRRRBBBBBSSDSSTSSSSSSSSSXNNNNNNNNNNNNNNNNN +BBBOOYYBGSSSSSSSSSSSSSSSTTIKIHRHHHIIECCCCCCUUUUUUUUUBBBOOOOOOOOOOOIOGGYYYYYLLLMMMMMMUUUUATTTTTTTRRRRRRRBBBBSSSSSSSSSSSSJJJJNNNNNJNNNNNNNNNNN +BBBBBBBBBBSZSSSSSSSSSSSSIIIIIRRRRHISCCCCCCCUUUUUUUUUBOBBBOOOOOOOOOOOOOYYYYYYLLMMMMMMMUUUGGTTTTTTGRRRRRRBBBBSSSSSSSSSSSSJJJJJJJJJJNNNNNNNBBNN +BBBBBBBBBBSZSSSSLSLSSSSSIIIIIRRRIIIICCYCCCCUUUUUUUUUBOBBSOOOOOOOOOOYYYYYYYYYLLUUUMZMMUUUUGKTTGTTGGRRRRRRBBSSSSSSSSSSSSSJJJJJJJJJJJNBBBBBBBNN +BBBBBBBBBVSSSSSSLLLLSSIIIIIIRRIRIIIAACCCCCTUUUUUUUUUVOOBSOOOOOOOOOTTYYYYYYLLLUUUUUUUUUUUGGGTGGGGGGGGRRRRBBSSSSSSSSSSSSSJJJJJJJJJJJJJBBBBBBNN +BBBBBBBBBSSSSSSSLLLLLIIIIIIIRIIRIIIJAAJJCCCUUUUUUUUUOOOOOOOOOOOOOOYYYYYYYYYLLUUUUUUUUUQUGGGGGGGGGGGCCRRRBBSSSSSSSSSSSSSJJJJJJJJJJJJJBBBBBBBN +BBBBBBBBBSBBSSSLLLLLAAAILIIIIIIIIJJJAJJJCJJUUUUUUUUUVVVOOOOOOOOOOYYYYYYYYYYYYYUUUUUUUUQQGGGGGGGGGGGGCRCCSSSSSSSSSSSSSJJJJJJJJJJJJJJBBBBBBBBN +BBBBBBBBBBBSSSLLLLLLLLLLLLIIIIIIJJJJJJJJCJJUUUUUUUUUVVVOOOOOOOOOOYJJYYYYYPYYYNNUUUUUQQQGGGGGGGGGGGGCCCCCSSSSSSSSSSSHSSJJJJJJJJJJJJJBBBBBBBNN +BBBBBBBBBBBSSSSLLLLLLLLLLLIIIIIIXXJJJJJJJJJUUUUUUUJJVVVLQQQOOOOOOOOJYYYYYPPPPPNNUUUUUQQQUGGGGGGGGGGGCCCCSSSSSSSSSSSHHSJJJJJJJJJJJJJBBBBBBBBB +BBBBBBBBBBBGSSLLLLLLLLLLLIIIIIIIXXJEEJJJJJJUUUUUUUJJJVVLQQXQOOOOOOUYYYYYYPNPPPNPPPUUUQQQQGGGGGGGGGGGCCSSSSSSSSSSHHHHHSOJJJJJJJJJJJJBBBBBBBBN +BBBBBBBBBBPWLLLLLLLLLLLLLIIIIIIIXXXXEDDJJJJUUUUUUUJJJJQQQQQQQQQQQOUUYYYYYQPPPLPPPPOOQQQQGGGGGGCCCGGCCCSSSSSSSSSSHHHHHOOOJJJJJJJJJJJBBBBBBNBN +BBBBBBBBWWWWWWALLLLLLLLLIIIIIIIXXXXXXDDJJJVUUUUUUUJJJQQQQQQQQAAUUUUUUUUYYQPPPPPPPPOSSSSSSSGGGGCCCCCCCCCCSSSSSHHHHHHHHHOOOJJJJJJJJJJJBBNNNNBN +BBBBBBBBBBBWWWALLLLLLLLLLIIIIIIIXDXXXDDDVVVVVVVJJJJJJQQQQQQQAAAUUUUUUUYYYYPPPPPPPPPSSSSSSSGGICCCCCCCCCSSSSSSSSSSHHHHHOOOOJJJJJKKJJJJLSNSNNNN +BBBBBBBBBBWWWWJJJLLLLLLLLLLIIIIIDDDXDDVIIVVVVVVVJJJJJTQQQQQQAUUUUUUUUUUUYUUPPPPPSSPSSSSSSSGGGCCCCCCCCCCSSSSSSSSHHHHGHOOJJJJJJKKJJLJLLSNSNNNN +BBBBBBBBBWWWWJJJJJLLWLRJSIIIIIDDDDDDDDVVVVVVVVVPJJJJQQQQQQQQQGUUUUUUUUUUUUPPPPPPPSSSSSSSSSGCCCCCCCCCCCSSSSSSSSSSSSSSMJJJJJJJJJJLLLLLLSSSNNNN +BBDDBBBDBWJJJJJJJJJJJJJJJIIIIIDDDDDDDDVVVVVVVVVVVJJQQQQQQQQQQQUUUUUUUUUUUUPPPPPPPSCSSSSSSSGCCCCCCCCCCCCSSCSSSSSSSSSSJJJJJJJJJJJLLLSSSSSSSSNS +BPDDDDDDWWWJJJJJJJJJJJJIIIIIIIWDDDDDDDVVVVVVVVVVJJJQQQQQQQQQQQJUUUUUUUUUUUUUPPPPPPCSSSSSSSCCCCCCCCCCCCCCCCCSSSSSSSSSPJJJJJJJJJJJLLLSSSSSSSSS +PPPNNDWWWWWJJJJJJJJJJJJIIIIIIWWWDDDDDDDDVVVVVVVVJJQQQQQQQQQJJJJUUUUUUUUUUUUPGPPPDDSSSSSSSSSSJJCCCCCCCCCCCSSSSSSSSSSSSJJJJJJJJJJJJSSSSSSSSSSS +PNNNNNNWWRWJJJJJJJJJJJJJIIIIIWWWWDDDDDDDCVVVVVJJJJJJQJQJQJJJJJJUUUUUUUUUUUPPPPPPDSSSSSSSSSSACCCCCCCCCCCCCSSSSSSSLSSSJJAJJJJJJJOOOOSSSSSSSSSS +PPNNNNNWRRWWJJJJJJJJJJJIIIIIIWWWWDDDDDDDCVVVVVVJJJJJQJQJJJJSJJJUUUUUUUUUUUPUFFPPDDSVSSSSSASAAACCCCCCCWWOSSSSSSSSSSSSSAAJJJAJJTSSSSSSSSSSSSSS +PPNNNNNNNRWRRJJJJJJJJXJIIIIIIWWWWWDDDDDDDVWVVVVVJJJJJJJJJJJSJJJLLUUUUHUUUUUUFFPPFSSFSSSAAAAAAACCIIIJCWWWWSSSSSSSSSSSAAAAAAAAATTSSSSSSSSSSSSS +PPNNNNNNRRRRJJJJJJJJXXXIIAIWWWWWWHDDADDIIVWWWWVJJJJJJJJJJJJSSSSSSUUUUUUUUUUUUFFJFFFFFFAAAAAAAAAIIIIIWWWWWSUUUUUUUUUAAAAAAAAAATTSSSSSSSSSSSSS +NNNNNNNNNRRRRJJGGJXXXXXIAAAAWWWWGDDDAADLLWWWLLMLLLJJJJJJJJSSSSSSSSUUUUUUUUUUUJJJJFFFFFFFFAAKAAAIIIIIWWWWLSUUUUUUUUUAAAAAAAAAATTSSSSSSSSSSSSS +NNNNNNNNNRRRRRGGGJXXXAAAAAAAWAWADDDDAADLLLWWLLLLLLLLJJJJJJSSSSSSSSSOPUUUUUKKCCJJJFFFFFFFFFAKKAIIIIIIWWWWWSUUUUUUUUUAAAAAAAAAATTTSSSSSSSSSSSS +NNNNNNNNNRRRRGGGGGXXAAAAAAAAWAWAADDAAAAALLLLLLLLLLLLJJJJJJJBSSSSSSSPPPPUUKBKCKFFFFFFFFFFKKKKKAAAAIIIIWWAAAUUUUUUUUUAAAAAAAAAATTTTSSSJJSSSSSS +NNNNNNNNNRRRRRRGGGGGAAAAAAAAAAAAAAAAYYYALLLLLLLLLLLJJJJJJJBBBSSSSSSSPPPKKKKKKKFFFFFFFFFFKKKKKKAAIIIIUUWAAAUUUUUUUUUAAAAAAAATATTTTTTSJJSSSSSS +NNNNNNRNRRRRRRRGGGGWAAAAAAAAAAAAAAAAYYYZLLLLLLLLLHHHJJJJJJBBBSSSSSPPPPPPPTKKKKKKKKKKKFKKKKKKKKKLLIIIIIWWWYUUUUUUUUUAAAAAAATTTTTTTTJJJJJSJSJS +NNNNNRRNRRRRRRRGGGGGGGGAAAAAAAAAAAAYYYYYLLLLLLLLLLHHHHJJJBBBFSXSSSSPPPPPPPCKKKKKKKKKKKKKKKKKKAALLIIIIILZYYUUUUUUUUUAAAAAAATTTTTTJJJJJJJSJJJS +SQQNUURRRRRRRRRGGGGGGGGGAAAAAAAAAAYYYYYLLLLLLLLLLLLHHHJJJJBBBBBBSSPPPPPPPPKKKKKKKKKKKKKKKKKKKAALLIIIWWLZYYYYYYYAAAAAAAAAAATTTTTTJEJJJJJJJJJS +QQQQQUUUURRRRRGGGGGGGGGGAAAAAAYYYYYYYYYLLLLLLLLLLLLHHHYJJJBBBBBBDPPPPSPPPAKKKKKKKKKKKKKKKKLKAALLLLLLLLLLYYYYYYYAAAAAAAAAATTTTTTJLJJJJJJJJJJE +VQQQQQUUURRRRGGGGGGGGGGGGAAAAAYYYYYYYYYLLLLLLLLLLLLHHYYYYNBBBBBBDPPPPSPPPAKKKKKKKKKKKKKKKKLAALLLLLLLLLLLLLYYYYYAAAAAAATTATTTTTTJJJJJJJJJJJJJ +VVVQQUUUUURRRRGGGGGGGGGGGAAAAAYYYYYYYYLLLLLLLLLLLLLHYYYYBBBBBBBBDPSSSSSPPAAKTKKKKKKKKKKLLLLLLLLLLLLLLLLLLYYYYYYYAAAAATTTTTTTTTTTJJJJJJJJJJCJ +VVVVUUUUTRRRRRRGGGGGGGGGAAAEAYYYYYYYYYLLLLLLLLLLLLLYYYYYBBBBBBEBDSSSSSSSAAATTKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLYYYYYYAAAAAAATAZZZZTTTJJJJJJJJJJM +VVVUUUUUTTRRRRRRGJGGGUGXRRRERRRRYYYYYYYLLLLLLLLLLKYYYYYYYBBTWWEEWSSSSSSSSTTTTTTKKTKKKKLLLLLLLLLLLLLLLLLLLLFYYYYYYYYAAAAAAAZZZZZZZJJJJJJJJMMM +VVVUUUUUUTRRRRUUJJUUUUXXXRRRRRRRYYYYZZYYYLLLLKKKKKKYYYYYYYWWWWWWWSSSSSSSSWWTTTTTKTKKKKLLLLLLLLLLLLLLLLLLLLYYYYYYYYGGGGGGGGGGZZZZZZJJJJJJJMMM +VVVVUUUTTTRRRRUUUUUUUUXXXRRRRRRRVYZZZZZYYLLLLLKKKKYYYYYYYYWWWWWWWWSSSSSSSTTTTTTTTTTTKPPLLLLPZIZLLLLLLLLLLLYYYYYYYYGGGGGGGGGGZZZZZZZZZJJJJJMM +VVVVQUTTTTRTRRUUUUUUUUXXRRRRRRRVVZZZZZZZYYLLKKKKKKKYYYYWYYWWWWWWWWWSSSSSTTTTTTTTTTTTKPPLPPPPZZZZZLLLLLLLTTYYYYYYYPGGGGGGGGGGZZZZZZZZMMJMMMMM +VVVVVUTTTTTTRRUUUUUUUUUUURRRRRRRRRZZZZZZYGGLGKKKKKKWWWWWWWWWWWWWWWWWSSTTTTTTTTTTTTTTTPPPPPPPZZZZZZLLLLLLYYYYYYYYYPGGGGGGGGGGGGGGZZZZZMMMMMMM +VVVVVTTTTTTTRUUUUUUUUUUUURRRRRRRRBZZZZZZZGGGGKGKKKKWWWWWWWWWWWWWWWSSSVRTTTTTTTTTTTTPPPPPPPPZZZZZZNLLLLZZYYYYYYYPPPGGGGGGGGGGGGGGZZMMMMMMMMMM +YYYVTTTTTTTTRRUUUUUUUUUUURRRRRRRZBZZZZZZGGGGGGGGGKKKWWWWWWWWWWWWWVVVVVVTTTTTTTTTTTTTTPPPPZZZZZZZZNNNNLLPPYYYYYYPPPGGGGGGGGGGGGGGZZMMMMMMMMMM +YYYYYTTTTTTTTUUUUUUUUURURRRRRRRZZZZZZZZGGZGGGGGGKKKKWWWWWWWWWWWVVVVVVVVTXTTTTTTTTTTQPPPPPZZZZZZZZNNNNLNPPYYYYPYPPPGGGGGGGGGGGGGGZZZMMMMMMMMM +YYYYTTTTTTTTMMMUUUUHRRRRRRRRRRRRVZZZZZZZZZZGGGGBBBBKWWWWWWWWWWVVVVVVVVVVVVTTTTTTTTQQQPPPZZZZZZZZZZNNNNNPPYZYYPYPPPGGGGGGGGGGGGGGOOZZZZMMMMMM +YYVVIIETTTTTMMMUUUURRRRRRRRRRQCQQAAZZZZZZZGGGGGBBKKKKKMWWWWWWWWVVVVVVVVVTTTTTTTTTHQQZZZZZZZZZZZZZZNJNPPPPPYYYPPPPLLLLLLGGGGGGGGGOOZZZZMMMMMM +YYVIIIETTTTTTMMUUURRRRRRRRRRQQQQQQQQZZZZZZXGGGKKKKKKKMMMWWWWWWWWVVVVVVVVTTTTTTTTTTQQQZZZZZZZZZZJZZJJNJPPPPPYPPPPPLLLLLLGGGGGGGGGOOZZZMMMMMMM +VVVVVEETTTTTTTMMMMRRRRRRRRQQQQQQQMQXZZXXXXXGGKKKKKKKMMMMMMWWWWWWWVVVVVVVTVTTTTTTTTQQQQQZZZZZZZZJJZZJJJPPPPPYIIPPPPLLDLLGGGGGGGGGZZZZZMZMMMMM +VVVJVEEGTTTTTMMMMMRRRRRRRRRQQQQQQQXXXZXXXKKKGKKKKKKKMMMMMMWWWWWWUUVVVVVVTVTTTTTTTTQQQWQQQZZQZZZJJJJJPPPPPPIIIIIIIPPLLLLGGGGGGGGGVZZZZZZZMMMM +VVVVOEEEEETTTMMMMMMRRRRRRRRQPQQQQQXXXZZXXKKKKKKKKKKKMMMMMMMMWWWWWUBBVVVVTVTTTTJTWWWWQWWQQQZQZZZJJJJPPPPPPPPIIIIIPPPPPLLLLHHOOOOOZZZZZZZZMMMM +VVVVVVEEETTTTMMMMMMMRRRRRRPPPQQQQXXXXXXXXKKKKKKKKKKKMMMMMMBMBWBBBBBBVVVVVKKUUTJJWWWWWWWQQQQQQZJJJJJPPPPPPPPPPIPPPPPPPHHHHHOOOOOOOZZZZZZZZZMM +VVVVVVEEEETTTMMMMMMMRRRRRPPPPAQQXXAXXXXXXAAAKKKKKKKMMMMMMMBBBBBBBBBBBKKKKKKUUUWWWWWWWWWQQQQQQZZJJJJJJPPPPPPPPPPPPPPPPHHHHHOOOOOOZZZZZZZZZMMM +PVVVVVSEEEEEMMMMMMMMMRRRRPPPPAAAAAAAXXXXXAAAAAAAKARMMMMRRMHBBBBBBBBBKKKKKKUUUWWWWWWWWWWWQQQQQZZJJNJPPPPPPPPPPPEEPPLPHHHHHOOOOOOOZZZZZZZZZMMM +VVVVVVSEEEEEUUUUUMMMMMRRRPPPPAAAAAAAXXXXAAAAAAAAAARMRRRRRRRRBCBBBBBBKKKKKKKWWWWWWWWWWWWWQQQQQNNNNNJPPPPPPPPPPPEEZPPHHHSSHOOOOOOOZZZZZZAZAAMM +VVVVVVVUUHHHGGUUUUMMMMRPRPPPPAAAGKKAAXXAAAAAAAAAAARRRRRRRRRRVBBBBBBBKKKKKKKWWWWWWWWWWWWQQQQQQNNNNNJPPPPPPPPPPPEEEPPEEHSSOOOOOOOOOZZZZZAAAAMM +VVVVVVVUUHHHGHUUUUUUUUPPPPPPPGGGGKKAXXAAAAAAAAAAAARRRRRRRRRRRBBBBBBBBKKKKKKUTWWWWWWWWWQQQQQQQQNNNJJPPPPPPPPPPPREEEEESSSSSSOOOOOOOZZZZZAAAAAA +VVVVVJVUUHHHHHUUUUUPPPPPPPPPPGGGKKGXXXAAAAAAAAAAAARRRRRRRRRRREEBBEEEBBKKKLKTTTTWWWWWWWWWQQQQQQQQNJJJJJPPPPPPPPEEEEEEESSSSOOOOOOOOOOZZAAAAAAA +VVVVVJVUUHHHHHHUUUUPWWPPPPPPPPGGGGGGXXAAAAAAAAAAAAARRRRRRRRRREEWWWWWWWWKKKTTTTTWWWWWWQQQQQQQQQQNNNNJJJPPPPPPPEEEEEEEESSSSOOOOOOOOOOWAAAAAAAA +UUUUUUUUUUHHHUUUUUPPPWPPPPPPPPGGGGGGXXAAAAAAAAAAAYRRRRRRRREEEEFWWWWWWWWKKTTTTTTWWWWWWQQQQQQQQQQUUNNJJJJJJPPPEEEEEEEOSSSSSNNNNNNONOOOAAAAAAAA +UUUUUUUUUHHHHUUUUUPPPWWPPPPPPPGGGGZZAAAAAAAAAAAAAYYRRRRREEEEWWWWWWWWWWWKKKKKKKKKKWWWWQQQQQQQQQQUYNNYYYJJJPPPXEEEEEOOOSSONNNNNNNNNNNAAAAAAAAA +UUUUUUUUHHHHHHUUUUUUUWWPPPPPPPPGGGPPAAAAAAGZAAZZYYYRRRRRREEEWWWWWWWWWWWKOKKKKKKKKIIIIQQQQQQQWWUUYYYYYYYJJYXXXEEFOYOOOOOOONNNNNNNNNNAAAAAAAAA +UUUFEFBBBHWWUUUUUUWWWWWWWPPQPPPPPPPPEAAFAAZZVZZZYYYRRRRREEEFWWWWWWWWWWWWWWWWWWWWKIIIHQQQQQQQWWUUYYYYYYYYYYXXXEXOOOOOOOONNNNNNNNNANAAAAAAAAAA +FFUFFFBBBBWWWWUUUWWWWWWWWPPQQQPPPPPPPPYZZZZZZZZZYYYFREEEEEFFWWWWWWWWWWWWWWWWWWWWKIHIHQQQQQWWWWYYYYYYYYYYYYXXXXXOOOOOOONNNNNNNNNNAAAAAAAAAAAA +FFFOFFFBBWWWWUUUWWWWWWWKKQPQQQPPPPPPPPYYZZZZZZZZZYFFEEEEEFFFFWWWWWWWWWWWWWWWWWWWKIHHHQQQQQWWWWWWWYYYYYYYYYYYYYOOOOOOOONNNNNNNNNNNAAAAAAAAAAA +FFOOFFBBBWWWWWWWWWWWWKKKKQQQQQPPPPPPPPPYYZZZZZZZZZFFEEEEEFFFFWWWWWWWWWWWWWWWWWWWKHHHHQHHHWWWWWWWWWWWYYYYYYYYYIOOOOOOOOOONNNNNNNNNEAIIAAAAAAA +FFFFFFFBFFFWWWWWWWWWWKKKKQKQPQPPPPPPPPPPPZZZZZZWWWFFFFFFFOFFFWWWWWWWWWWMKKKKKKKKKHHHHHHHWWWWWWWWWWWWYYYYYYYIIIIOOOOOOONNNNNNNNNNEEEEEIAAAAAA +XFFFFFFFFFFWWWWWWWWWWWKKKKKQPPPPSSPPFPPZZZZZZZZWWWFFFFFFFFFFFWWWWWWWWWWKKKKKKKKKJJJHHHHHHWWWWWWWWRYYYYYYYYYIIIIIOOOOOONNNNNNNNNEEEEEEAAAAAAA +XFFFFFFFFFFFFWWWWWWWWKKKKKKKSPPSSSSSSSPPZZZZZWWWWWFFFFFFFFFFFWWWWWWWWWWKKKKKKKKKJJTTYHHHHHWWWWWWWWJYYYYYYYIIIIIIOOOOONNNNNNNNNNEEEEEENAAAAAA +FFFFFFFFFFFWWWWWWWWKKKKKKKKPSSSSSSSSSSPZZZZZZZZWWWWFFFFFFFFWWWWWWWWWMMKKKKKKKKKKJJJTYHHHHWWWWWWWWWYYYYYYYYIIIIIIOOOOOONNNNNNNNNEEREEEEAAAAAB +FFFFFFFFFRRRRRRRWKKKKKKKKKPPSSSSSSSSSZZZZZZZZZZZWWWFFFFFFFFWWWWWWWFFJJKKKKKKKKKKJJJJYYYYHWWWWWWWWWWWYYYYYYYYIIIIOOOOOOONVVNNNEEEEEEEEEAATABB +FFFFFFFFFFRRYRRRKKKKKKKKKKKKDSSSSSSSSZZZZZZZZVWWWVVFFFFFFUFWWWWWWWVFFJKKKJJJJJJJJJJJYYYYYFWWWWWWWWWWYYYYYYYYIIIIOOOOOOOOAVVNNNEEEEEEEEEEEAEB +FFFFFFFFFFRRRRRRRVKKKKKKKKKSSSSSSSSXSSZZZZZZZVVVVVVFFFFFFUFWWWWWWWVVVJJJJJJJJJJJJJJFYYYYWWWWWWWWWWYYYYYYYYYIIIIIIOOOBBVOVVVVVEEEEEEEEEEEEEEE +FFFFFFFFFFFRRRRRRVRKKKKKKKKKKSSSSSSSSZZZZZZZRRVVVVZZFFVVVFFWWWWWWWVVVJJJJJJJJJJJJJNNNNNWWWWWLWWWWYYYYYYYYIIIIIIIIIOBBVVVVVVVVVEEEEEEEEEEEEEE +FFFFFFFPPPRRRRRRRRRRKKKKKKKKKSSSSSSSSSZZZZZZRRVVVVVZZZVVVVVWWWWWWVVVJJJJJJJJJJJJJJJJNNNNWWWWWLLWLLLLLLYIIIIIIIIIIMMBBVVVVVJJJJJEEEEEEEEEEEEE +FFFFFFFPPPRRRRRRRRKKKKKKKKKKKKSSSSSSSSHZZZZZRVVVVVVVVVVVVVVVVVVVVVVVVVJJJJJJJJJJJJJJJNNNNNWWWWLLLLLLLLIIIIBIIIIIMMMMBVVVJJJJJJJJEEEEEEEEEQED +FFFFFFRPPPRRRRRRRRRKKKKKKKKKKHHSHSHHLLBXZBRRRRRVVVVVVVVVVVVVVVVVUVVVVJJJJJJJJJJJJJJJNNNNNWWWWWLLLLLLLLIIIBBBIIIIMMMMBVVJJJJJJJJJJJEEEEEEEEED +FEFFFFRPPPRRRRRRRRRKKKKKKKKAHHLHHHHHBLBBBBRRRRVVVVVVVVUUVUUUUUUUUUBBBBBJJJJJJJJJJNNNNNNNNWWWLLLLLLBLBBBSSBBBBBIIMMMMMVFJJJJJJJJJJJJJEEEEEEEE +EEBBBFRPPPRRRRRRRRRRHKKKJKKJJHHHHHHHBBBBBBRRVRRVVVVVVUUUVVUUUUUUUUUEBBBBBBJJBBBNNNNNNNNZNWWWLLLLLLBLBBBBBBBBBIIIMMMMMMEAJJJJJJJJJHJJEEEEEEEE +EEBBBBRPPPRRRRRRRRRRHHHHJKKJCHHHHHHVBBBBBBBRVVVVVVVVVUUUUUUUUUUUUUUBBBBBBBBBBBBNNNNNNNZZZWWWWLZLLLBBBBBBBBBBOOIIIIMDDMEEJJJJJJJJJJJJOJQQEQSE +EEBLBMMPPPRRRRRRRRRRHHJJJJJJCHHHHHHVBBBBBBBVVVVVVVVVVUUUUUUUUUUUUUUBBBBBBBBBBBBNBBNNNNNZZWWWWWZZZBBBBBBBBBBOOOIIIIDDDMEDJJJJJJJJJJJJJJQQQQQH +EEBBBBBPPPRRRRRRRRRRRHHJJJJJJHHHHHVVBBBBBBYYVVVVVVVVVUUUUUUUUUUUUUUBBBBBBBBBBBBBBBNNNZZZZZZZZZZZZBBBBBBBBOOOOOIIIODDDDEDJJJJJJJJJJJJJJQQQQQH +EEEBBBBPPPRRRRRRRRPPPJJJJJJJJJHHHHVBBBBBBBVVVVVVVVVVVVUUUUUUUUUUUUBBBBBBBBBBBSBBBZZZZZZZZZZZZZZZZZBBBBBOGOOOOOOOOOODDDDDJJJJJJJJJJJSSQQQQQQQ +BBBBBBBBJBRPPRRRRRPPPJPJJJJJJJJKHVVBBGGBGBGGVVVVVVVVVVVUUUUUUUUUUUBBBBBBBBBBBSBXXZZZZZZZZZZZZZZZZBBBBBBOOOOOOOOOOODDDDDDJJJJJJJJJJJQQQQQQQQQ +KBBBBBBBBBDPPPRRRPPPPPPPPPPJJJJKHHVBBHGGGGGVVLVVVVVVVVUUUUUUUUUKKUKBBBBBBBBBSSSSSSSZZZZZZZZZZZZZZBBBBOOOOOOOOOOOOODDDDDDDDDDJJJJJJJJQQQQQQQQ +KBBBBBBBBBDPDPRRPPPPPPPPPPPJJWJJHWBBBHHGGMGVVVVVVVVVVVVUUUUUUUUKKKKBBBBBBBBSSSSSSSSSZZZZZZZZZZZZBBBBBBOOOOOOOOOOOIOODDDDDDDDDDDDDQQQQQQQQQQQ +BBBBBBBBBBDDDPRPPPPPPPPPPPPJPWWWWWWWHHHGMZZZZZZZZVVVVVVHKKKKKKKKKKKUEBBBBBBSSSSSSSSSZZZZZZZZZZZZBBBBBBOOOOOOOOOOOOOODDDVDDDDDDDDDDQQQQQQQQQQ +BBBBBBBBBBDDDDDDPPPPPPPPPPPPPWWWWHHHHHHHMZZZZZZZZVVBVVVHCKKKKKKKKUUUUGGBBBSSSSSSSSSSZZZZZZZZZZZZZZOOOBOOOOOOOOOOOOOOVVVVDDDDDDDDDDDDDQQQQQQQ +BBBBBBBBBDDDDDDDPPPPPPPPPPPPPWWWHHHHHHHMMZZZZZZZZVVVQQCCCKKKKKKKKUUUUUBBBBYYSSSSSSNZZZZZZZTZZZZZOOOOOOOOOOOOOOOOOOOVVVVZZZZDDDDDDQQDDQQQQQQQ +BBBBBBBBBBDDDDDDDPPPPPPPPPPPWWWWHHHHHHHHHZZZZZZZZWWMMQCCCCCKKKWKUUUUUUUBBBBYYSYSSSSSZZZZZZTTTTTTTSOOOOMOXOOOOOOOOOOVVVVVZZZZDDDDDQQDQQQQQQQQ +MBBBBBBBBJDDDDDDDDLPPPPPPPPPPPPWHHHHHHHHHZZZZZZZZMMMMCCCCKKKKKKKUUUUUUUYYYYYYYYSSSSSZZZZZTTTTTTTTOOOOOOOXOOOOOOOOOOVVVVVZZZZZZDDQQQQQQQQQQQQ +MMJJJJJJJJJJDJJDDDLLLLLPPAQQPQQHHHHHHHHHHZZZZZZZZMMMMCCCCJKKDDDDUIUUUUUYYYYYYYYSSUUZZZZZZTTTTTTTAAOOOOOOOOOOOOOOOOBVVVSSSZZZZDDDDDDQQQQQQQQR +MMJJJJJJJJJJJJJJJLLLLLLLPAQQPQQQQQHHHHHHHHGGMMMMMMMMMNCCCCCCDDDDFFUUUUUYFFYYYYYYSZUZZZZZTTXTTJJJJJOOOOOOOOOOOOOOOBBVVVSSSSZZDDDEEDEQQQQQQQQR +MMJJJJJJJJJJJJJJJJJJLLLLPAQQQQQQQQHHHHVVVHGGMMMMMMMMMMMCCCCCDDDDDFFFUUFYFFYYYYYZYZZZZZZZZZJJJJJJJOOOOOOODLOOLLROOBBBVVSVVSSSEEEEEEEQQQQRQRRR +MMJJJJJJYJJJJJJJJJLLLLLLQAQQQQQQQQHVVHVVVGGGGMMMMMMMMMMMNCCCWDDWDFFFUFFYFFYYYYYZZZZZZZZZZZJJJJJJJOOOOOOOLLLLLLLOBBBVVVVVSSSSEEEEEEEQQQQRRRRR +MMMJJJJJJJJJJJJJJLLLLLLLQQQQQQQQVVHVVHVVVGGMMMMMMMMMMMMMMNCSWDDWWFFFFFFFFFFYYYYZZZZZZZZZZZZYYYYJJOOOOOOLLLLLLLLLLVVVVVVYESSSSEEEEEEEFERRRRRR +MMJJJJJJJJJJJJJJJLLLLLQQQQQQQQQQVVVVVVVVVVVMMMMMMMMMMMMMMMCSWWWWWFFFFFFFFFFYYYZZZZZZZZZZZJAYYYYJJJOOOOALQLLLLLLLKVVVVVVYEEEEEEEEEEEEEERRRRRR +MMGGJJJJSSJJJLJLJLLLLLLQQQQQQQQQQQVVVVVVVVVVMMMMMMMMMMMMMWSSWWWWWFFFFFFFFFFYYYZZZZZZZZZZZJJYYYYJJBOOOOOOSSLLLLLKKVVVVVVEEEEEEEEEEEEEEAERRRRR +MMGGJJSSSSSJJLLLLLLLLLLQQQQQQQQQQVVVVVVVVVVVMMMMMMMMMMMMMWWWWWWWWFFFFFFFFFFFYYYZZZZZZZZZZZYYYYYJJJWOOOCCSSLLLELKKKVVVVVEEEEEEEEEEEEEEEERRRRR +MMGGJSSLLSLLJLLLLLLLLLLQQQQQQQVVVVVVVVVVVVVVVJJMMMMMMMMWWWWWWWWWWFFFFFFFFFYFYYYYZZZZZZZZZZYYYYYJJJJSSSSCSSSLLEEVVVVVVVVVEEEEEEEEEEEEEEERRRRR +MMMMSSSLLLLLJLLBLLLLLQLQQQQQQVVVVVVVVVIVVVVZZJJMMMMMMMWWWWWWWWWWFFFFFFFFFYYYYYYYZZZZZZZZZZYYYYYJJJSSSSSSSSSSEEEVVVVVVVVVEEEEEEEEEEEEEEEERRRR +SSSMSLLLLLLLLLBBBLLLLQFFFFFFFFFVVVVVVVIVVVZZJJJJJMMMMMMMWWWWWWWWFFFFFFFFFFFYYYYYZZZZZZZZZZYYYYYJRJSSSSSSSSSSSRRRRRRRRVVVVWEEEEEEEEEEEEERRRRR +SSSSSSLLLLLLBBBBBBBBBBFFFFFFFFFVVVVVVVIIIIZZJJJJMMMMMMMMWWWWWWWWFFFFFFFFFFFYYYYYYYFFWZZZZLYYYYYJRRSSSSSSSSSSSRRRRRRRRVVVWWEETEEEEEEEGEEERRRR +SSSSSLLLLLLLLBBBBBBBBBFFFFFFFFFVVVVVIVIIIZZZJJJJXXXXWMMMWWWWWWWWAFFFFFFFFFFFVVYYVVFFFFFLLLYYYYYJRRSSSSSSSSSSSRRRRRRRRVVVVEEIEEEEIEEEEERRRRRR +SYYSSLLLLLLLBBBBBBBBBBFFFFFFFFFFFFVIIIIISZZJJJJJXXXWWMMMMWWWWWEFFFFFFFFFDFVVVVVVVAFFFFFFFLYYYYYJJSSSSSSSSSSSSRRRRRRRRVVVVIIIEEEIIEEEXERRRRRR +SYYYSSSSLLSLBBBBBBBBBBBFFFFFFFFFFFVIIIISSSSSJJJXXXXWWWWWWWWWWXXFFFFFFFFDDDDVVVVVAAFFFFFFFFYYYYJJJSSSSSSSSSSSSRRRRRRRRNNVVVIEEEIIIIRRRRRRRRRR +SYSSSSSSSSSSBBBBBBBBBBTFFFFFFFFFFFVIIIIIISSSSXXXXXXWWWWWWWWMWXXFFFFFFFFDDDDVVVVVVAFFFFFFFFYYYYJJJSSSSSSSSSSSSRRRRRRRRNIIIIIIIIIIIIRRRRRRRRRR +SYSSSSSSSSSBBBBBBBBBBBTFFFFFFFFFFFIIIIIISSSXXXXXXXXXWWWWWWWMXXXMMFFFFFDDDDDVDVVVVFFFFFFFFYYYYYYJYSSSOOSSSSSSSRRRRRRRRNNIIIIIIIIIIRRRRRRRRRRR +SSXXXSSXSSSSSUBBBBBBBTTFFFFFFFFFFFIIPPPPXSSSXXXXIXXXWWWWWMMMMMMMMFFFFDDDDDDDDVVVFFFFFFFFFYFFYYYYYYYOOOSSSSOSURRRRRRRRRRIIIIIIIIIIIRRRRRRRWRW +SSSXXXXXSSSSUUBBBBBBBTTTTTFFFFFFFFAPPPPLLLLLLLLLIIWWWWWWMMMMMMMMMMFMMDDDDDDDDDDQQFFFFFFFFFFYYYYYOOOOOOOOOOOUUUGGGGRRRRRNLIIIILIIIIRGWRRRWWWW +SSSXXXXXSSSUUUUBBBBBBTTTTTTTBBBBBAAAPPPLLLLLLLLLIIIWWWWWIIIMMMMMMMMMMDDDDDDDDDDQZFFFFFFFFFFYYYYYOOOOOOOOOOOUUGGGGDRRRRRNLLLLLLIIIIGGWWWWWWWW +SSSXXXXXSSSUUUUBBBBTTTTTTTTTBBBBBAAFFFFLLLLLLLLLIIIIIIIIIIIMMMMMMMMMMDDDDDDDQQQQQQFFFFFFQFFYYYBBBOOOOOOOOOUUGGGGGDRRRRRNNLLLLLLLIIGGGWWWWGWW +SSXXXXXXSSSUUUUUBBBTTTTTTTTTTRRBBBABFFFLLLLLLLLLIIIIIIIIIIIMLMMMMMMMMDDDDDDDQQQQQQFFFFQQQFQYQBBBBOOOOOOOOOOOOGGGGDRRRRROLLLLLLLLLIGGGWWWGGWW +XXXXXXXXSSUUUUUUUUUGGTTTTTTTTRRRRBBBFFFLLLLLLLLLIIIIIIIIILLLLLMMMMMMMDDDDQDDDDQQQQFQFFQQQQQQQQBBBOOOOOOOOTTYGGGGOORRRRROOLLLLLLLLGGGGGGGGGGG +XXXXXXXXSXUUUUUUUUUGGTTTTTTTTRRRBBBBFFFLLLLLLLLLIIIIIIIIIILLLLMMMMMMMDDVDQQQDQQQQQQQFQQQQQQQQQBBOOOOOPOJJYYYGGGGGORRRRROOLLLLLLLLLGGGGGGGGGG +XXXXXXXXXXUUUUUUGGGGGTTTTTTTRRRRRBBBBFFFFFFFFFFFIIIIIIILLLLLVLLLLMLMVVVVVFQQQQQQQQQQQQQQQQQQQQBBOOOOOOOJJJYYYYGYGOOOOOOOOOOLLLLLLIGGGGGGGGGG +XXXXXXXXXUUUUUUUUGNNGGTTTTTTTTKRBBBBBBFFFFFFFFFIIIIIIIIIVLLLVVLLLLLLVVVVVFFQQQQQQQQQQQQQQQQBQBBBOOOOOOJJJJYYYYYYGOOOOOOOOOOLLGGGGGGGGGGGGGGG +XXXXXXXXXUUUUUUUGGNNGGTTTTTTTTTRBBBBBBFFFFFFFFFIFFIIIRRRVVVVVVVLVVLLVVVVFFFQSQQQQQQQQQQQQQQBBBBBBBOOOJJJJJYYYYYYGGGOOOOOOOLLLLGGGGGGGGGGGGGG +XXXXXXXXXXXUUUUUUNNNNTTTTTTTTTTBBBBBBBBRFFFFFFFFFFFIIRRRVAVVVVVLVVVVVVVFFFFFQQQQQQQQQQQNQZQBBBBBBBOOOJJJJJYYYYYYYGOOOOOOOOOLLLGGGGGGGGGGGGGG +XXXXXXXXXXXUUUUNNNNNNNTTTTTTTTTTTBRRRRRRFFFFFFFFFRRRRRRRVVVVVZZVVVVVVVVVVFFFFFQQQQQQQQQQQQBBBBBBBBOOOJJJJJYYSYYYYGGOOOOOWOOLLLGGKGGGGGGGGGGG +XXXXXXXXXXXXUUUNNNNNNTTTWTTHHHTTHRRRRRRRFFFFFFFFFRRRRRRRVVVVVVZZVVVVVVVVVFFFFFFQQQQQUQQBBBBBBBBBBBORBQQQQQQQYYGGYGGOOOOOWOOLLLLGGGGGGGGGGGGG +XXXXXXXXXXXXUUNNNNNNNNTWWTTHHHHHHHRRRRRRRRRRRRRRRRRRRRRRRVVVOVVVVVVVVVVVVVFFFFFFFFFQBBBBBBBBBBBBBBBBBWWQQQQQYGGGGGOOOOOOOOOLLLLGGGGGGGGGGGGG +XXXXXXXXXXXUUUUNNNNNNNNNWWTTHHHHHHRRRRRRRRRRRRRRRRRRRRRRRVOOOOVVVVVVVVBBVVFFFFFFFFFFBBBBBBBBBBBBBBBBBWQQQQQQYGGGGGOOOPPPOLLLLLLLLGGGGGGGGGGG diff --git a/2024_rust/src/bin/day10.rs b/2024_rust/src/bin/day10.rs index 3c208bd..4bd49c8 100644 --- a/2024_rust/src/bin/day10.rs +++ b/2024_rust/src/bin/day10.rs @@ -64,5 +64,5 @@ fn p2(input: &str) -> String { } fn main() { - aoc2024::run_day("10", Some(p1), Some(p2)); + aoc2024::run_day("10", p1, p2); } diff --git a/2024_rust/src/bin/day11.rs b/2024_rust/src/bin/day11.rs new file mode 100644 index 0000000..7ec1298 --- /dev/null +++ b/2024_rust/src/bin/day11.rs @@ -0,0 +1,92 @@ +use std::collections::HashMap; + +fn blink(stone: u64) -> Vec<u64> { + let n_s = stone.to_string(); + if stone == 0 { + vec![1] + } else if n_s.len() % 2 == 0 { + let mut l = n_s; + let r = l.split_off(l.len() / 2); + vec![l.parse().unwrap(), r.parse().unwrap()] + } else { + vec![stone * 2024] + } +} + +#[derive(Debug)] +struct VecStones(Vec<u64>); + +impl VecStones { + fn parse(input: &str) -> Self { + VecStones( + input + .trim() + .split(" ") + .map(|n| n.parse().unwrap()) + .collect(), + ) + } + + fn step(&self) -> Self { + let VecStones(ref s) = self; + VecStones(s.iter().flat_map(|&n| blink(n)).collect()) + } + + fn count(mut self, iterations: u8) -> u64 { + for _i in 0..iterations { + self = self.step(); + } + + self.0.len() as u64 + } + + fn count_cached_v(&self, iterations: u8, cache: &mut Cache) -> u64 { + self.0 + .iter() + .map(|&stone| count_cached_s(stone, iterations, cache)) + .sum() + } + + fn count_cached(&self, iterations: u8) -> u64 { + let mut cache: Cache = HashMap::new(); + self.count_cached_v(iterations, &mut cache) + } +} + +fn p1(input: &str) -> String { + let stones = VecStones::parse(input); + println!("VecStones: {stones:?}"); + + let result = stones.count(25); + result.to_string() +} + +// (stone, iteration) -> count +type Cache = HashMap<(u64, u8), u64>; + +fn count_cached_s(stone: u64, iterations: u8, cache: &mut Cache) -> u64 { + if iterations == 0 { + return 1; + } + + match cache.get(&(stone, iterations)) { + Some(&count) => count, + None => { + let nexts = VecStones(blink(stone)); + let count = nexts.count_cached_v(iterations - 1, cache); + cache.insert((stone, iterations), count); + count + } + } +} + +fn p2(input: &str) -> String { + let stones = VecStones::parse(input); + + let result = stones.count_cached(75); + result.to_string() +} + +fn main() { + aoc2024::run_day("11", p1, p2); +} |