Compare commits

...

3 Commits

Author SHA1 Message Date
aecea3dde7 added idk a bunch of junk 2024-12-25 10:34:54 -05:00
d9ff4e14fe day 13, 14 and 15 2024-12-15 09:44:05 -05:00
70c72cd6e9 pladcl day11 and day12 2024-12-12 15:26:26 +08:00
41 changed files with 20289 additions and 1 deletions

140
resources/2024/day12.txt Normal file
View File

@@ -0,0 +1,140 @@
TTTTTTTTTTTTTTDDDDDDDDDDDDAAAKKKKKKKKKKKKKKKKKKKKKKKRRRRRRRRRRRRRXXXXXXXXXXZFFFFFFFFFFOFVVVVVVQQQQQUQQQQQQQQQQQQQQQQQCCGGNNNNHHHHHHHHHHHHHHH
TTTTTTTTTTTTTTDDDDDDDDDDDDAAAAAAKKKKKFKKKKKKKKKKKKKKRRRRRRRRRRRXXXXXXXXXXXXZFFFFFFFFFFFFFFFVMMQQQQQQQQQQQQQQQQQQQQQQQGGGGNNNNHHHHHHHHHHHHHHH
TTTTTTTTTTTTDDDDDDDDDDDUAAAAAAAAAKKFFFKKKKKKKKKKKKKKRRRRRRRRRRXXXXXXXXMXMMFFFFFFFFFFFFFFFMMMMMNQQQQQQQQQQQQQQQQQQQQQZZGGNNNNHHHHHHHHHHHHHHHH
TTTTTTTBTTTTDDDDDDDDDDUUUAAAAAAAKKKKFFKKKKKKKKKVLLLLLRRRRRRRRRXXXXXXXMMMMMFMMMMFFFFFFFFFXMMHMMNQQQQQQQIQQQQQQQQQQQQQQQGGNNNNVVVHHHHHHHHHHHHH
TTTTBTBBTTTTDDDDDDDDDDUUUAAAAAAAKKKFFKKKKKKKKKNLLLLLLRRRRRRRRRXXXXXXXMMMMMMMMMFFFFFFFFHXXXMHHNNQQQQQQQIIIQQQQQQQQQQQQQGGVVVVVOHHHHHRRRHRHHHD
TBBBBBBBTTTTDDDDDDDDUDUUUAAAFAAAKKKFFKFFFKKKKKKWWLLLLRRRRRROOOOOXBMMMMMMMMMMEFFMFFFFHHHHXMMHHHHQQQQQQQQIIQQQQQQQQQQQGGGGGVVVVVVZHHXRRRRRHDHD
BBBBBBBBBTTTDDDDDDDUUUUUUGUFFFFKKKKKKFFFKKKKKKKWLLLLLLRRRROOOEOOOMMMMMMMMMMMMMUMMFFFFFHHHHHHHHHQQQQQIIIIIIQQIQQIIQQQUGGGGVVZVZZZZZRRRRRRDDHH
BBBBBBBBTTTTDDDDDDXUUUUUUUUFFFFKKKKKKFIFKKKKKKKKLLLLLLRRLLOOOOOOOOMMMMMMMMMMMMMMFFFFFFHHHHHHHHHHHZZIIIIIIIQIIQQIIQQQGGGGGGGZZZZZZZRRRRMMHHHH
BBBBBBBBTTTTDDXXXXXUUUUXUUFFFKKKKKKKKFEEKKKKKKKKKFLLLLLLLOOOOOOOOOMMMMMMMMMMMMMMFFFFFFFHHHHHHHHHHIIIIIIIIIIIIIIIINQQGGGGGGGZGZZZZZRRRRRRHHHH
BBBBBBBBBBDDDDXXXXUUUUUUSFFFFKKKKKKEEEEEEKKKKKKKKFKKKLLLLLTOOOOOOOOOMMMMMMMMSWSFFFFFFFFHIIIIHHHHHMMIWIIIIIIIIIIGGGGGGGGGGGGGGGZZZZRRRRRRNHHH
BBBBBBBBBBBDXDXXXXXXOOOOOOOOOOKKKKEEEEEKKKKKKKKKKKKKKLLLLLOOOOOOOOOOOOMMMMMMSSSSSFFFFFHIIIIIHHHHHIIIIIIIIIIIIIWGGGGGGGGGGGZGGZZZZZZRRNNNNHHN
BBBBBBBBBBBDXXXXXXXGOOOOOOOOOOXKKKKEEEEEKKBKKKNKKKKKKKKLLLLOOOOOOOOOOOMMLLMMSSSSSSFFFFHIIIIIHHHHHIIIIIIIIIIIIIIIGGGGGGGGGGZZZZZZZZZRRRRRNHHN
BBBBBBBBBBBBXXXXXXXXOOOOOOOOOOKKKKKKXEEEEEENKNNNKKLLKKKKLLLLLOOOOLOOLLLLLLLSSSSSSSFFFHHIIIIIHBHHHIIIIIIIIIIIIIIGGGGGGGGGGGZZZZZZZZZRZRRNNNNN
BBBBBBBBBBBBBXXXXXXXOOOOOOOOOOXKXKKKKEEEEEENNNNNNLLLLKKKLLLLLOOOLLLLLLLLLLLSSSSSSSFFFFFIIIHBBBHHHIIIIIIIIIIIICCGGGGGGGGGGGZZZZZZZZZZZRRNNNNN
BBBBBBBBBBBBCXXXXOOOOOOOOOOOOOXKXKKKKESSSSSSNNNLLLLLLKOOLLLLLOLLLLLLLLLLLAAASSSSSSSFFFFIIIBBBBBBIIIBIIIIIIIICCCGMGGGGGGGGZZZZZZZZZZZNNRNNNNN
BBBBBBJBBBBXXXXXXOOOOOOOOOOOOOXXXKKKXESSSSSSSSSSSLLLLLLOOLOLLLLLLLLLLLAAAAAASSSSSSSFFFFIIIVBBBBBBIBBBIIIIIIIICGGGGGGGGGGGZZZZZZZZZZZNNNNNNNN
BBBBBBBBBBXXXXXXXOOOOOOOOOOOOOXXXXNKXXSSSSSSSSSSSLLLLLOOOOOLLLLLLLLLLAAAAAAASSSSSSSSZFFFBBBBBBBBBBBBBBIIIIIIICCXXXGGGGGGGGGIZZZZZZZNNNNNNNNN
FBBAABABBBFXXXXOOOOOOOOOOOOOOOXXXXNKXSSSSSSSSSSSSLLLLLLOOOOLLLLLLLLLEWAAAAAASSSSSSDDZFFFBBBBBBBBBBBBBBBIIIIICCCCCXGGGGGGGIIIZIIIZNZNNNNNNNNN
FBBAAAAAAAXXXXXOOOOOOOOGGGVVVXXXXXXXXSSSSSSSSSSSSLLLLLLOOOOOOLOOOLLLEEEEAAASSSESSSDDZFFFBBBBBBBBBBBBBBBIBBIIIIIIIIXGXXGGIIIIIIIIINNNNNNNNNNI
FBFAAAAAAAAAXXXOOOOOOOOGGGVVVXXXXXXXXSSSSSSSSSSSSLLLLLLOOOOOOOOOOLLEEEEAAAATSSSSDDDZZFZZSSSBBBBBBBBBBBBBBBIIIIIIIIXXXXIIIIIIIIIIINNNNNNNNNNI
FFFFGAAAAAAAXLXOOOOOOOOGGGVVVXXXXXXXXSSSSSSSSSSSSLLLLLOOOOOOOOOOLLLEEEEAAAAASDDDDDZZZZZSSTTBBBBBOOBBBBBBBBIIIIIIIIXXIIIIIIIIIIIIIINNNNNNNNII
FFGGGAAAAAAAXAAOOOOOOOOGGGGVVXXXXXXXXSSSSSSSNNNNLLLLLOOOOOOOOOOOLLLLEEELXDADDDDDDDZZZZZSZZTBBBBBOOOBBBBBBBIIIIIIIIXXXIIIIIIIIIIINNNNNNNNNNII
FFFGGGGAAAAAAAAOOOOOOOOGVVGVVVVXXXXXXSSSSSSSNNLLLLBLLOOOOOOOOOOOLLLEEXXXXDDDDDDDDDZZZZZZZTTTTBBOOOBBBBBBBIIIIIIIIIXXIIIIIIIIIIINNNNNVNNVNNNI
FFGGGPGALAAAOOOOOOOOOOOGVVVVVVVVXXXXXSSSSSSSNDDLLLLLLOOOOOOOOOOOOLLEEXXXXXDDDDDDDZZZZZZZZTTTBBOOOOOOBBBIIIIIIIIIIIIIIIIIIIIIIINNNNVVVVNVFNII
GGGGGPGGLLAAOOOOOOOOOOOVVVVVVVXXXXXXXXXXDDDDDDDDLDDOOOOOOOOOOOOOTXXXXXXXXXXDDDDDZZZZZZZZZTTTTBBIOOOOBBBIIIIIIIIIIIXXXIIIIIIIINNNVVVVVVVVFJII
GGGGGGGGGGGIOOOOOOOOOOOEVVVVVVXXXXXXXXXXDDDDDDDWWWWOOOOOMOOOOOOOXXXVXXXXXXXXDDDDZZZZZZZZZZTTTTLIIIIOOOOIIIIIIIIIIIXXXXIIIIIIINNNNVVVVVVVJJJI
GGGGGGGGGGGIOOOOOOOOOOEEEEVVVVVXXXXXXXXXDDDDDDDWWWWWWWWWWOOHHOOXXXXXXXXXXXXDDDDDZZZZZZZZZZZZZZLIIIIIIIOIIIIIIIIIIIXXXXIIIIIIINNNNVVVVVVVJJJJ
GGGGGGGGSGSMOOOOOOOOOOEEEVVVVVVVXXBXXDXDDDDDDDDWWWWWWWWWWHHHHOKGGGXXXXXXXXXDDDDDZZZZZZZZZNNNNIIIIIIIIOOIIIIIIIIIIXXXXIIIIIIINNNNNNNVVVVVVJJJ
GGGGGGGWWWWWWWOOOOOOOOLLLLVVVSVVXXBBDDDDDDDDDDDWWWWWWWWWWHHHHGGGGGXXXXXXXXDDDDDVCZZZZZZZNNNNNIIIIIIIIIIIIIIIIIIIIXXXXIIIIIIIINNNNNTVVVVJVJJJ
GGGGGGGWWWWWWWOOOOOOOOLLLLLLSSSXXXBDDDDDDDDDDDDWWWWWWWWWWHHHHGGGGGGXXXXXXXXDDDVVCCCZZZZIIIINNIIIIIIIIIIIIIHHHHXHHXXXXIIIIIINNNNNNNNLLLLJJJJJ
GGGGGGGWWWWWWWOOOOOOOOLLLLLLSSSSSDDDDDDDDDDDDDDWWWWWWWWWWHHHHGNNGGGGGXXXXXXVVVYVVCVZZZIIIIINIIIIIIIIIIIIIIHHHHHHHXXXXIIJIIINNNNNNNNNLLLJJJJJ
GGGGGGGWWWWWWWOOOOOOOOLLLLLLSSSSDDDDDDDDDPPDDDDWWWWWWWWWWHHHGGGGGGGGGXXXXXXVXVVVVVVVFZZIIIIIIIIIIIIIIIIIIIHHHHHHHXXXGGIIYNNNNNNNNNNQLLLJJJJJ
GGGGGGGWWWWWWWOOOOOOOOLLLLLLSSSSSSSDSSSDDDPDDDDWWWWTHHTHHHHHHGYGGGGGGSXXXXXXXVVVVVVVFIIIIIIIIIIIIIIIIIIIIIHHHHHHHXXXGGYYYNNNNNYNNNNLLLLLLJJJ
GGGGGGTWWWWWWWSOOOOOOOLLLLLVVSSVSSSDSSDDDDDDDDDWWWWTTHTTHHHHHGYGHGGGGGXXXXXXVVVVVVFFFIFFFIIIIIIIIIIIIIBHHHHHHHHHHHHGGGGYYNYYYYYNLLLLLLLLLJJJ
GBBBBBBWWWWWWWSOOOOOOOLLLLVVVVVVVSSSSSSSDDDMDDDDDDDTTTTTHHHHHGYGHHHHGHHHSXXXXVVXXVFFFFFFFIIIIIIIIIIMIBBBBHHHHHHHHHHGGGYYYYYYYYYYLLLLLLLLLJJJ
WBBBBBBWWWWWWWSSSSLLLLLLLLLVVVVVVVSSSSSDDDDMMMDDDDDTTTTTTTTTHGGGGHHHHHHSSSSXXVVVXXXFFFFFFFIIIIIIIIIIIBZZBBHHHHHHHHHGGGYYYYYYYYYXLLLLLLLLLLJJ
GBBBBBBWWWWWWWSSSLLLLLLLLLLVVVVVVVSSSSSDDDDDMMMMMMTTTTTTTZZHHZZHHHHHHHSSSGSXXXXXXXFFFFFFIIIIIIIIZIZZZZZZBHHHHHHHHHGGGGGGYYYYYYYXXLLLLLLLLJJJ
GBBBBBBBBJJJJJSSSSSLLLLLLLLVVVVVVVVVSSSDSSSMMMMMTTTTTTTTTTZZZZZZHHHHSSSSSSSSSSSSXFFFFFFFFIIIIIIZZZZZZZZZBHHTTTHHHGGGGGGGYYYYXXXXXXXLLLLLJJJJ
LBBBBBBBBJJJJSSSSSSSHLLLLLLOOVVVVVVVVVSSSSSMMMMMMMTTTTTTTTZZZZZZZZZSSSSSSSSSSSSSFFFFFFFFFIIIZIZZZZZZZZZZZZTTTHHHHGGGGGGGGYYXXXXXXXXXLLJLJJJJ
VBBBBBBBBJJJSSSSSSSSWLBLLLOOOVVVVVVVOZZSZSMMWMMMMTTTTTTTTTZZZZZZZZZCSSSSSSSSSSJJJJJFFFFFFFFZZZZZZZYYYYYYYYYYTTHGGGGGGGGGYYXXXXXXXXXXXLJJJJJJ
VBBBBBBBBJJSSSSSSSSSWWLLLLOOOOVVVVVOOZZZZMVMMMMMMTTTTTTTTZZZZZZZZZZZSSSSSSSSSSSSSJFFFFFFFFLLNZZZZZYYYYYYYYYYTTGGGGGGGGGGYYYXXXXXXXXXXLJJJJJJ
VBBBBBBBBJSSSSSSSSSSWLLLLLLOOOOOOOOOOZZZZMMMMMMMMMTTTTTTTYZZZZZZZZZZZZSSSSSSSSSSSFFFFFFFFFLLZZZZZZYYYYYYYYYYTTGGGGGGGGGGYYYXXXXXXXXXXJJJJJJJ
VJJJJBBBBJLSSSSSSSSWWWLLWLOOOOOOOOLOZZZZZZMMMMMMMVTTTTTTTZZZZZZZZZZZSSSSSSSSSSSSSSFFFFFLLLLLZZZZZZYYYYYYYYYYTTTFFGGGFGGQQQYXCCXXXXXXXXJJJJJJ
VVVJJBBBBLLLSSSSSSSWWWWWWWWOOOWWOLLLZZZZZZNNMMMMQTTTTTTTMMMMZZZZZZEZZSSSSSSSSSSSSLFLLFFLLLLLLZZZZKYYYYYYYYYYTFFFFGFFFGQQYYYPKCKXXXXVJJJJJJJJ
VVVJJBBBBLLLLSSSSSSWWWWWWWWWOWWWLLLLLLZZZZZNNMMQQTTTTTTMMMMMZZZZZZESSSSSSSSSSSLSSLLLFFFLLLLLLLLLZLYYYYYYYYYYFFFFFFFFFQQQYYYPKKKKKBBJJLJJJJJJ
BBBBJPPJLLLLLSQQLWSWWWWWWWWWOWWWLLLLLLZZZNNNNMMMTTTTTTMMMMMZZYZYYYESSSKKKSSSSLLLLLLLFLLLLLLLLLLLLLYYYYYYYYYYTFFFFFFFFQQQPPPPPKKKKBBLILJJLJJJ
LLLLLPPJFLLLLLLLLWWWWWWWWWWWWWWWLLLLLLLLLMNMMMMTTTTTTMMMMMMMHYYYYYYYSSKKKSSSSSSSLLLLLLLLLLLLLLLLLLYYYYYYYYYYTFFFFFTTTQQTPPPXPKTKKBBLLLLLLLLJ
LLLLLLLFFFLLLLLLLWWWWWWWWWWWAAAAZZZLLLLLMMMMMMMMMMTTTTMMMMMMMMMYYYYYYYKKKSSSSSSSLLLLLLLTTTLLYYYYYYYYYYYYYYYYFFFFFFFTQQQTPPXXTKTKPLLLLLLLLLLL
LLLLLLLFFLLLLLLLLLWWWWWWWWWWAAAAZZZZZLLLMMMMMMMMMMMMMMMMMMMMMMYYYYYYYYYKTTTTTSSTTTTLLTLLTLLLYYYYYYYYYYYTTAAAAAFFFFZTTQTTXXXXTTTTTLLLLLLLLLLL
LLLLLLLLLLLLLLLLLLBOOOWWWWWWAAAAZZZZZLZLLMMMMMMMMMMMMMMMMMMMMMYYYYYYYYYKKTTTTTTTTTLLTTTTTTRRYYYYYYYYYYYTTAAAAAZZZZZTTQTTTXXTTTTTTTLLLLLLLLLL
LLLLLLLLLLLLLLLLLLOOOOWWWWWWWWAZZZZZZZZZLLJPPMMMMMMMMMFFFFFMMYYYYYYYYYTTTTTTTTTTTLLTTTTTTTTRYYYYYYYYYYYOOOAAAAAZZZZZTTTTTTTTTTTTTTLLLLLLLLLL
LLLLLLLLLLLLLLLLOLOOOOOWWWWWWAAZZZZZZZZZLJJPPPMLMMMMMMFCFFFMMYYYYYYYYTTTTTTTTTTTTTLLTTTTTTRRYYYYYYYYYYYOOAAAAAZZZZZZTTTTTTTTTTTTULLLLLLLLLLL
LLLLLLLLLLLLLLLOOOOOOOOWWWWLLLAAAZZZZZZZLLJJPPMLMLLMFFFFFFFFMYYYYYYYYYYTTTTTTTTTTTTTTTTTTRRRYYYYYYYYYYYAAAAAAAZZZZZZZTTTTTTTTTTTTLLLLLLLLLLL
LLLLLLLLLLLWLLLLOOOOOOOOWWBLLLALAAZZZZLLLLJJPPLLLLLMFFFFFFFFFFYYYYYYYYYTTTTTTTTQTTTTTTTTRRRAYYYYYYYYYYAXXXAAAAAAAAZZTTTTTTTTTTTTFFFWLLLLLLLL
LLLLLLLLLLLLLLLLZOOOOOBBBBBLLLLLZZZZLLLLLIJJPLLLLLLMFFFFFFFFFFYYYYYYYYYYYYTTTTTTWTTTTTTRRRRRYYYYYYYYYYAACCCQQAAAAFCZTTTTTTTTTTTTTFWWLLLLLLLL
LLLLLLLLLLLLLLLLLSOSSSBBBBBLLLLLLZLLLLILIILLPLLLLLLLFFFFFFFFFFFYYYYYYYYYTTTTTTTWWTTTTTTRRRRRAAAAAAAAAAAACCCCCAAAAFCTTTTTLLLLLLLLWFWWLLLLLLLL
LLLLLLLLLLVLLLYLSSSSSSSSBBLLLLLLLLLLLLIIIIILLLLLLLCCCCCCCCFFFFFFYYYYYYYYTTTTWTTWWWTTTWTTTRRRRRAAAAAAAAACCCCCCCAAACCCCRTTLLLLLLLLWWWWWLLLLLLL
LLLLLLLLLLLWLSSSSSSSSSSBBBLLLLLLLLLLLIIIIICCCCCCCCCCCCCCCCFFFFFFFYYYYYYYTTTTTTWWWWWTWWTRRRRRYAAAAAAAAAACCCCCCCCCCCCCCTTTLLLLLLLLWWWWWWLLLLLL
LLLLLLLLLLLWWWSSSSSSSSBBBBLLLLLLLLLLLIICCCCCCCCCCCCCCCCCCCFFFFFFYYYYYYXYTGTTTTWWWWWWWRTRRRRRRAAAAAAAAAACCCCCCCCCCCCCCCCTLLLLLLLLWWWWWWWLLLLL
LLLLLLALLLLLWWSSSSSSSSBBBLLLLLLLLLLLLIICCCCCCCCCCCCCCCCCCCPPPFFPYYYYYYXXXGTTTTXWWWWWWRRRRRRRRAAAAAAACCCCCCCCCCCCCCCCMMMMLLLLLLLLWWWWWWLLLLLL
ALLLLLAAAWWWWSSSSZSSSSSBBLLLLLLLLLLLCCCCCCCCCCCCCCCCCCCCCCFPPPPPPYYYYXXXXXXXXXXXXWWWRRRRRRRRRAAAAAACCCCCCCCCCCCCCCCCCCMMLLLLLLLLWWMMMMVLLLLL
AAAAAAAAWWWWWWWSZZSSSOOBBLLLLLLLLLLLCCCCCCCCCCCCCCCCCCCCCCPPPPPPPYYYYVXXXXXXXXXXWWRRRRRRRRRAAAAAAAAYYCCCCCCCCCCCCCCCCMMMLLLLLLMMWWMMMMVVVVLL
AAAAAAAAWWWWWWWWWOSSSZOOBLLLLLLLLLLICCCCCCCCCCCCCCCCCCCCCCPPPPPPPYYYYYXXXXXXXXXXWWRRRRRRRRRRAAAAAAAYYYYCCCCCCCCCCCCCCMWWLLLLLLMMWMMMMMMVVVVV
AAAAAAAAIWDDWWWWOOSSSOOLLLLLLLLLLLLLCCCCCCCCCCCCCCCCCCCCCCPPPPPPPPPPPXXXXXXXXXXXWWRRRRRRRRAAAAAAAAAAYYYCCCCCCCCCCCCCCHWWLLLLLLMMMMMMMMMVVVVN
AAAVAAAKBBDDWWWOOOOOOOOOLLLLLLLLLLLUCCCCCCCCCCCCCCCCCCCCCCPPPPPPPPPPXXXXXXXXXXXXWWRRRRRRRRAAAAAAAAAAYYYYYCCCCYYYYOHHHHWMLLLLLLMMMMMMMMMVVVVV
AAAVAAAKBBIIIOOOOOOOOVVOOVVVZZZLLLUUUUUUUUUUUIIICCCCCCCCCCPPPPPPFPPFFFHXXXXXXXXPAAARRRRAARRAAAAAAAAAYYYYYYYYYYYYYYHHHHWWLLLLLLMMMMMMMVVVVVVV
AAAVVAAKBBIRIOOOOOOOOOVVVVVVVZLLLLUBUUUUUUUUUIIICCCCCCCCCCPPPPPPFFPFFFXXXXXXXXNAAAABRRAAAAAAAAAAAAAAAYYYYYYYYYYYYYHYYWWMLLLLLLNMMVMVVVVVVVVV
AAAVVVBBBBRRIOOOOOOOOOVVVVVVVZSSLLLUUUUUUUUUUIIACCCCCCCCCCPPPPPPFFFFFFXXXXUXXNNAAABBRRKKAAAAAAAAAAAAAYSYYYYYYYYYYYYYYWWWLLLLLLNNMVVVVVVVVVVV
AAAAAVBBBBRRIOOORROOOOOVVVVVVSSLLLUUUUUUUUUUCCCAAAPPPPPPPPPPPPPPPPFFFXXXXXXNNNNAAAAAAKKKKKKAAAAAAAAAAYSSYYYYYYYYYYYYYYWWLLLLLLNVVVVVVVVVVVVV
AAAAABBPRRRRROGRROOOOOOVVVVJJSSSLLLUUUUUUUUUUCCAAAAPPPPPPPPPPFFFFFFFFXXXXXXXXNNAAAAAAKKKKKKAAAAAAAAAAYSZSYYYYYYYYYYYYYNNNNNNNNVVOOVVVVVVVVVV
AAAAAPPPRRRRRBRRRROOOOOVVSFSSHSSSSLLUUUUUUUUUUMMMMMPPPPPLIIPPPFFFFFFFXXXXXXXXNNAAAAAKKKKLLAAAAAAAAAAAASSSZYYYYYYYYYYYYNNNNNNNNVVNOVVVVVVVVVV
AAGGAPPRRRRRRRRRRROOOOOBVSFSSSSSSSLUUUUUUUUUUMMMMMMPPPPMIIIIIINNFFIFXXXXXXXXXNNAAAAAALLLLLGAAAAAAAAAAASSSZSSYYYYYYYYYNNNNNNNNNNNNVVVVVVVVVVV
AAGGRPRRRRRRRRRRRGOOOOOOOSSSSSSSSSLLUUUUUUUUMMMMMMMPPPMMIIIIIIIIFFIIXXXXXXXXAOAAAAAAALLLLLLLAAAAAAASSSSSSSSSYDYYYYYYYYNNNNNNNNNOOOVVVVVVVVVV
GGGGRRRRRRRRRRRRRRBBBBOOOSSSSSSSSSSLULUUUUUUUMMMMMMPPPMMMIIIIIIIIIIHOOOOOOOOOOXAAAAAAALLLLLCASADSASSSSSSIISSYDDDDDYYYYNNNNNNNNNOOOOOVVVVVVVV
GGTTRRURRRRRRRRRRVVBBBAKSSSSSSSSSSLLLLUUUUUMMMMMMMMMPPMMIIIIIIIIIIIIOOOOOOOOOAAAAAAAAAALLLLAASSSSAASSSSSSSSSYDDDDNNMMYYNNNNNNNNNNOOOVVVVVVVV
OOFTTTRRRRRRRRRRRVVBBBASSSSSSSSSSSSLSLUUUUUMMMMMMMMMMPMIIIIIIIOOOOOOOOOOOOOOOAAAAAAAAALLLLLTASSSSASSSSSSSSSUDDDDDNNNNNNNNNNNNNNNNOOOVOVVVVVV
OOOTTTRRRRRRRRRRRVVVBBAAASSSSSSSSSSSSLLLUUUMMMMMMMMMMMMIIIIIIIOOOOOOOJJJJJOOOOAAAAALLLLLLLLTSSSSSSSSSSSSSSSUDDDDDDDDNNNNNNNNNNNNNNOOOOOOOVNN
OOOOTRRRRRRRRRRRRVVVBBAAASSSSSSSSSSSSLLLUUMMMMMMMMMMMMMMMIIIIIOOOOOOOJJJJJOOOOOAAAAIIILLLLTTTTSDSSSSSSSSSSSDDDDDDDDDINDNNNNNONOOOOOOOOOOOVNN
OOOORRRRRRRRRRRRRRVVAAAAASSSSSSSSSSSLLLLMMMMFMMOOMMMMMMMMIIOOOOOOOOOOJJJJJOOOZOAAAAIIILLLLLLTSSSSSSSSSSSSSSDDDDDDDDDDLNNQNNOOOOOOOOOOOOOOOOO
OOORRRRRRRRRVVVRRVVVAAAAAAHSSSSSSSSSLLLLLMMMMMMOOOMMMMMMIIIOOOOOOOOOJJJJJJJZZZAAAAIIQLLLLLLLLLSSSSSSSSSSSSSDDDDDDDDLLLNNQQNOOOOOOOOOOOOOOOOO
OORRRRRVRRRRVVVVVVVAAAAAAAASSSSSSSSSLLLLLLMMMMOOOOOOMMCCIIIOOOOOOOOOOOJJJJJJZAAAAAIQQLLLLLLLLOSSNNSSNNNSSSSDDDDDDDDLLLLNQQNLOOOOOOOOOOOOOOOH
OORRMMVVRRRRVVVVVVVAAAAAAAASSSSSSSSSLLLLLLLLMLOOOOOOOMCCOIIOOOOOOOOOOOJJJJJZZAAAAAAAQLLLLLLLLOSSONSSNNNSSSSGGDDDDDLLGGGQQQOOOOOOOOOOOOOOOOHH
RRRMMMMVVVVVVVVVVAAAAAAAAAASSSSKKHHHHKLLLLLLLLOOOOOOOMCCCCIOOOOOOOOOOOJJJJJJAAAAAAAAQQLLLLLLLOOOONNNNRRNONSSGDDDDDLLGGQQQQCOOOOOOOOOOOOOHHHH
MMMMMMMMVVVVVVVVVVAAAAAAAAAAASSKKHHJJKLLLLLLLLOOOOOOOOCCCCKOOOOOOOOOOOJZZZJJJAAAAAAQQLLLLLLLLLOONNNNNNNNNNGGGDDDDGGGGGQQQCCCCOOOYOOOOOFHHHHH
SSMMMMMMVVVVVVVVVAAAAAAAAAAASSSKKKHHKKLLLLLLOLOOOOOOOCCCCCCOOOOOOOOOOOZZZZZZFZZZZZZQQLLLLLLLLLOOONNNNNNNNGGGGGGDGGGGGGQQCCCCCOOOOOOOOFFHHHHH
SMMMMMMMMMMVVVVVAAAAAAAAAAFAAKKKKKHKKKKKLLLOOOOOOOOOAACCCCCOOOOOOOOOJJJZZZZZZZZZZZZZQLLLLLLLLOOOONNNNNNNNGGGGGGDDGGGGGGCCCCCCCZZZOOOOFFFFHHH
SSSMMMMMMMVVVVVVAAAAAAAAAAFIYIKKKKKKKKKKKKKOOOOOOOOOOACCCCCJJJJJJJJJJJZZZZZZZZZZZZZZLLLLLLLLLOOOONNNNNGGGGGGGGGGGGGGGGGGCCCCCZZHHOOFEFFFFFFF
VSVVMMMMMMMVVVVVAAIAAIAIIIIIIIIKKKKKKKKKKKSSOOOOOOOOOACCCCJJMJJJJJJJJZZZZZZZZZZZZZZZSSSSSSSULOOOONNNNNGGGGGGGGGGGGGGGGGGCCCCCZHHHHFFFFFFFFVV
VVVVMMMMMMMVVVVVAVIIIIIIIIIIIIKKKKKKKKKKKKSSOOKKKKOQUACCCJJJJJJJJJJJZZKZZZZZZZZZZZZSSSSSSSSOOOOOGGNNGGGGGGGGGGGGGGGGGGGCCCCHHZHHHHHFFFFFFFFV
VVMMMMMMVVVVVVVVVVIIIIIIIIIIIKKKKKKKKKKKKKDDDDDKKUOUUUULLJJJJJJJJRRRRZZZZZZZZZZZZZZSSSSSSSSOOOOOGGNNGGGGGGGGGGGGGGGGGGCCCCCHHZHHHHHYHFFFFFFF
VVVVVVVMVVVVVVVVIIIIIIIIIIIIIKKKKKKKNNKKKDDDDDDKKUOUUUULLLJJJJJJJRRRRRRZZZZZZZZZZZZSSSSSSSSOOOOOOGGGBGGGGGGGGGGGGGGZZGCCCCHHHHHHHHHHHJFFFFFF
VVVVVVVVVVVVVVVVIIIIIIIIIIIIIIRKKKKKPNNNNNDDDDDDDUUUUUUULLJJJJJJJRRRRRRBRZRZZZUZZZZSSSSSSSSOOOOOOGGGGGGGGGGGGGGGGGGGGGCCCHHHHHHHHHHHHFFFFMFO
VVVVVVVVVVVVVVVIIIIIIIIIIIIISSSTTKDDDNDDDDDDDDDDDDUUUUUUSLLJJJJJJZZRRRRRRRRRRRUZZZZSSSSSSSSOOOOOOGGGGGGGGGGGGGGGGGGGIGCCCCCCHHHHHHHHHIIFFVVV
VVVVVVVVVVVPVVIIIIVIIIIIIIISSSSSSSSGDDDDDDDDDDDDDDUUZZZZZZZZJJOJJJRRRRRRRRRRRRUZYZZSSSSSSSSOOOOGGGGGGGGGGGGGFGGGGGGKOCCCCCCCMHHHHHHHHHHNNVVV
VVVVVVVVVVUUVVUUIIIIIIIIIIISSSSSSSGGDDDDDDDDDDDDDDDUZZZZZZZZJJOOJJJRRRRRRRRRIRUUYYOSSSSSOOOOOOOOGGGGGGGGGGGGGGGGGGGOOOOOCCMCMMHHHHHHHHHHVVVM
VVVVVVVVVUUUUUUUIIIIIITISSIISSSSSSSSDDDDDDDDDDDDDDDIZZZZZZZZJJOOOJRRRRRRRRRRUUUUYYYSSSSOOOOOOOOGGGGGGGGGGGGGHHHHTGTTOOOOOOMMMMMMHHHHHHHMMVVM
PVVVVVVVUUUUUUUUIIIIISSSSSSSSSSSSSSSDDDDDDDDDDDDDZZZZZZZZZZZOJOORRRRRRRRRRRUUUUUUUUSSSSOOOOOOOOPPGGGGGGGGGGHHHHHTTTOOOOOOOMMMMMMMHMMHHHMMMMM
PVXVVVVVVUUUUUUUUIIISSSSSSSSSSSSSSGFFDDDDDDDDDYYDZZZZZZZZSSOOOOOOORRRRRRRJUUUUUUUUOSSSSOOOOOOPPPPGGGGGGGGGGHHHHHTTOOOOOOOOOMMMMMMMMHHHHHHMMM
PPVVVVVVEUUUUUUFUUFJJFSSSSSSSSSSSSFFFIDDDDDYYDDYYZZZZZZZZSSSXOOOOOORROZRRJJUUUUUUUUSSSSOOOOOOOPPGGGGGGGGGGGGHHHHTTTOOOOOOOOMMMMMMMMHHHHHMMMM
PPPPVVVVEEEUUUFFFFFFFFSSSSSSSSSSSSFFFFDDDDDRYYYYIZZZZZZZZXXYXXOOOOORROORRQJUUUUUUUUUOOOOOOOPPPPPGGGGGGGGHGHHHHHHTTTOOOOOOOMMMMMMMMMAMUUHHHMM
PPPPPEVEEEEEEYFFFFFFFFFSSSSSSSSSSSSFFFDDDDDDYYYYYZZZZZZZZXXXXXXOOOOOOOOQQQJUUUUUUUQOOOOTOOOPPPSSSSGGGGGHHGHHHHHHTTTOOOOXXOOMMMMMMMMAMUUUHMMM
PPEEEEVEDEEEYYFFFFFFFFFSSSSSSSSSSSFFFDDDDDDYYYZZZZZZZZZZZXXXXXXOOOOOOQOQQQJUUUUUUUQQOOOOXOOPPPPSSSGGGGGHHHHHHHHHHHTTOOOXXXXMMMMMMMMMMUUUHMMM
PPEEEEEEEEYYYYFFFFFFFFFSSSBSSSSSSFFFFFDFDDDYYYZZZZZZZZZZZXXXXXXOOOOOQQQQQQJUUUUUQQQQQQQQOODPPPPSSBBGGGGHHBHBHHHHHTTTTTTXXXMMMMMMMMMMMUUUGGGG
PPEHEEEEEEEYYYFFFFFFFFBBBBBSSSSSSSFFFFFFDYYYYYZZZZZFXXXXXXXXXXXOOOOOUOQQQQUUUUUUQQDDDQQQQQDDDPPSGBBKBOBBBBBBHHHHHTLTTTTXXXXMMMMMMMFFUUGGGGGG
PPPEEVEXEEYYYYFFFBBFFBBBBBBBSSSSSFFFFFFFYYYYYYZZZZZFFXAXXXXXXXXXOOOOOOQQQQQURUUUVQDDDDDDJQDPPPPSGGBBBBBBBBRRHHHLLLLLLTTTXXXXXXMMTFFFUGGGGGSS
PPPEEVEXXXXYYYYFFBTTBBBBBFFBSFSFFFFPPFYYYYYYYYZZZZZFFAAXXXXXXXXXOOOOQQQQQQQQRQQVVVDDDDDDDDDDDPPPBBBBBBBBBBBBHHHHLLLLLTXXXXXXXXXXFFFFFGGGGGGS
PPPEPXXXXXYYYYYFFFTTBBBBBFFFFFSFFFFPPPGSSSYYYYZZZZZFAAAAXXXXXXWOOOOOQQQQQQQQQQQQVVDDDDDDDDDDDPPPPBBBBBBBBBBNNLLLLLLLLLLXXXXXXGFFFFFFGGGGGGGG
PPPPPXXXXXYYYYYYTTTTTTCFFFFFFFFFFFPPPZZZZZZZZZZZZZZZZAAAATAXXWWWWWAQQQQQQQQQQQXVVVDDDDDDDDDDDPPPPBBBBBBBBBBLLLLLLLLLLLLXLLXXXGGFFFFFGGGGGGGG
PPPPPXXXXXXYXXTTTTTTTTFFFFFFFFFFFZZZZZZZZZZZZZZZZZZZZJAAAAAAWWWAWWASQAQQQQQQXXXVVDDDDDDDDDDDDPMBBBLBBBBBBBBLLLLLLLLLLLLLLXXGGGGGGFGGGGGGGGGG
PPPXXXXXXXXXXXTTTTTTTTFFJFFFFFFFFZZZZZZZZZZZZZZJJZZZZJAAAAAAWWAAAAAAAAQQQQQXXXXVXDDDDDDDDDDDDPMBBLLLLBBBBBLLLLLLLLLLLLLLLLLLGGGGGGGGGGGGGGGG
PPPXXXXXXXXXXXXTTTTTTTTFFFFFFFFFFZZZZZZZZZZZZZZZZZZZZJAAAAAWWAAAAAAAQQQQQQXXXXXXXYDDDDDDDDDDDMMMMMMMLBBBBBBBLLLLLLLLXXXXXXNNNNNGGGGGGZGGGGGG
PPPXXXXXXXXXXXXXTTTTTTTFFFFFFFFFFZZZZZZZZZZZZZZZZZZZZJAAAAAZZZAAAAAAJJJQQQQXXXXXYYDDDDDDDDDDDMMMMMMMLLBMBBLLLLLLLXXXXXXXXXNNNNNGGGGGGZGZZNGG
PPPXXXXXXXXXXXXXXTTTTTTTVVDFFFFFFZZZZZZZZZZZZZZZZZZZZJAAAAZZZELALLAJJJJJQQXXXXXXYXDDDDDDDDDDMMMMMMMMMMYMYYLLLLLLXXXXXXXXXXNNNNPPPPGZZZZZGGGV
PPPXXXXXXXXXXXXXTTTTTTTDDVDFFFFFFZZZZZZZZZZZZZZJJJJJJJAAZZZZZLLLLLJJJJJYXXXXXXXXXXTDDDDDDDMMMMMMMMMMYYYMYYYZLLLLXXXXXXXXXXNNNNNPPPPZZZZZZZZZ
PPPPXXXXXRRXXXEXTTTTTDDDDDDXDDMMFFFFGZZZZZZZZZZJJJJJJJJJJJJJZZZZLCJJJLLYYXXXXXXXXXXDDDDDDDMMMMMMMMMMMYYYYYLLLLLLXXXXXKXXXXNNNNNNPPPZZZZZZZZZ
PPPPXXXXXRXXXXXXTTTTTTDDDDDDDDDMIFZFGZZZZZZZZZZAAGAAZJJJJJJJZZZZLLJJLLLYYYYXXXXXXXQDDDDDDDMMMMMMMMMMMYYYYYYYLLLRXXXXXNXXXXNNNNNNPPPZZZZZZZZZ
PPPPPXXXXRXVXXTTWTTTDDDDDDDDDDDMIPFFULLLLLLGGGGGGGGAZJJJJJJJZZZZZLLJLLLLYYYXXXXXYYYYYDDDDDMMMMMIIMMMYYYYYYYYZLLRRXXXXNXXXXNNNNNNNNPZZZZZZZZZ
PPPPPPDXDRXVVDATTTTTDDDDDDDDDDBIIIUUULLHLGGGGGGGGGGZZJJJJJJJZZCLLLLLLLLLYYYYXXYYYYYYYGGGMMMMMMMMIIMYYYYYYYYYZRRRRRZMNNXXXXNNNNNNNNNLZZZZZZZZ
PPPPPPDDDRDDDDTTTTTTDDDDDDDDDDDIIUUUILLLLLLLGGGGGGGGZJJJJJJJZCCLLLLLLLLLUUUXXXYYYYYYGGGGMMMMMMMMIIMMYYYYYYYZZRRRRZZMMNXXXXNNNNNNNNNNZZZZZZZZ
PPPPDDDDDDDDDDNNTTTTDDKDDDDDDDIIIUUIILLLLGGLGGGGGGGGZJJJJJJJCCCCLLLLLLLLUUYYYYYYYYYYYGGGGGMGMMMMMMMMYYYYYYYYZRRRZZMMMMXXXXNNNNNNBBNZZZZZZZZZ
PPPPPDDDDHDDDDDDZZZKKKKDKKDDIIIIIIIIILLLGGGGGGGGGGGGGJJJJJJJCCCLLLLLUULUUUYYYYYYYYYYYGGGGZGGGGMMMMMYYYYYYYZZZZZZZZZMMMXXXXNNNNNNBBNZZZZZZZZZ
PPPPPDDDDDDDDQDDDZZKKKKDKKKDDIIIIIIIIIILGGGGXGGGGGGGGJJJJJJJCCCCLLLLLUUUUUUYYYYYYYYYYGGGGGGGNGMMMMMYIYBBBZZZZZZZZZZMMMMMMNNNNNNNBBZZZZZZZZZZ
PPPDDDDDDDDDDQDQZZZZKKKKKKKIIIIIIIIIIUULGXXXXGGGGGGGGJJJJJJJCCCCCLLLLUUUUUUUYYYYYYYYYGGGGGGGGGMMMMMMMYBQQQQZZZZZZZZMMMMNNNNNNNNNBBZZZZZZZZZZ
PPPPDDDDDDDDZQQQZZZZZKKKKKKIIIIIIIIIIYYYYYXXYGGGGGGXXXXXXXXXXCCCCCLLLUUUUUTUYYYYYYYYYGGGGGGGGGMMMMMMBBBQQQQZZZZZZMMMMMMMNXXNNNBBBBBBZZZFZZZZ
PPPPDDDDDDDDZQQQZZZZZZZKKKKIIIIIIIIIIYYYXXXYYYYGXXXXXXXXXXXXCCPCCCCCUUUUUUTUYYYYYYYYYYGGGGGGGLMMMMMMBBBQQQQBZZZZZZZMMMSSSSXNNNNBBBBBZQZZZZZZ
PTTTDDDDDDDDZZZZZZZZZZZZKKKKIIIIIIIIIYYYYYYYYYYXXXXXXXXXXXXPPCPPCCCCCUUUUUUUYYYYYYYYYYGGGGGGGMMMMMMMMBBQQQQBZZZZZZZMSSSSSSSLLBBBBBYYQQQQQZZZ
PTTTADDDDDZZZZZZZZZZZZZKKKKIIOOIIIIIIYYYYYYYYYYYZXXXXXXXXXPPPPPCCCCCCCUUUUUYYYYYYYYYYYGGGGGGGMMMMUMUMKKQQQQZZZZZZHHSSSSSLLLLLBBBBYYQQQQQQQZZ
TTTTAADTDDDZZZZZZZZZZZZKKKKIIIIIIIIIIIYYYYYYYYZZZZZXXXXXXPPPPPPPPCCCCCUUUUUUYYYYYYYYYMMGGGGGGMMMUUUUUUKQQQQZZBZZZZSSSSSSSLLLLLBYYYYYYQQQQQQQ
TTTTTATTTTDDZZZZZZZZZKKKKKKIIIIIIIIIIIIYYYYYYYYYZZXXXXXXXPPPPPPPPPCUUUUUAUUYYYYYYYEEEGGGGGGTMMMMVVUUUBBQQQQNNZZZZNSSSSSLLLLLLLBLLYYYYYQQQQQQ
TTTTTTTTTTZZZZZZZTZZKKKKKIIIIIIIIIIIIGIGYYYYYYYYZZXXXXXXXXPPPPPPPPCCCUUUAUUYYYYYYEEEEEEESGGTTTMUUUUUUBBQQQQNNNZNNNSSSSSSSLLLLLLLLYYYYYQQQQQQ
TTTTTTTTTTVVZZZZZZZZZZZKKAAAIAAIIIIGGGGGYYYYYYYYZYYYXXXXXXPPPPPPPPCCCUUUAAAYYYYYYEEEEEEEEGEEEEMMUUUUUUUXXBKKKINNNNSSSSSSSLLLLLLLLLYYYYYLQQQQ
TTTTTTTTTTTTPZZZZZZZZKKKAAAAAAAIIGGGGGGGGYYYYYYYYYYYXXXXXXPPPPPPPPPCCUUAAAAYYYYEEEEEEEEEEEEEEEMMUUUUUUUXXBIIIIIIIISSSSSSSLLLLLLLYLYYYYYLLLLQ
TTTTTTTTTTTTTLLZZZNAAAALLAAAAAGIGGGGGGGGGYYYYYYYNYXXXXXXXPPPPPPPPPPPPPIIAAAAAYYEEEEEEEELEEEQEMMQUUUUUUUUIIIIIIIIIIISSSSSSLLLLLLLYYYYYYYLLLQQ
TTTTTTTTTTTTLLZZLLAAAAQQLCAAAAGGGGGGGGGOGYYYYYYYXXXXXXXXXPPPPPPPPPKKIIIAAAAAAAEEEEEEEEEEEEQQQQMQQUUUUUUIIIIIIIIIIIISSSSSSSLLLLLYYYYYYYYLLLLQ
TTTTTTTTTTTTLLLLLLLLAAQLLLALAAAGGGGGGGGGGYYYYYYYXXXXXXXXXPPPPPPPPPPPIIIAAAAAAAAEEEEEEEEVVVQQQQQQQQUUUVVIIIIIIIIIIIISSSSSSSLLYYYYYYYYYYYLLLQQ
TTTTTTTTTTTTLLLLLLLVAAVVLLLLGGGGGGGGGEGGGYYYYYRYYXRRXXXXXPPPPPPPPPPPPIIIIAAAAAAAEEEEEEEVVQQQQQQQQQQUVVVVVIIIIIIIPIISSSSSSSLYYYYYYYYYYYYYYYQQ
TTTTTTTTTTTTLLLLLLLVVVVVLLLLLGGGGGGGGEYYYYYYYYRYRRRRXXXXXPPPPPPPPIIIIIIAAAAAAAAAEEEEEEEQQQQQQQQQQQQUVVVVVIIIIIIIIIGSSSSSSSSYVVYYYYYYYYYYYQQQ
TTTTTTTTTTTTTLLLLLLLVVLLLLLLGGGGFGGGGGGYYYYYYYRYRRRRXXRRPPPPPPPIIIIIIIIIIIAAAAAAAAAEEEEQQQQQQQQQQQUUVFFFIIIIIIIIYYGGSSSSSSSSVYYYYYYYYYYQQQQQ
TTTTTTTTTMTLLLLLLLLLLVLLLLLLGSSGGGGSSSYYYYYYYRRRRRRRRRRRRRPPPPPIIIIIIIIIIIIAAAAAAAAEHEEQQQQQQQQQQQQQVVFFIIIIIIIYYYGGGVVSVSVVVYYYYYYYQQQQQQQQ
TTTTTTTTLLLLLLLLLLLLLLLLLLLLGSSSGTGSSYYYYYYYYYRRRRRRRRRRRRRPRRIIIIIIIIIIIAAAAAAAAAAEHEEQQQQQQQQQQQQQQFFFFIIIIIIIIYYGGGVVVVVVVYYYWYYYQQQQQQQQ

1279
resources/2024/day13.txt Normal file

File diff suppressed because it is too large Load Diff

500
resources/2024/day14.txt Normal file
View File

@@ -0,0 +1,500 @@
p=24,25 v=-48,-26
p=7,8 v=-96,-2
p=7,80 v=-66,22
p=5,18 v=25,-98
p=45,67 v=26,90
p=54,71 v=3,67
p=62,66 v=-5,81
p=5,82 v=-7,-45
p=66,89 v=93,-43
p=70,51 v=33,-7
p=75,59 v=-20,-77
p=66,40 v=93,55
p=32,79 v=79,45
p=99,13 v=-18,50
p=13,68 v=-43,-53
p=84,85 v=-69,-65
p=37,84 v=11,-57
p=28,10 v=19,-93
p=78,82 v=-56,36
p=20,69 v=-3,-62
p=39,78 v=27,-1
p=51,87 v=-32,-17
p=90,26 v=20,66
p=35,89 v=-11,20
p=71,2 v=-80,92
p=41,40 v=-64,-30
p=38,8 v=-71,54
p=72,58 v=36,-80
p=62,97 v=52,83
p=96,74 v=90,-23
p=76,75 v=-43,-9
p=35,95 v=74,13
p=90,17 v=99,6
p=61,26 v=17,81
p=43,71 v=-43,-51
p=6,18 v=-62,-9
p=37,62 v=-23,-11
p=60,97 v=36,-64
p=54,63 v=-23,-95
p=76,85 v=24,-4
p=38,54 v=-38,-95
p=48,18 v=52,-49
p=45,36 v=-75,-4
p=31,87 v=64,50
p=4,87 v=68,9
p=25,40 v=99,53
p=74,18 v=-73,-71
p=5,22 v=76,65
p=66,12 v=96,-64
p=20,71 v=68,-3
p=3,20 v=4,-77
p=27,43 v=49,55
p=25,70 v=-52,-84
p=90,64 v=39,52
p=32,69 v=82,88
p=2,97 v=-78,76
p=56,6 v=-71,-27
p=91,31 v=84,-41
p=25,12 v=-91,-51
p=7,43 v=-11,59
p=3,55 v=-6,-44
p=83,102 v=9,-76
p=54,40 v=-94,5
p=3,77 v=80,45
p=32,6 v=3,-35
p=14,34 v=-74,-41
p=16,30 v=-21,-86
p=34,71 v=-75,-62
p=79,11 v=67,-10
p=80,11 v=61,9
p=14,84 v=-59,-83
p=73,66 v=-56,3
p=26,61 v=41,-70
p=45,35 v=-97,40
p=84,39 v=-99,55
p=95,50 v=-66,-56
p=17,35 v=-33,-74
p=33,51 v=4,-22
p=6,77 v=-49,-45
p=9,61 v=28,85
p=14,91 v=-70,-12
p=88,73 v=49,-14
p=73,39 v=-16,73
p=68,83 v=25,60
p=3,31 v=83,62
p=31,102 v=30,-49
p=29,29 v=45,-23
p=47,37 v=97,26
p=35,46 v=87,39
p=13,36 v=-74,-37
p=81,33 v=81,-17
p=6,20 v=-14,43
p=94,41 v=89,-72
p=55,44 v=-91,95
p=92,87 v=-17,64
p=54,79 v=-57,-58
p=53,49 v=-19,-84
p=25,21 v=56,-82
p=82,53 v=51,-85
p=75,27 v=69,-4
p=21,87 v=61,-6
p=6,63 v=-74,-77
p=20,4 v=89,-33
p=21,25 v=-78,62
p=24,0 v=-74,43
p=34,86 v=-43,74
p=72,83 v=-35,85
p=47,17 v=41,87
p=3,73 v=-77,-36
p=98,96 v=-73,75
p=66,93 v=-26,20
p=48,79 v=56,-69
p=91,89 v=-47,9
p=49,11 v=96,-47
p=33,4 v=-86,-16
p=76,45 v=-46,3
p=12,28 v=-40,36
p=64,99 v=-79,-83
p=19,83 v=-10,-3
p=87,57 v=84,-33
p=47,69 v=-64,-58
p=56,9 v=33,-60
p=98,94 v=-14,-25
p=60,59 v=-1,-41
p=18,91 v=-93,-85
p=24,21 v=98,-85
p=51,83 v=-23,45
p=12,41 v=-41,-34
p=8,86 v=-55,-50
p=23,48 v=-11,73
p=46,24 v=-4,-75
p=12,82 v=-6,-47
p=78,37 v=-16,-55
p=13,59 v=68,-66
p=63,100 v=44,83
p=99,66 v=31,-65
p=21,97 v=17,-7
p=1,101 v=91,-90
p=16,74 v=90,8
p=15,102 v=98,-9
p=31,34 v=12,91
p=49,65 v=-8,96
p=48,62 v=-41,-58
p=57,13 v=-72,61
p=82,30 v=-69,47
p=31,21 v=41,-44
p=25,93 v=-30,-69
p=33,45 v=4,-96
p=57,15 v=59,10
p=6,74 v=61,-43
p=9,43 v=-64,51
p=69,67 v=10,-51
p=44,93 v=60,93
p=39,77 v=94,-39
p=38,86 v=86,12
p=43,98 v=26,75
p=64,49 v=-87,-84
p=13,64 v=42,30
p=69,91 v=-39,-91
p=83,100 v=-12,61
p=28,66 v=-62,-27
p=15,90 v=-3,-46
p=0,42 v=27,18
p=56,99 v=-24,-67
p=70,68 v=-61,74
p=7,8 v=-70,35
p=5,100 v=16,-13
p=83,49 v=-22,73
p=63,18 v=64,-56
p=78,84 v=28,-57
p=89,39 v=36,26
p=72,31 v=-80,51
p=72,88 v=8,70
p=29,8 v=34,65
p=36,11 v=-86,39
p=16,27 v=12,-52
p=63,63 v=59,63
p=1,4 v=-21,-79
p=95,86 v=-81,-79
p=30,27 v=90,21
p=17,40 v=81,-5
p=47,24 v=47,93
p=4,23 v=31,-49
p=61,34 v=-42,-78
p=34,61 v=-62,44
p=48,18 v=-12,-97
p=32,81 v=-74,-75
p=61,15 v=96,-98
p=8,86 v=87,-54
p=26,95 v=-63,71
p=94,61 v=13,48
p=26,101 v=94,-57
p=24,102 v=4,2
p=83,56 v=-56,44
p=96,37 v=91,-8
p=60,43 v=-18,5
p=93,68 v=92,1
p=79,57 v=-9,77
p=65,68 v=-16,-51
p=26,28 v=-44,-80
p=39,22 v=-75,-23
p=90,0 v=-73,83
p=66,88 v=10,75
p=61,55 v=-87,52
p=43,2 v=45,68
p=85,25 v=-91,-12
p=14,79 v=-50,-20
p=32,98 v=22,21
p=85,59 v=74,-5
p=4,50 v=-14,8
p=99,85 v=35,-28
p=76,80 v=-2,64
p=49,36 v=-8,14
p=60,65 v=-12,67
p=4,84 v=-98,-82
p=0,92 v=-74,-50
p=88,94 v=26,36
p=20,37 v=-7,-8
p=81,28 v=21,-59
p=95,33 v=-39,36
p=26,45 v=-86,23
p=82,19 v=2,-12
p=85,60 v=32,-44
p=5,60 v=79,10
p=53,33 v=-12,62
p=40,79 v=-71,-47
p=75,31 v=-95,95
p=43,2 v=41,-86
p=17,86 v=-81,82
p=10,15 v=-31,46
p=7,74 v=-25,89
p=69,8 v=-61,32
p=82,65 v=-39,74
p=73,101 v=-12,-79
p=51,9 v=93,-16
p=95,56 v=13,15
p=96,67 v=34,29
p=19,91 v=-31,89
p=2,43 v=-96,-55
p=68,60 v=17,-91
p=17,86 v=8,-43
p=5,95 v=16,71
p=49,20 v=37,21
p=6,67 v=-40,96
p=47,95 v=-32,-76
p=45,71 v=-81,2
p=46,31 v=-34,-89
p=49,17 v=-79,-97
p=66,82 v=18,-95
p=69,86 v=81,-21
p=5,87 v=-10,-21
p=84,81 v=47,97
p=89,9 v=13,-60
p=34,15 v=-67,-38
p=51,46 v=-28,-91
p=94,99 v=-21,-35
p=15,20 v=3,48
p=26,72 v=-32,13
p=80,5 v=-43,-20
p=64,82 v=-49,-75
p=56,58 v=-94,81
p=29,86 v=79,16
p=98,60 v=-36,4
p=23,47 v=-37,77
p=48,66 v=63,78
p=48,92 v=-97,74
p=58,86 v=85,27
p=99,85 v=57,97
p=98,53 v=-28,-25
p=72,44 v=-48,31
p=35,67 v=75,30
p=22,11 v=38,13
p=95,41 v=-85,36
p=3,55 v=-85,-66
p=50,57 v=-94,11
p=58,2 v=-42,-64
p=45,3 v=-97,10
p=1,30 v=97,-31
p=75,68 v=13,-58
p=79,101 v=62,-98
p=20,26 v=83,25
p=49,4 v=25,-16
p=46,54 v=89,7
p=86,42 v=-43,-81
p=6,3 v=-99,-5
p=74,50 v=-61,22
p=40,13 v=-38,-57
p=5,54 v=-5,-65
p=55,66 v=10,-25
p=52,82 v=-55,-28
p=70,18 v=-68,-49
p=54,10 v=-38,-16
p=79,35 v=54,-45
p=95,64 v=80,6
p=88,62 v=-56,78
p=65,28 v=-39,43
p=69,29 v=-35,-78
p=68,99 v=-5,79
p=37,22 v=30,-49
p=98,55 v=-92,-84
p=3,1 v=-10,-64
p=56,60 v=49,26
p=38,25 v=-56,91
p=93,22 v=46,87
p=97,11 v=13,-86
p=16,15 v=23,76
p=34,58 v=45,15
p=20,59 v=-12,72
p=30,78 v=-25,50
p=61,59 v=-53,37
p=33,2 v=75,-24
p=36,5 v=81,43
p=90,93 v=-10,50
p=60,74 v=14,96
p=56,40 v=-56,96
p=79,6 v=77,-71
p=87,64 v=-2,-62
p=25,66 v=64,-47
p=4,13 v=-66,54
p=47,57 v=67,59
p=39,64 v=90,-88
p=81,68 v=-73,52
p=59,36 v=-42,-89
p=0,4 v=14,83
p=20,5 v=-67,-9
p=100,45 v=20,-44
p=85,27 v=54,-48
p=58,54 v=-16,-11
p=71,4 v=-54,42
p=22,98 v=83,-46
p=32,7 v=-26,32
p=33,52 v=37,-62
p=82,33 v=-28,14
p=90,11 v=-88,-97
p=39,79 v=52,45
p=60,15 v=70,-79
p=3,38 v=-70,-29
p=10,80 v=27,-10
p=22,22 v=-89,7
p=23,29 v=-74,49
p=45,34 v=26,51
p=59,63 v=-3,41
p=9,28 v=-82,89
p=18,42 v=-10,-67
p=2,80 v=-3,-80
p=94,73 v=13,89
p=89,73 v=-50,-40
p=22,85 v=71,-38
p=20,99 v=52,-10
p=40,89 v=52,27
p=47,99 v=-18,59
p=71,55 v=25,-47
p=69,102 v=-31,-64
p=67,43 v=-91,44
p=79,27 v=69,-72
p=43,53 v=89,22
p=59,30 v=26,-46
p=53,54 v=37,-33
p=72,11 v=-80,-27
p=56,63 v=33,-14
p=53,61 v=24,86
p=40,77 v=-17,-66
p=88,88 v=53,33
p=40,82 v=56,-76
p=16,2 v=60,-94
p=17,83 v=-78,-3
p=16,99 v=-44,13
p=88,19 v=-73,40
p=61,16 v=36,-30
p=1,90 v=-21,-80
p=65,92 v=-95,-30
p=100,98 v=24,31
p=45,54 v=-42,30
p=87,60 v=56,-57
p=97,43 v=75,-96
p=54,64 v=3,69
p=73,29 v=-5,84
p=69,5 v=-99,-27
p=18,8 v=98,94
p=9,4 v=92,61
p=69,50 v=38,34
p=9,52 v=-85,74
p=33,16 v=34,-86
p=38,68 v=15,45
p=93,82 v=25,17
p=22,34 v=6,-51
p=40,81 v=79,-6
p=62,20 v=23,86
p=2,21 v=43,-60
p=19,79 v=-74,38
p=70,3 v=-20,-81
p=57,66 v=-4,-22
p=54,36 v=65,-30
p=48,83 v=-60,-43
p=71,41 v=92,-56
p=90,66 v=-77,-62
p=65,15 v=-24,-79
p=49,48 v=-53,81
p=41,15 v=71,-49
p=59,58 v=83,18
p=27,84 v=-38,64
p=94,34 v=2,36
p=12,34 v=-55,-30
p=64,40 v=-27,29
p=74,28 v=-91,-63
p=81,86 v=-77,-10
p=83,26 v=32,47
p=20,44 v=-63,-96
p=1,48 v=-51,-11
p=69,18 v=-5,-82
p=63,18 v=16,-28
p=88,1 v=-2,46
p=80,44 v=2,33
p=10,35 v=72,10
p=79,35 v=45,-72
p=6,13 v=-18,3
p=40,43 v=41,-4
p=100,18 v=-51,-93
p=71,54 v=94,37
p=4,93 v=50,97
p=9,56 v=76,-77
p=89,38 v=-50,92
p=96,31 v=35,58
p=73,11 v=96,-86
p=36,67 v=-60,27
p=44,77 v=-82,71
p=67,53 v=96,61
p=14,82 v=72,42
p=96,14 v=65,98
p=91,8 v=78,-72
p=44,80 v=-22,-67
p=47,59 v=-75,48
p=90,52 v=-65,-3
p=10,41 v=-29,-70
p=57,90 v=-75,13
p=42,43 v=67,-85
p=51,72 v=33,79
p=33,87 v=60,56
p=93,55 v=-77,-44
p=31,29 v=64,-19
p=91,81 v=21,86
p=100,99 v=-66,-24
p=68,90 v=29,23
p=43,25 v=-6,-49
p=62,37 v=-98,-74
p=57,11 v=97,-83
p=89,85 v=74,14
p=29,18 v=48,-13
p=84,92 v=-43,-93
p=33,5 v=19,94
p=2,85 v=-58,12
p=18,95 v=-41,42
p=75,59 v=34,91
p=0,56 v=-51,-58
p=85,10 v=-91,-37
p=64,20 v=-42,-23
p=28,30 v=-27,7
p=18,46 v=-96,73
p=33,93 v=-93,-53
p=29,64 v=30,-29
p=65,53 v=-42,15
p=26,92 v=11,62
p=69,34 v=-99,-4
p=44,15 v=-94,-64
p=24,42 v=-22,88
p=37,8 v=41,87
p=22,77 v=-54,-54
p=9,13 v=-18,85
p=90,97 v=46,36
p=37,61 v=64,93
p=96,78 v=80,-47
p=92,62 v=6,74
p=19,20 v=-44,-23
p=63,43 v=-16,-4
p=85,0 v=-73,-64
p=37,53 v=-11,-81
p=28,55 v=11,-40
p=77,22 v=-72,-67
p=88,86 v=47,60
p=43,50 v=-19,-95
p=46,28 v=11,3
p=16,5 v=28,66
p=85,85 v=-36,-98
p=95,15 v=9,17
p=46,70 v=-64,82
p=24,49 v=38,-84
p=94,5 v=-24,-83
p=59,73 v=-98,49
p=13,75 v=72,12
p=68,27 v=-57,-5
p=13,71 v=-55,-84
p=57,12 v=-68,28
p=21,90 v=-45,16
p=38,4 v=-93,21
p=66,96 v=-72,-13
p=34,95 v=-41,-90
p=85,39 v=-18,-30
p=3,94 v=9,97
p=89,12 v=5,-67
p=44,58 v=-4,-62

View File

@@ -0,0 +1,500 @@
p=70,7 v=75,-38
p=67,47 v=92,-45
p=91,51 v=23,10
p=55,16 v=69,6
p=76,64 v=-29,65
p=89,18 v=-45,64
p=18,90 v=70,61
p=61,97 v=-53,-82
p=71,38 v=-20,-55
p=15,72 v=-10,-64
p=53,77 v=-99,98
p=58,99 v=-74,-58
p=49,54 v=2,-85
p=33,23 v=-84,-70
p=10,36 v=5,-70
p=100,64 v=-79,18
p=85,52 v=54,-89
p=88,76 v=-45,-81
p=37,98 v=76,-55
p=58,97 v=6,43
p=24,10 v=30,-87
p=12,73 v=-94,-87
p=40,31 v=-60,-48
p=56,32 v=-69,-18
p=71,86 v=-47,16
p=0,45 v=60,-27
p=79,52 v=14,13
p=53,97 v=-53,-64
p=90,100 v=16,-42
p=23,93 v=-50,57
p=41,67 v=-23,-36
p=69,1 v=-76,-42
p=35,30 v=-44,-81
p=52,77 v=80,-95
p=4,85 v=-73,-78
p=83,15 v=-68,-43
p=58,55 v=-52,95
p=23,70 v=24,-37
p=7,81 v=62,35
p=6,100 v=-56,-78
p=87,60 v=-45,-31
p=28,22 v=91,-79
p=68,18 v=-47,-29
p=6,79 v=98,89
p=56,60 v=-44,19
p=85,74 v=81,-41
p=12,65 v=83,-94
p=70,19 v=29,66
p=36,64 v=-63,90
p=79,34 v=12,-93
p=19,86 v=95,-15
p=45,21 v=21,96
p=2,32 v=-13,72
p=28,52 v=1,-14
p=26,57 v=13,-85
p=39,5 v=72,3
p=17,84 v=-35,-59
p=87,42 v=-63,38
p=97,50 v=90,63
p=23,23 v=-92,46
p=28,60 v=-69,-99
p=84,24 v=56,42
p=28,83 v=-18,69
p=14,79 v=-81,-83
p=70,3 v=-13,-76
p=14,62 v=47,-54
p=14,11 v=-46,25
p=21,87 v=68,12
p=91,93 v=-62,-68
p=87,61 v=16,31
p=92,53 v=54,-17
p=50,54 v=42,76
p=57,91 v=11,20
p=65,20 v=24,39
p=67,32 v=37,-69
p=20,43 v=9,54
p=69,32 v=10,-75
p=20,47 v=-92,-31
p=53,30 v=-17,-97
p=1,82 v=-98,53
p=46,54 v=47,-46
p=70,4 v=-36,-60
p=59,18 v=42,-16
p=62,14 v=-36,11
p=84,31 v=54,-93
p=9,70 v=-22,-27
p=5,26 v=-87,-98
p=89,46 v=-16,-9
p=98,6 v=-1,-92
p=75,8 v=75,-24
p=90,83 v=71,-24
p=47,6 v=95,97
p=20,35 v=-71,59
p=60,18 v=63,-70
p=98,35 v=43,-40
p=97,91 v=39,61
p=5,79 v=84,-20
p=90,61 v=16,-63
p=93,66 v=37,80
p=41,20 v=-86,60
p=81,49 v=-87,19
p=76,79 v=-67,28
p=84,4 v=-66,47
p=7,69 v=-43,93
p=60,46 v=26,-91
p=12,101 v=66,79
p=15,15 v=-15,-37
p=6,80 v=-20,-54
p=38,87 v=-59,-95
p=0,5 v=62,83
p=38,95 v=76,-37
p=34,7 v=-86,88
p=45,18 v=-63,69
p=14,24 v=-27,-97
p=38,40 v=74,-62
p=94,48 v=32,24
p=27,6 v=11,78
p=52,11 v=-7,-8
p=67,30 v=-93,-98
p=49,82 v=-95,-51
p=67,40 v=-57,-45
p=61,63 v=48,9
p=93,34 v=64,-44
p=10,86 v=-50,62
p=12,26 v=45,-88
p=32,29 v=-33,-30
p=19,83 v=-18,-77
p=97,73 v=-20,44
p=40,29 v=99,-75
p=21,63 v=-31,67
p=77,81 v=98,77
p=19,25 v=28,82
p=10,86 v=67,-12
p=11,93 v=48,-25
p=66,20 v=-13,24
p=15,51 v=-75,-89
p=82,31 v=-82,-75
p=100,28 v=1,-30
p=52,50 v=-42,-71
p=22,74 v=-37,-19
p=32,26 v=-23,-52
p=13,75 v=-81,62
p=71,92 v=10,-73
p=18,54 v=-67,32
p=46,54 v=-20,-21
p=79,102 v=-21,-78
p=58,37 v=-81,51
p=33,93 v=72,3
p=87,60 v=3,-7
p=32,6 v=97,10
p=25,81 v=11,-55
p=63,28 v=88,73
p=32,30 v=-63,5
p=51,95 v=61,7
p=54,52 v=-78,-67
p=90,86 v=71,-95
p=6,50 v=-3,99
p=89,16 v=7,66
p=90,91 v=66,-39
p=44,6 v=78,65
p=30,54 v=32,67
p=69,34 v=-11,-75
p=49,10 v=59,-7
p=88,23 v=75,-52
p=51,72 v=-59,80
p=28,100 v=-29,-25
p=34,35 v=15,28
p=57,18 v=-57,10
p=53,21 v=23,33
p=70,70 v=-13,-68
p=74,49 v=-99,-2
p=2,46 v=47,-57
p=75,48 v=65,-49
p=17,95 v=-39,-79
p=68,68 v=51,52
p=25,66 v=-32,-85
p=100,63 v=-41,58
p=21,30 v=-33,-21
p=31,65 v=-69,-81
p=40,12 v=3,75
p=90,41 v=-30,-13
p=60,53 v=65,90
p=80,44 v=35,-26
p=26,21 v=-12,-52
p=28,56 v=-48,49
p=12,43 v=42,-56
p=71,13 v=-34,38
p=27,61 v=-50,-58
p=95,89 v=-24,-83
p=10,8 v=26,-2
p=14,6 v=-43,-84
p=31,44 v=34,95
p=40,14 v=70,-26
p=94,54 v=-62,-22
p=100,97 v=3,-15
p=8,95 v=61,-62
p=25,13 v=-50,-44
p=88,38 v=-62,15
p=7,15 v=62,20
p=49,92 v=82,-33
p=15,58 v=41,-99
p=26,75 v=17,-28
p=62,38 v=-38,46
p=86,59 v=10,-50
p=11,91 v=-58,75
p=94,98 v=79,-38
p=43,54 v=-3,-71
p=85,32 v=12,90
p=31,22 v=-48,74
p=96,70 v=56,49
p=34,33 v=-15,-35
p=3,38 v=-18,1
p=18,18 v=68,-11
p=58,42 v=42,-21
p=55,30 v=60,42
p=36,91 v=72,-28
p=31,9 v=55,-38
p=87,92 v=-4,20
p=88,70 v=56,-36
p=84,56 v=-97,29
p=83,29 v=70,-23
p=74,54 v=-32,-22
p=50,92 v=-92,22
p=33,85 v=34,-77
p=20,92 v=28,-38
p=32,51 v=68,-26
p=4,90 v=76,-27
p=55,93 v=-58,-4
p=89,44 v=95,2
p=92,85 v=-65,7
p=67,44 v=-23,66
p=55,33 v=93,-5
p=60,78 v=71,30
p=82,0 v=73,-38
p=67,80 v=88,12
p=98,59 v=87,-33
p=22,27 v=-37,19
p=70,70 v=-9,13
p=13,10 v=-98,88
p=84,29 v=77,-63
p=6,10 v=9,-42
p=25,94 v=-90,3
p=64,77 v=48,89
p=58,3 v=6,43
p=7,30 v=-43,-98
p=42,42 v=90,-33
p=8,82 v=-71,3
p=18,94 v=30,12
p=92,40 v=-23,49
p=54,13 v=2,11
p=47,64 v=-15,4
p=41,52 v=-23,5
p=52,40 v=61,32
p=12,43 v=-35,72
p=32,23 v=80,38
p=70,57 v=88,67
p=56,28 v=-97,55
p=31,50 v=-94,-18
p=80,44 v=43,18
p=69,100 v=27,34
p=77,38 v=94,-75
p=54,49 v=-54,62
p=51,62 v=82,-99
p=81,4 v=20,98
p=13,54 v=-37,39
p=95,28 v=-16,6
p=54,9 v=-37,-42
p=5,13 v=-58,-20
p=17,79 v=70,-10
p=12,0 v=85,-78
p=42,0 v=69,35
p=85,18 v=89,38
p=59,14 v=50,-78
p=23,41 v=-10,5
p=48,1 v=21,83
p=29,59 v=-65,-40
p=84,10 v=43,10
p=89,90 v=22,3
p=46,31 v=-63,-3
p=47,63 v=-61,27
p=90,11 v=75,-38
p=98,91 v=98,58
p=85,79 v=-87,-50
p=0,73 v=-39,93
p=41,47 v=-4,-40
p=5,60 v=-33,-80
p=23,49 v=35,-77
p=92,95 v=-23,-31
p=74,83 v=71,-23
p=70,88 v=31,84
p=91,64 v=24,-27
p=34,92 v=-25,-38
p=88,50 v=76,30
p=43,29 v=-69,-71
p=39,76 v=59,-35
p=96,85 v=-85,8
p=78,21 v=-68,78
p=51,15 v=-85,14
p=68,32 v=8,-39
p=41,62 v=36,-27
p=23,37 v=-65,-30
p=24,23 v=-12,-35
p=43,5 v=-65,-78
p=11,37 v=99,-81
p=97,100 v=16,-7
p=18,55 v=-56,54
p=81,35 v=-28,55
p=11,14 v=5,-43
p=95,25 v=-24,-12
p=9,72 v=43,-5
p=7,60 v=-14,-16
p=87,75 v=35,-90
p=18,50 v=91,81
p=91,98 v=-70,83
p=70,65 v=-26,-95
p=35,45 v=1,-72
p=49,45 v=78,68
p=87,69 v=-11,-76
p=23,71 v=-31,26
p=26,84 v=-31,44
p=62,68 v=44,14
p=13,46 v=-18,-52
p=98,11 v=79,52
p=12,55 v=47,63
p=25,59 v=-44,45
p=30,90 v=-63,83
p=5,79 v=-96,-24
p=6,97 v=-6,92
p=79,39 v=-75,-66
p=57,30 v=-1,94
p=29,31 v=91,46
p=23,83 v=-13,-79
p=72,6 v=25,97
p=21,43 v=-48,73
p=4,35 v=-58,40
p=67,83 v=-19,-81
p=9,22 v=76,-71
p=93,73 v=-28,-15
p=15,23 v=-73,78
p=66,12 v=-68,-3
p=77,80 v=65,-58
p=45,63 v=17,49
p=44,31 v=99,1
p=6,17 v=66,78
p=17,86 v=-52,-15
p=77,69 v=12,-32
p=36,45 v=-9,72
p=5,93 v=24,-64
p=10,96 v=60,-74
p=29,49 v=30,50
p=7,18 v=64,6
p=64,69 v=63,-37
p=14,5 v=81,-38
p=66,70 v=27,80
p=98,66 v=-81,31
p=12,84 v=-29,-19
p=86,34 v=29,-17
p=51,62 v=-78,-94
p=73,84 v=77,-79
p=41,49 v=-65,-49
p=24,12 v=-4,-25
p=88,76 v=-24,80
p=77,97 v=92,-96
p=0,9 v=-1,-34
p=57,101 v=28,-29
p=38,39 v=95,50
p=78,71 v=-43,75
p=51,15 v=47,-52
p=33,48 v=-2,-75
p=83,52 v=96,-31
p=37,48 v=70,45
p=99,64 v=-41,-9
p=97,68 v=-45,-18
p=97,93 v=58,21
p=21,76 v=-7,-82
p=100,24 v=-24,-65
p=14,98 v=-67,-5
p=18,14 v=22,-25
p=95,81 v=53,-99
p=3,12 v=-21,-93
p=17,21 v=68,86
p=77,91 v=-68,97
p=55,99 v=42,65
p=47,41 v=99,-89
p=57,13 v=-99,47
p=57,81 v=-76,66
p=73,84 v=-13,93
p=54,96 v=25,12
p=76,57 v=-68,27
p=65,2 v=-55,30
p=13,81 v=32,13
p=11,9 v=5,-47
p=40,41 v=55,-35
p=91,26 v=-5,-70
p=62,42 v=80,-30
p=54,26 v=44,20
p=17,92 v=7,84
p=97,10 v=-43,-20
p=61,68 v=-93,-27
p=5,76 v=-36,59
p=22,4 v=91,25
p=52,95 v=82,-11
p=17,78 v=33,20
p=63,20 v=82,-82
p=11,42 v=11,-98
p=75,5 v=8,-87
p=8,35 v=-39,-64
p=34,87 v=-29,-96
p=72,45 v=89,-60
p=73,67 v=-93,84
p=2,22 v=62,56
p=2,69 v=68,33
p=77,46 v=25,-90
p=77,39 v=40,10
p=82,35 v=-11,-24
p=10,11 v=87,-30
p=11,7 v=-48,47
p=47,37 v=-31,-69
p=87,21 v=35,-79
p=73,21 v=-33,86
p=18,69 v=2,-8
p=71,25 v=67,-88
p=64,84 v=-78,13
p=6,25 v=-43,50
p=8,36 v=47,64
p=56,2 v=-95,-42
p=19,92 v=-18,88
p=31,89 v=-27,97
p=35,55 v=-68,78
p=11,45 v=49,66
p=34,63 v=-44,94
p=38,49 v=-86,-31
p=37,0 v=30,48
p=88,38 v=50,-30
p=0,45 v=-41,-98
p=71,57 v=25,-32
p=50,51 v=-17,-81
p=75,62 v=-9,-26
p=62,3 v=80,-87
p=48,91 v=3,-71
p=42,20 v=45,25
p=2,78 v=98,88
p=59,28 v=-91,55
p=48,91 v=-61,43
p=73,56 v=72,85
p=6,49 v=22,-98
p=4,42 v=-98,-71
p=23,10 v=-27,-20
p=87,96 v=-36,37
p=31,102 v=-48,25
p=67,46 v=50,-68
p=51,93 v=23,-37
p=13,45 v=-35,76
p=75,22 v=99,-92
p=17,87 v=80,-19
p=42,94 v=-2,-69
p=31,78 v=34,66
p=14,60 v=19,24
p=34,7 v=55,-25
p=14,76 v=89,-23
p=80,46 v=67,95
p=38,80 v=-52,58
p=32,88 v=-88,-82
p=60,82 v=-97,-41
p=74,41 v=-44,-49
p=89,11 v=35,-61
p=40,81 v=57,-10
p=62,30 v=65,91
p=74,40 v=4,64
p=93,32 v=-5,69
p=8,38 v=-58,10
p=31,38 v=-66,89
p=28,42 v=38,-26
p=97,52 v=-20,-49
p=83,51 v=-67,-52
p=45,32 v=-84,-34
p=61,80 v=-13,-68
p=6,78 v=62,26
p=89,102 v=-85,25
p=24,78 v=54,-75
p=50,23 v=31,88
p=2,59 v=56,54
p=86,21 v=98,-38
p=98,90 v=-64,-64
p=22,23 v=-25,86
p=88,99 v=96,-42
p=17,40 v=85,26
p=42,13 v=-23,-74
p=14,90 v=95,11
p=47,45 v=-61,95
p=49,21 v=-59,24
p=65,86 v=86,-77
p=75,30 v=90,13
p=46,83 v=-99,35
p=90,38 v=-52,-84
p=8,42 v=-14,34
p=27,73 v=-23,40
p=17,3 v=9,-96
p=87,47 v=1,-80
p=43,58 v=81,-1

View File

@@ -0,0 +1,500 @@
p=50,78 v=89,45
p=65,96 v=88,-21
p=23,63 v=61,46
p=61,76 v=25,-67
p=23,90 v=6,91
p=1,47 v=-17,-9
p=84,56 v=-73,-24
p=78,66 v=-20,-76
p=49,59 v=-22,17
p=73,95 v=34,-64
p=99,76 v=67,-40
p=59,77 v=-49,-4
p=15,30 v=24,65
p=89,2 v=-19,-38
p=28,70 v=93,66
p=39,33 v=24,-42
p=14,42 v=-33,-49
p=68,85 v=-37,-47
p=91,0 v=-45,12
p=88,92 v=78,-24
p=19,63 v=-70,-10
p=69,4 v=-40,90
p=61,91 v=64,-11
p=47,95 v=-77,46
p=20,10 v=-23,-63
p=98,82 v=90,96
p=90,30 v=4,74
p=0,28 v=-73,8
p=88,102 v=51,-51
p=66,29 v=26,1
p=19,20 v=-61,-15
p=13,18 v=6,71
p=12,39 v=67,24
p=41,67 v=-24,-23
p=78,10 v=-59,-68
p=30,2 v=-35,85
p=86,47 v=-95,53
p=44,36 v=-69,-89
p=19,20 v=-87,-95
p=65,3 v=73,16
p=95,29 v=43,61
p=66,50 v=49,-69
p=28,92 v=-25,19
p=74,60 v=-6,-98
p=15,80 v=92,-27
p=80,12 v=18,-62
p=72,34 v=19,-65
p=46,75 v=33,-74
p=14,100 v=-79,99
p=94,97 v=74,49
p=46,13 v=-45,-61
p=93,39 v=-9,-64
p=100,45 v=45,-76
p=62,19 v=-76,85
p=18,85 v=30,-71
p=24,68 v=84,-73
p=31,20 v=-86,-35
p=76,46 v=-59,77
p=27,52 v=-95,77
p=52,81 v=1,59
p=43,60 v=-71,-38
p=59,38 v=-6,24
p=70,65 v=26,-23
p=11,40 v=60,-33
p=26,77 v=62,43
p=24,93 v=99,-51
p=46,84 v=24,76
p=48,30 v=58,-87
p=46,100 v=21,98
p=24,39 v=-23,84
p=25,6 v=47,-78
p=89,73 v=-73,23
p=4,49 v=-96,14
p=69,61 v=52,-10
p=96,68 v=-96,99
p=17,12 v=-30,75
p=91,47 v=-98,-87
p=50,38 v=71,67
p=68,58 v=-13,17
p=39,30 v=84,93
p=93,19 v=-66,98
p=31,7 v=-8,75
p=7,81 v=-95,-4
p=38,43 v=8,-89
p=24,21 v=-98,3
p=72,43 v=25,-13
p=4,98 v=-71,78
p=79,65 v=-91,-57
p=49,47 v=-97,23
p=37,7 v=-15,45
p=41,74 v=-15,36
p=58,30 v=-92,71
p=72,92 v=68,-7
p=1,79 v=-4,-75
p=82,99 v=42,6
p=62,51 v=57,63
p=10,43 v=48,-74
p=74,70 v=65,-40
p=25,35 v=-1,-39
p=50,71 v=37,68
p=51,84 v=67,55
p=71,25 v=-45,-98
p=47,14 v=-7,28
p=70,99 v=69,46
p=21,44 v=-94,-16
p=52,40 v=-83,-49
p=76,99 v=-71,63
p=21,92 v=-32,-34
p=78,27 v=-85,-55
p=42,92 v=-76,-61
p=50,29 v=95,77
p=72,10 v=65,58
p=92,48 v=20,-1
p=42,80 v=55,-98
p=69,96 v=41,62
p=68,35 v=-91,-45
p=18,56 v=-33,37
p=52,96 v=1,49
p=22,87 v=53,99
p=84,31 v=19,41
p=87,38 v=58,-13
p=9,13 v=-18,98
p=40,0 v=-94,-31
p=71,16 v=-62,76
p=41,88 v=-46,99
p=27,97 v=-15,-4
p=25,54 v=23,-36
p=61,0 v=-60,-21
p=28,75 v=41,-79
p=64,46 v=-8,34
p=97,26 v=37,74
p=32,67 v=-48,-93
p=18,81 v=53,-2
p=12,101 v=30,-1
p=80,40 v=-90,-16
p=48,16 v=-69,61
p=7,89 v=52,49
p=93,0 v=-35,-61
p=24,52 v=31,53
p=37,67 v=-98,36
p=92,77 v=28,46
p=76,59 v=-74,-21
p=96,63 v=58,57
p=62,2 v=-68,-68
p=39,20 v=-39,-25
p=5,12 v=60,88
p=75,35 v=-37,88
p=77,24 v=-52,-13
p=42,0 v=92,-72
p=33,61 v=-91,-6
p=10,74 v=23,-17
p=6,73 v=37,-54
p=76,99 v=2,-71
p=53,20 v=71,91
p=82,31 v=71,-82
p=20,87 v=-40,26
p=52,47 v=-45,-69
p=32,38 v=43,-55
p=8,85 v=-56,-77
p=11,0 v=68,2
p=40,30 v=-46,-72
p=26,53 v=27,-43
p=5,40 v=98,-90
p=46,4 v=39,-85
p=15,36 v=-95,87
p=0,4 v=-49,42
p=69,11 v=-86,-87
p=47,47 v=86,-17
p=95,88 v=-73,26
p=2,5 v=53,52
p=92,84 v=63,79
p=25,0 v=47,-35
p=83,55 v=-43,-46
p=95,43 v=-3,40
p=30,60 v=-79,-27
p=89,79 v=-39,-80
p=10,19 v=6,-95
p=70,64 v=87,10
p=51,93 v=79,-31
p=30,82 v=85,16
p=66,75 v=-51,40
p=79,70 v=-20,-20
p=59,60 v=25,63
p=86,17 v=75,-62
p=3,62 v=-18,-47
p=43,20 v=24,91
p=23,13 v=56,93
p=32,13 v=71,76
p=12,10 v=53,-28
p=20,86 v=-71,-74
p=91,90 v=-97,-75
p=76,66 v=-67,83
p=54,54 v=-84,64
p=66,70 v=-12,36
p=30,73 v=54,43
p=62,22 v=-21,31
p=11,92 v=-94,76
p=47,101 v=93,-25
p=37,21 v=96,19
p=93,51 v=20,97
p=46,31 v=-54,61
p=26,99 v=-64,-11
p=6,91 v=-55,-90
p=95,7 v=95,33
p=1,89 v=5,19
p=69,24 v=-83,81
p=82,37 v=-66,-92
p=20,66 v=-80,-77
p=45,87 v=-47,-11
p=19,77 v=8,1
p=61,12 v=-70,79
p=59,48 v=14,44
p=68,70 v=48,-37
p=77,94 v=42,-84
p=47,31 v=1,-32
p=22,1 v=-40,95
p=41,98 v=-53,16
p=38,49 v=48,77
p=21,98 v=-71,12
p=67,92 v=-13,69
p=99,99 v=-80,-84
p=50,18 v=-77,-45
p=71,35 v=-36,-22
p=61,65 v=-68,10
p=96,25 v=56,-21
p=77,65 v=-20,-40
p=56,81 v=56,29
p=81,19 v=-97,-15
p=31,12 v=-62,-38
p=92,83 v=51,-4
p=70,23 v=-44,45
p=55,61 v=-27,-33
p=9,48 v=99,40
p=20,36 v=-80,-52
p=83,46 v=-35,-59
p=52,43 v=58,-88
p=2,88 v=-49,-34
p=31,99 v=54,59
p=76,21 v=11,31
p=5,51 v=-27,35
p=57,88 v=2,19
p=86,41 v=-51,60
p=82,58 v=-98,-96
p=100,70 v=-38,-85
p=81,47 v=-10,-30
p=96,88 v=82,6
p=24,28 v=62,98
p=44,71 v=-69,-50
p=75,11 v=-99,-52
p=35,80 v=16,-37
p=2,21 v=-27,84
p=80,14 v=-43,98
p=49,76 v=80,21
p=84,96 v=-82,67
p=32,79 v=-95,74
p=35,81 v=-90,-68
p=47,45 v=-22,-6
p=69,45 v=41,-83
p=63,21 v=1,-92
p=57,1 v=-98,4
p=34,4 v=-93,-81
p=46,63 v=-99,47
p=8,99 v=5,29
p=32,27 v=54,-42
p=27,98 v=17,-98
p=63,22 v=81,98
p=75,36 v=-86,66
p=58,5 v=-67,-58
p=82,20 v=81,-57
p=82,67 v=81,83
p=58,58 v=17,-13
p=18,89 v=14,-21
p=76,63 v=24,65
p=38,48 v=-85,-99
p=17,34 v=45,21
p=77,70 v=3,-50
p=56,82 v=17,76
p=64,97 v=94,-71
p=16,40 v=37,84
p=29,96 v=-61,-7
p=12,79 v=-95,-34
p=1,72 v=63,38
p=0,20 v=60,68
p=43,60 v=-6,40
p=20,22 v=-17,58
p=47,49 v=-70,94
p=12,29 v=-25,-32
p=22,69 v=-44,-22
p=44,78 v=31,33
p=86,50 v=76,-19
p=0,92 v=35,16
p=42,8 v=-39,87
p=30,1 v=14,61
p=41,57 v=18,-84
p=83,82 v=-97,36
p=72,7 v=-78,62
p=17,4 v=-95,12
p=15,15 v=60,73
p=80,79 v=-59,56
p=49,76 v=-22,-47
p=58,82 v=26,62
p=59,101 v=-82,96
p=78,56 v=-97,-56
p=19,62 v=85,-44
p=21,4 v=61,-91
p=80,66 v=-12,-27
p=66,17 v=96,28
p=57,6 v=-45,-38
p=24,70 v=61,-90
p=4,12 v=68,-58
p=27,37 v=15,-59
p=10,66 v=-33,-50
p=22,64 v=95,-38
p=47,44 v=24,-39
p=96,28 v=75,71
p=95,20 v=32,30
p=38,52 v=-89,10
p=88,94 v=96,-6
p=93,31 v=-38,18
p=61,79 v=46,-3
p=22,27 v=-33,5
p=77,62 v=81,-60
p=63,13 v=-94,81
p=39,49 v=93,89
p=7,37 v=-2,-89
p=59,2 v=24,-58
p=82,32 v=-4,-45
p=28,55 v=-70,-13
p=36,49 v=-93,90
p=16,74 v=53,-20
p=56,69 v=-84,93
p=40,25 v=-93,-89
p=73,60 v=-75,90
p=28,82 v=-47,-27
p=35,67 v=-8,-73
p=76,17 v=68,63
p=33,43 v=1,37
p=5,7 v=-52,-34
p=79,49 v=89,60
p=78,59 v=20,57
p=96,31 v=-93,-50
p=24,88 v=78,-24
p=12,39 v=37,-16
p=60,15 v=-21,45
p=25,17 v=-40,-45
p=9,63 v=-42,13
p=46,48 v=8,1
p=16,85 v=18,48
p=36,45 v=-41,95
p=62,88 v=54,6
p=46,57 v=-99,23
p=57,67 v=79,-40
p=88,96 v=4,-51
p=82,19 v=66,-2
p=9,73 v=68,-54
p=66,38 v=9,74
p=40,68 v=-15,83
p=97,24 v=-64,-55
p=52,56 v=-61,7
p=55,15 v=-53,91
p=98,66 v=78,-47
p=27,46 v=-47,4
p=100,19 v=36,-78
p=5,9 v=6,82
p=63,35 v=49,21
p=40,101 v=8,-14
p=98,19 v=-74,-28
p=74,15 v=96,-65
p=53,47 v=-84,34
p=48,14 v=94,-98
p=69,2 v=3,-71
p=38,10 v=78,35
p=74,76 v=-90,-60
p=37,68 v=55,-70
p=52,78 v=-31,48
p=6,24 v=-73,24
p=77,51 v=38,94
p=73,45 v=-42,-72
p=52,57 v=67,-51
p=12,14 v=46,39
p=6,11 v=65,21
p=29,37 v=-54,-95
p=41,24 v=-85,68
p=78,102 v=96,-24
p=13,25 v=-16,66
p=8,53 v=6,90
p=77,6 v=26,-71
p=98,45 v=-95,84
p=56,15 v=-27,-83
p=82,98 v=-35,52
p=24,42 v=-8,-29
p=16,46 v=-78,-53
p=25,15 v=-34,-54
p=27,42 v=-11,-13
p=12,69 v=46,3
p=74,20 v=43,-9
p=25,85 v=9,-93
p=65,99 v=26,-1
p=90,78 v=74,36
p=41,6 v=77,-88
p=85,62 v=-43,93
p=34,61 v=33,2
p=0,65 v=75,53
p=40,30 v=48,-36
p=31,1 v=47,48
p=24,100 v=85,99
p=97,24 v=-76,-67
p=69,59 v=21,28
p=82,72 v=7,96
p=9,10 v=68,25
p=26,91 v=85,49
p=35,86 v=39,-24
p=38,35 v=48,-99
p=99,61 v=35,-61
p=79,86 v=-98,99
p=94,40 v=50,-22
p=47,101 v=16,72
p=53,61 v=41,-3
p=27,101 v=-48,89
p=28,82 v=15,29
p=83,58 v=58,-10
p=40,38 v=-14,-82
p=52,78 v=79,16
p=45,15 v=-47,78
p=72,0 v=81,64
p=72,51 v=-95,-32
p=88,67 v=34,70
p=89,72 v=12,-90
p=61,31 v=25,-92
p=68,53 v=48,70
p=47,53 v=94,10
p=15,53 v=-72,27
p=80,8 v=20,-37
p=28,66 v=-16,-17
p=77,17 v=99,-11
p=46,10 v=-9,-66
p=76,71 v=78,-78
p=26,62 v=-85,56
p=87,9 v=-80,-71
p=67,36 v=-67,18
p=99,32 v=-80,61
p=69,87 v=73,89
p=6,100 v=-72,-48
p=40,38 v=-93,-92
p=89,12 v=81,-92
p=85,97 v=-19,-88
p=22,100 v=37,-4
p=11,45 v=-33,34
p=43,32 v=6,79
p=47,102 v=-84,52
p=89,94 v=-84,65
p=75,14 v=-3,-11
p=11,65 v=2,46
p=76,59 v=65,35
p=65,60 v=-75,40
p=92,36 v=-32,-9
p=69,16 v=11,15
p=62,63 v=32,80
p=47,50 v=-30,60
p=13,98 v=-80,-98
p=32,82 v=23,-74
p=28,6 v=-92,35
p=72,89 v=4,3
p=72,57 v=-3,80
p=6,44 v=89,-1
p=33,19 v=31,-78
p=43,101 v=-39,78
p=46,51 v=-30,-63
p=24,37 v=-79,-82
p=51,46 v=64,44
p=0,36 v=13,-99
p=71,6 v=72,9
p=40,98 v=78,-81
p=36,33 v=96,-14
p=63,100 v=95,12
p=12,42 v=-41,87
p=66,48 v=-52,77
p=5,77 v=36,23
p=94,54 v=80,24
p=77,71 v=-50,1
p=81,20 v=89,-85
p=9,13 v=-95,42
p=13,78 v=71,20
p=36,43 v=-21,88
p=56,94 v=87,69
p=91,53 v=21,57
p=80,84 v=-74,-44
p=19,90 v=-87,96
p=13,83 v=-63,-51
p=14,91 v=5,56
p=23,1 v=-72,-15
p=50,44 v=71,-73
p=6,49 v=45,67
p=4,0 v=-9,-91
p=70,8 v=-98,45
p=30,42 v=-78,61
p=87,74 v=-97,26
p=35,89 v=92,-32
p=23,61 v=94,41
p=87,21 v=-82,28

71
resources/2024/day15.txt Normal file
View File

@@ -0,0 +1,71 @@
##################################################
#O.O.O.O.......O.#O...O.OO.O.#..O..O.....OO.O....#
#O.O.O..O.OOO.O......O..OO..#O.O....O.O#..O..OO..#
#.O.O....OO.OO.....OOO.......O............OO.O...#
#.......O.#.OO..#O.O....O..OO.O..........O#..O..##
#....O...O.....O#....O.O...#.O.O..O..#....#.....##
#.O.#.O..O.OO.O.O.OO..O#..#O...O##....#.O.O..O..O#
#..OO.##O..O....#.OOO.O#O..O...#.O..O.O.OO..OO...#
#.#......O##....O.O..O....O..OOOO......O.#O#...#.#
#.......#O.#....OO....O....OO....OO#.#......OOO..#
#.#..#.O....OO.#.......OO........O.O...#..OOO...##
#..O..O...OO#.......O..#O...#..OO..O..#.#..#..O..#
#O#...O.#O.OOO.O..OOO.......#......O#O.OO...#...O#
#.#O.#...##O.OO..###.O..O#..O...OO..O.....OOO#.#.#
##........O.#.O......O......##......O..OO...O.O..#
#......O.OO..O.......O...O.O#O.......O...OO.O..O.#
#.O....#.O.........O.....O......OO....OO.OOO..O#.#
#..O#..O....OOOO.O.O......OO....O.....O#OO..#O...#
###OO.O.....OOO.....OO#.....O....OOOO.#..O#..##O.#
#.O.....O.#.#OO.#.O........O......#O...#...#.OO..#
#..O..........O...O.#.#.OO#............OO#.#..O..#
#......O.....O.O..O..OO..O...O....OO.O##..O.....O#
#O#.#..#..O...O#.##O#.O#..#..O.OO.........OO..##.#
#..O..O##OO.#.#....O.#O.......OO.O....O.O.O..#...#
#OO..#......#.##OOOO....@..OO.O...O.O...OOOO....O#
#..OOO..#...OO..##O.O...#.....O...O#...O.O..O.#.O#
##...OO........O.#..#......O.O......O..#.O.....O##
#...#....O.#..OO.O....#.O##.O...#..#O........O..O#
#O.OO..O..O.#.O...O..#O...O.O..O....O.O.O..O.#.O.#
#...O...O...O....O...O.O....#...O.O..OO....O.O..O#
#OO#.#O..OOO.#O.O..O...O.OO..OO.......O.........O#
#...OOOO.OO#........O.#.....#.OO.O...O...O....OO.#
#O.O..O..OOO.O...OO.....O..#O..OO......O.......O.#
#.O.O..OO#..#....O..............O.#..O.....O.O#..#
#.O..OO.......O......O.....O.O#O.#..O.O#.OO.....O#
#........OO.O#..O....O.......#O......#O#O....O.OO#
#O.#.#O.....#..#..#.#..O.#..#.O.#O.#.O.O....O#O..#
#O#....O.....O.#.#OO..O..#OO....O....#O.O.....O..#
#OO#..#.OOOOO.......#....#.O#..OO......OO...O.#.O#
#.O#...O.........O.O.....O.O..O..O..OO......OO...#
#..O..O#O.O.OO.....OOOO.O...OO.OO#O......O#..#.O.#
#OO.#OOO......O..#OOOOO#....#...O.#.O#...OO.O.O.O#
#.O.O#....#O........O..#O.O....O......O.OO...#..O#
#.........OO..O......O.......O.##.............O..#
#....#.O.OO.O.....#.OO.O..O#OOO.....#.O.O.#...O..#
#.OO.............#....OO.#OO....OO#....O....OOOO.#
#O.O.O.........O#..OO.......OO.O..#..O..O...O.O.O#
#...OO...#O.##OOO....O.....#..O....#O...OOO#O.O..#
#.O..##.OO....##.....#.....O.....OO.O..#.#OO#OO.O#
##################################################
^^<><<^<^^>>^v>v<<><<^vvv<^<<^>^v<<vv>v<>v^<vv^^>^^^^>><^v<v^>v<><<<v^^v^^v^><>^v>^>^>>><v^<vvv^v><vv<><<v<v>^^<vv><^>^>^>>^>vvv<<v<><^v^vvv^v>>^^^vv<<<^^v>vvv>v^<>>vv<v>^<<<>>>><>vv<<^<v><<^>^<^>>vvv<v<^<<v>><^^>v^^<<>v>vv>v^^<^v><^v^^^v<^v>>vvv^v^vv^^v^^<v^<^v>^v>^>v<^^<><v<>^v<^v<>v>^v<<^^<vv^^^<<^v>>^><<vv>><>vv^<<<v<v>>v^^^>^^v^v><v^>^^<^v^vv^^vvv^^<^>>^><^<^><<>^^><v><>>^v<<^<><><^^^v^><<^v^><><>^v^^>>^v^v^>^><^>v^v^>v<>>^vv^v>^<>>^v<>^v^<<^^^vv<^v^>v><^>v><^<>^>^<^><^vvv^vv><><<^<<><>>^<^v<>v^<>v>^^v^^><v>>>v^>>v>vv<^^^<^<<^<^vv^^>^<v>v<<^v>v^v>v<><^<>>vv^<>^<><v>v^vvv<<^v<>v<v>vvv^^<<>^>>>>^>vv>v>><<v<<^^<<vv>>vv>>v>^v^v^v^v^^v>v>>v><v<>v<^>vv>^>^^<^^><>^^>vv><v^v<<^^^^^<^^<v<v><v><vv<<v<v^vv><<^<v<><^>>>^v<^>v<<<v<v^<<^><<^>>>><^>>^<^<>^^v<<^<<v^v^^^^<><^^><<<v<>^vv>^vv^<^^^^^v^>><><vv^>^^<^<>>>v><<>v^v>^>><^^^^v>>>>v^>v>v><>^>>v<<><<v<>vvv>^<>>v<<><<^<><>^<<>>v<>>v>v>><<<vv^^^^^<><<^v<v<<>^<>^<>^<v<<^v<<<v<v>v<^<vv>><>>vv>><<^<^v>^^>v^^^^v>v^v^v^<><^<>^^>v<<><v^^^<v><^^v^<^<v
^>^v^v<>v>^>^vv<v>^v>v><^>^^<^>^^>v^^v^><>><v^^^<v^v^<<<<>><v^>v>vv^<v^vv^<^v<<v<^v>v>v><>v>vvv>^>>^vv^^>>^vvvv>>v><>^^^<>^<v>v>>^v><v><<^<^>v<^v<<^^v<^v<<^>^^<^v>^<^<v>v^v<><><v<<v>^<v<^^<v>v<><v>v>vvvvv>>>v>vv>><^<<>v^>>^v<>>><>vv^<^<v^v>vv<<<v>^^<v^^>vv>vv>^<>>v^<v<<v^<^v>^<^^<v^<<^>><^v^>v^v><v^^><^v^<^>^>vv^vv^<<v<^^>^>v^vv<^>><^<<<>^v<v>^^<^^^>>vv^><^v^<v^^>v>vv^>v<^vv>v<>>^>^v><vv><>^<>^vv^v<^>v^>><vv>^>v>>^>><>>>v<>^<v<<>v^<^<>^>>v><>v^v><<v>v>><vv><<>v<^vv<>^v<><^><^v>^^>v<>v^<>>v>v^><vvvv>^^>v>^^^^<v>v^<v^vv>^>>^<>vvv>>>^^<<<v>^vv>>v><^^vv<v>v^<vv^^^><<^<^>^^^<<<v><v><^>^vv^^><v>^v><>^^^^<>>^>>^<v>>^><<>^>^>^^v>^vvv^^v^^>^>^vvv^<vvv>^vv<>>>^v<v>v<>^vv>v><>vv<>^vv>^<<<<v^v<^<^<<^<^^<>>^<^v^vv>vv<<>^v<^^^^<^^<^v>^<>^>v<>><<<>><><v<v><^<v^>><<v>v>v^<<^v>^^<>^v><<v^^<v^<^^<><v^^^>v<<^^<>v><<>>^^^>v^vv^^^^^v><>^^>v<^>>^v<<v<^^v^v<^<>v<>vvv<v>vv^v<<v>vvv>v<>^^<vv>>v>^>vvv^<^>>v^vv>vvv>v^>^>>vv<v<^<^<vv^v>>^>><><>>^<v<<vv^<<<<<v^vv>vv<>>v<^>><v<v><^v^^^v><v^>>>><<<><>^<<>>^^^<v<<^^>
>^v>vvvv<<><^<^><<>^^>^>v>>><<>>^^^v^^<vv><<v^^><>^<v><>^^vv><v^<<vv^<v><>><^v^><^<v^v>v<>^<>><<^v>^^v>^^>vvvv<><^<^v>^<<>>v^v>>^^^<^<^><<<^v^v<v^<<^<>>v^^^>^v>>v^^v>v<^>>^v^v^<>^><<vvv^^v<^<v^<^><^vv^<><<><>>>^^^<>vv<^>^<>^><^>v<v^<<^>^^v>^<>><^^>^>^>^<^>><><<^<<v<<^v<v>v^v^><v<><<<>^^v><<<<^>>^^>><>vvvv^<<>v>v^^v<>>v><^<>>^v<^^vv^^vv^^>^<><<>^<<^>^>v<><>^<vv>^^^<^^><<<^^>^<>vvv<<^>^v<vvv><v<v><<><<>>>^<^^<vvv^v<<><>vv>><v<><^<<>vvv<>^<<>^v^>^<v<^<v>^<^>>^^>^<<vv<>vvv<>^^>v<v^><v^>^^v>^v><>^^^^v^<>^><^<>v^>^vv<<<>vv>v>^^v>v<^>^vv>>>>^<v>^vv<v^v<^^>v>>>>^<<>^^v<<^v<vv<^^v^^<v<>^^<^vv<<<<v>vv^^^^^<<<><>^v^vv<v<v>^^<<<>>v^<>><<^><><<<>v>>v<v<<^<vv>^^v^v^<><^v<>^<vvv^^<v^v<^v<>^<^>vv<v<<<^><><<v>^<<vv<<>v^<>v>v^^><^<^>>v>^^<^><^<<^^^<^^v^vv<>^><^<^^^^^vv>v^<^^>><^v<^<><<^<>^vv^^<^<v<>^vv^v<^^>^<^>^^>><><<vv<^<vv^^<v<^v^<>v<<v^<^><v^^^^v><v><v>v<^<^><v<v<>><<^>>^>^<<>v>^>^<^^v<^<<vv^>>^<v^>>>v><<<v>>v><<^v>>v>>^vv<<v^>^v^<><><^v>^>^^<v<^^>>v^v<>>v><vv>><><v^v^<vv>^<v^<^^>>^<>v^>^^<vvvv>v><
vv^^^<^<><^^>^><<^<^<><v^<v<vv<<^vv^<v<<<>vvvv^<<^>>>vvvv><<^<^>v^v<vvv<^v>vv^>^><>>vv>v^<^^<>><v<^><<v^><><^v><<^>>>>><v<>^>>>v^^>^><v><><^<^<^v<^>^^<>^<<^^v^><^v<v>>>^<v^<vv<^<v>^^><^v<>>v<>v^^>^^^v^v<>vv^<^>>vv<v^v<>v<>v><v^^>><v^><>v<vv><>^<^^<v<v^^^v^^v><vv><>>v^>v<><v><^<<<vv<>>^<v^^^v>v<>^>v<<>><^^<<<v^<v>>v^>^>^^v<<^vv<>^v>v^vv<<^^^<v^<>v^v<v^>v<<>v><>>><<><>>v>>v<>v^<<v>^vv<>^^>>vv<<<<><<><<vv>^^<>vvv^^v<><v<v^<>^vv>^>^>^><>>vv>^v<<^><v>vv^>^v<<^<v<<v>^><<<^^^^><^>>>>><<^<>><^^vvv^>^><^>^><>>>^<<v^^<vvv<vv^>>>^>>^^>vv^><>>>>>^<>>v<><>>>^<^<v<<^><v<^<>v>>v>>^>>^<<<<<<><^^^^^<v>>>>^^>><^vvv^v>^>^><><<>><>>v>vvvv^v<^vv><v><v^vv>v<<v^>v^<>v<^^>^>>>^vv>v^><^^^>^>^>^v<>v<><v<><^^vv<<^vv>vvv>><>^^^^v<v<vv<>>^^v<>><<vv>^^vvv^<^<v^^<>vvv^<<^v^>>^<^^>v^v<v>>>^v^>^v>v><<v<<<^v^^>vv<^^v^v<<^^<><<<>^<^<<^<^v^<>>^<>^^<<^>v<v^<>^<>>>v>^^^^<>^^v<>>^<^vvvv^v><<^>vvv<><>>v<<<^^v>>vv<>^^<<>><<vv<>>>>><v<^v>^<vvv>v>>>><<>^v<v^><^<v<<^<<>^><^<<v^v>^v<>^<<<<v>>v^<vv<><>^^<^v>^^^<^^>^^v><<<<>>vvv^vv
>>^v^><v<v>>>>vvv<^v^^><>>>vv<>>^^^><>><<^v<v<vv>v^>><v<v<v^<>>^><^^>><^>>^<^<<^^v^^^v^v^<v>^^<v^<v^v<v>><^>>v^>v<v<^><>>v<>v<>^><<^v<>><^^v<<v^<<><^^<v<v><><>^^>^<v^vv>^>^>>vv><^>vv<>>^><><>^v<^^vv<^v^<v^><^^><v<v>^vv<<^>^<<v>^^v<^^>>^<<vvv>v^v<v^<<^>v^<^<v^^<vv><^>^^v>v<^<^>v><^^<><v^v^<<^<<v^v<>^^<><^^>^v>v>vv^<<>^vv>v><>v<vv>v<<vvv<v<vv><vv^v^>>>^^>^<<<^<><v>><^<v^vv^v^v<><v<v^vv>v<^>v>>>>^v<>^>^<v^^^vv>^v><<>^>^v^>><><>v^<><<^>>v<>^><<^^v<><^v>vv^<>vv>^><v>><>v>><^v^>><v<v>^v><>^<>><<>>v^<v>>v<<^v^vv><>^v>^><^vv<v<v^^vv>>>v<^>><^v^>><>>^^^v^><>>v^v<<><><><><^><^>^^v^^<<v<<^<>^^>>v<<v^<^<^>><^>>>v^^v^vvvv><<>^<^^^v<^v<<>v<<^>v^<^><v<><v^v>>v<^^v>>v<<v>v>><^^<^v<>>^<<<<^vvvv^^v^^v<>^>^^<v^<<^^v^>>^>>v^vv<<<<v>vv><<<v><><v>^v<v>^>vv^vv^vv^v<<v^><v>><<<v^^v^<>v^^>^<vvv<^v>vv>vv<>^>^<<><^><>>^<<><>^<v^<v<>vv>^v><v<<v<<vv^v<<>>^^v^^vv>^<v>^^^<^^^<^vv<>><^>^<<<^<^<vv>vvv<v^<>v>><<^^>vv^v<^vv<^>^><^><v^<v<v<^^<<^>v<<^v>^<><^<^>^vv<<^>>^<v>^>v>>vvvvv^><>>^>><>>v<>vv<v<<v<v<^<^><<>><<^^vv^>
vv<vv>^<^v^>v^>v^v>>>>^><v>>>><<^v<<vvv<v<vv^^^><v<^v^>v<^><v^^^^>^^<^^><<>vv<v<v>>^v><>vv<^<^v>v>^^vv^<v>^><^>^^>^^^^><<v<>>^vvvv^><>^v>>^<v>v<>>^<<<v^v>v^v<>^>>^^><><<>>>><v<vv^v^<><v^^>v>^>><<<^^>^<><^<<v>v<<<^>v><^<>v^^<>>><><^v^<^>v>^v>>v<^vv^>^>v<>>><v>^^^<v<>>^v<^><><^v>v<v>v<<<vv>vv<v><<>>>vv^<><^^<v>^>v^vv^<<<<<><<^v<^>v<^<<>^>>^^v>v>^<v>>>^v>><vv<vv>^>>><^vv^v<>v>v>^<<^<^<^>^<v<v<v<v<v<<>^>>>><>vvv^<v>>^<<v<<><><^>^><^<>v^>^>vv<<<^vv>^v<>v>v><>>v>v><>>v^>^<<^>v><vv^>>v>v<v><^>><>>^><^v<v<>>><v<^^<^v^v<^v<v^v^>>^^>^<>^<^vv<v<v>>^>>>>^<^>><v<v^<<<>vv>>^<v^^^v>^>>>vv^^v>>v>v^^<^<<v<v^^<<<>>vv>^^>^<<vv<>^<<<^vv><<>vv<>>>^<v^^^v^<>^<<v>v>>>><^>^v<v<>^>vvv>>v>^^><<<<<^<^>>vv<^^v>^vv>^v^v^>^<v<<<^v<v<>v>v><v><v>>^<^>>^vv^>vvvvvv<^><v<v<>^>vvv<v^v>^v>^<v^>^>><v>vv^>v><<vvv>^v^>v>v<v^>^v<^>v>^v<<<>^>v<<>vv<^>vv<^>v>^<v<^<vvv^>^v<v<vv<^^>>><<>><>v<v<v>^^^>>>^<<>vvvv>^<^v>><>v^<^v>><^v<<v^v^v>vvv>>v^vv<<<vv>v^<^vv>v<>><v^^>><<^><<>^^v^^><><^^>>v<<<<><>^>v^^v<>>>v^v^v><<v<<^>>^v^<<v>v^<v
v^><><<><<vv^^><v<^v^>v>>vv>v>v<<v<^v^>^v^^^><v<<v>>v<vv^^v^vvv>v<<^^>v^v<v>v^^<<vv<><vv^vv>^v^<^>^v><>^^<>>^v>^vv^<^v^^<^v>^><v>vvvvvvv^<v^<v>^>^>^^<>><>><v>>>v<^^v>v>>v<^<>v><vv>>><<v<^<>v>vvv^>^^vv<^><<>v<v>>^>^>^^^><<vv>>^v^>v^^>>v^<>>>>^^>^><^<<>^v<^^<<>^^><<^v>><^v<^^vv^^^<<^><v><<<^<^<><<>><^><^>v>^^vv>^<^v>><<v^vvv^<^<v^^<<v^^<<>>>^^v^^v<<v>v><>>v<<>^v>v^<^^^<>^<v>>v<>^><v>>>^<v^>>vv><>v><>vv<v^^^>>v^^v^>^>^<^^>>^^<<>^>^v^v<v>>^^^<vvv<^<>>>vvv^><>><^^<v^^v<<vv^v><^>>>vv<vv^>><vvvvv>^<v^>v<><vv<>^><<^^^^^v^v<><^<>vvv<><><^v<><^><><^vv^^<^<^vvvv<><><^><vvv>v<<>>^^^<^v^v^<>^<>^>>><^^v^^<^<<>v>^^^^vv>^><^^>>^>vv^>v>v<>^^^^v^^>v>vv^<>v<v<^v^>>><^vvv>>><vvv<^>v^>^v^<<^<^^vv><v<>v<^v>>^<>v^>><>v><^>><>>v>><^v<^^vv>v^<<>^^<><<<>>v^<>v>^v>>v^v^>^>>^^><^><v<<^<>v>^<v^<><vv>v^^<^><^vv<<vvvvv^>>^<v<v>vv<<v^<<>^^vvv^>^v<>^^>^<^>v>^^<v^<<<>vv>>>>^v><^>>>>v^<v><>^v<v><>><^v<>v>^^v^v<^v><<v<<v^v<^<<^vv>>>>v<vvvv^<v<>>^>^vvv^<><^>^vv<<<vv>>v<>^>vv^>v^<<>^v^>^<<^v^^<^<v>>v><v>>^><^><^v>v<>v^v<<<
>^v^^<<>v^v^v>^v>>^^^vv<<>^<^v>^^v>v<^<^vv<><<>>>v<<^<>>^<v^>><<<<<^^<>vvv^>v><>>><vvvv>vvv^>>v<>>^<>^><^><<<^<<<v>v^^^^<v<^><>>^<>v^<>^>>>vvv^^<<v^v<<<^^><v^>^v>><<>v><^v^^vv>v>v^<<<v<vv><v^<v<>>v^^^<vv^^<<>^vv<>>v>^<<>>v<^<v<vv<^^<><v^v^^<><vv>^^^v<>^><>>^<>v^<<<v^<^<>v^<>v^v><<^^v^vv<<<>^<v>^>v<v>^vv<vvvv>>><>v>^<^><v^v<>v^><^>>>>^>^v><>^<^<<>v<vv<>>^v>>^v><<^^vv^><>^<<v>^>v<>^^v^<>vv^v><^v>><>^<><v^^^><^>>^<v<v^^^v^^<v>^^>><><<<>v^vv^>^vv<<>v>v>>v^v^>vv<><v<^>v^^<v>v<^v<<v<v^>>^^>v<^v>>^^<^v><^v^>^^^v^<>v^^^^<><>>v<>><<><><<>>>^>><>>v^<<><vv^<v<v^v>^v^<v<>^v<>v>^<v>^^^v^v<>vv<>^v>^v><^^^^>v^>v<>^vv>>v>^>><v>vv>^<<>v^>^>v^<^^^>>^^<v<>^>>v^v<<vv><^v>>vv<>v<v<^<>v>^><<<^v><>^^>><v^>^>^>>^vvv^v<<>><^<^<v^>>v^^vvv>^^<<v>>^v>v<<vv>v<^<>v<>>^>v<^^^v>>vv>v^^v<^^v>vv<>>v<v>><>v<v<>^>vv>^^<<><<<v>^<^<^^<><><v>v>^^vv^v<v<v><<^<^<>v<><^>^><>v<v^^<v^vv^v>>^v^v<<vv<^v^v>^^v^<<<>v^^<<<v>^><^>>>^<>>^v><><^vvv><vvvv>^^^<><v>vv<^^v>^^^<vvv<^^<v>vvv<<<^^>>^v^^><<<>>^<^>^<^v>>>>v^^>><v<>><^>^^v<vv^>^^
v<>>>vvv<<><<vv^^v^<^<v>>v<vv<v^<<>vvv<<<<^^<<^>>>v<>^<>>vvv><^>>^^<<^>>^>v^><<><<<v^<^v><v^<>>v>>vv<>^>>^v<<vv^<<<v>^<^^^<<<v^^><^>vv>vv<v^<^v^v>v>^>v<v>^^v>^>v>vvv<^>v^v<<^v>>^>v^>v^<^v><v>><vv<^>>vvv<^v^^<<v^<<<^><^^v>>^v<vv<<vv<^^^><v^>vv^vv<<>vv>v<^><<<<>>v^^vvv^^>><^v><<>^v<^><<v^><vvv><>^<vvv<>>><v<><<<><vv>><<^^^v<v>v>^<><>^><v<^<v>>vv<v^^^<vvv<^>^<v>>^v>^>><<<vvvv>>>v^^<>>v>^^><v^><<>>>^^^<vvv^^>vvvv<<^^>^<<v<^^<^v<>>v<^><>^<<>><<>v<v^^<<<<>>^v^vv><><v<^<^>^v^vv^><^v><^<vvv^^v><^vv^><^v<v^^>^vv<>v<v^>>>v<vvv>^><<v^<<v>>v<^<v><<<<<<<>>^^v><v^^>v>>^<v<^^<>^<v>v^>>v>^v<><^v^<<^v^vv<^v><v<^<<^v^<<>><><<<>><^vvv^vv>vv<^><^>vv<>v^<><^<<v>^>v>^^v<><<><v^<^>>>^v<>><v^vvv>^><^v^^^>^<<^<^<v<>v>^^><<^^v^^^^v<<>>^v^<<<><><^^>><>^>>^^>^>v<^^>>^>>v<<vv<v<><><v^<>>v<v<^^>^<vv^<^>^<^v^^<v<>vvv^><^<<^^<v^>>^^^^^v>v<v<>v>><v<^>v^>^><><<><<v^<v<<^<vv<<^v<^>^^<<v<^vvv^^^^<>v<^^>><><^v<>><^<<^<^<^<<><>>v>^>vv>v^^^<^^v>><v<>^>v><^<<vvv^^><><v^<^^^>>vvv^<<^^<^>>>>^v^<>^>>>v>v>v>>v^^><><>^>>><<>^>>>>
<^>^^>>>^>^>>v<v>v>^<><v>^<vvv><^vv>v<>v>^>><^v^^^>>^^<v>><v><>v><>^v<^^>>^vv<v<>^<v>v>^v<<<^^^>v^^v^<<v<>^^^><v>vv<<^^v>v^^<<>^<^^><v<>^<>v<v<>^^><vv^^^>^v>v<>v<<v^<>^vv^v^^>>^<vv<^<<v<>^<>v>>>^^^>v^><vv>^<>vv><<<><<v^v<>^<v>^<v>v^<^<<^^>vv>v>>>v^v<>^>v<>v><<v^v^>^><><^vv<v<>vvv>><<v<><<^>^<^v>vv>^^<<<>^<vv^<^v<<v^<^>v>^>v>vv<v^<vvv><>^v^<^^>>>^>vv><>>^><^><><><v<v^<<v>vv^v>^>v<^v^v>>><<vv<^<v^^^>>^^^^<<<<>^vvvv>>^<vv^v^<<^^<>v^<v<v>><vvv<<^^^v>v>^<^>v>>v<v<^v<vvv<>>v<v<v^<^^<>^<<<v^><^>>>^v^vvv^>v>>v^>>>><^^^^^^<vv^>^<>vvvv^^<<<v^<v<^v><<>^^v<><v>^v^<v<<><>>^v<^v^^^>v^>^<<v^^<<<^^vvv^<v>^^<>^^v^v>^vv>>v^><^^>>>>>v><<^><^>v><vv^<<<^>^^v>v^<<^>^<v>>>>v^^<>><<<v<><^<^<<<<v^^^v^><v>vv^<<><<>>^v><v>^<^>>v^>>>>>v^^>>^<^><v>><^<^<<>vv>v<v><v^<vvv>>v<<>>>v><^v<^<<vv<vv<<^^v<>^<vvv<v><v>v^><^><vv^>^^><^^v^<>>^><^^^>><^<^<^<v<<<><vv<>^<vv<v>v<>v>><>v>><^>>>>><<<v^<^v^^^v<v^v>>v^^<^>v^<>^>>>><^^^>vv^<^v>^>^^>^v^><v>^^^<<>><^<><^^<v>v<v<><<<<<>^>>>^<<>>^vvv<>v><^<v>v^>^<<^<<><>>^<<^v<<^>>>>^>v>v
v<><<^v<>><<<^>vv^<^^^v^^^v^^^<v^>v^^^^>v<><>vv>^>^<vv<^v>v^>vv^v^v>^<<vv^<>>v<<^<>>>^><vv>><v^><<vv>><^>^^<vv^><vv>><^vv^^^>^v^<>^^<>^><>^>>^>v<><^vv><<^>v^<<^^<v><v><<v>>^^v<><^^^>^<<^vv><>>^v>v^v<vv>v^<>>>^v^<<<^^>v^v<<>>><vv^<v^^^>^^^v^<>v^v>>^^>>v<^^vv^>>>^>>v<>^^v<v>>>>^<<^^<v^<><^>^<^v<vv<^><^>^v^^><v><<<<>>^v>>^^>^<v^<<v^<>vvv>><<<vvv<^v<v<v^<v^<^>^^>^>>v>vvv<v^<>v^^>^<^>^<<<>^v<<><v^v<^^vv><v^<^>v^^v^v^v<<^<><vv^>^<v^^^>>^<>v<v>><^>^<>>v>v<v>>^^vv><<v<>^>^v^<><<vvv<<<<v^>^<vv<<^^v^><<v<^^^<^vv<<v>v<>>>v<>^v<<>^<<><>>^vvv>^<<^>v>^vv^<<<<vv><v<>vv^>^vv^vvvvv^>>^^><v<<>vv>vv>^<^><vv<v>^^<^<v^<vvv>>^>v>><vv><><><v>vv>^<^vv^v<vv>^^vvv<v>^>>>v<v<<^^v>v><^^<v>><>^v<<v><^v^<vvvv^<^^^<<>vvvv>>v<v<>>>v>^^<>v>v>^<<>^v><v>v<^<>v<v<<vv^^<>v<v^^v<v<<^^^^>>>^>v<><>><^^^>^v<v<><<v<<^^v<<<v^vv<vv>><>><>^<^<^<<^>>v<^<v<>v<<vvv^^<v>v>^v<^v>^><<^>^<<<>>>>vv^^>v>vv^v^<>v^v^<^v<v<^v^><^^<<>>><>v>^>^<v^vv^v>^>^<>>><vvv^v<vv<v<^^v>^^<>^>^<vv^><<>^^><v<<<>v>v<>^<<>>>^v<<^vv>v><>^<^>^>>v^<<>><<>><v<^<v
<<^<<v^vvv^^^>><v^^<^^v^vvvvv<^><v^^><<<>^<<^^<v>>vv>>^<>^>>>^<>>^^^<<>>^^>v^v>v>^v<v<>v^v^><v^><>>vv<v<<><<^v>^^v^>>>^>^v^v^>v<v<vv^<<>v<v<v^^^^>^v^^<^^vvv^<v<v^^><<>>^>>^<v^<v<^<<^<><v^^<>v^^<<>^>^^><vvv^><^vv^^<v^v^^>v^v^<v><<<^>^>>v><v^v>v><v><v>^<v^v<^<<<^<vv<>><vvvvv>^<^vv^^>v><<^^<><^<<^<vv^v><>v^><^^><^v><><v><>^v>^^>v^^>^><v^<v^<^vv<v^^>v^>^^v<<v^v^<vv^^<vv>v<>v^vv<v>v>>vv<><v<<vv^^^v^<<^<v^v<><v>vv><<^<v<^^<>><<v^^v^<v<<<>v>vvv><>^>>>>>>>vv<v^<^>^v^^<^<vv<>>v>>>^v^^<^v^^v^^^vv<>^^^<>v^>vvvvv><<v<v^v>^<v<>><^vv>^>vv^><^<^^v><^v^<v^vv^v<>v<v><^>>^vv<><>^v<>v^v^vvvv<<vvv<>>>v<v>^v^>^>^v<^v<^<<v<<^^^>>^>v<><v<<<v>>v^<v>^>>^^^vv^<<^<vv<vv><>v<<^><^^vv><^vv>>^<<vv<<vv<>vvv<^<>^<v>^^^^>>><^v>>^><<^<<^>v>^<<>>^^^^^v<<^>^^>^>>vv>vv>>^vv<><v<v><<^<^^^vv^vv>v^>^><>>v^^<<<v^><v^>^v^^v<<v>^>>>>^^vv><<v>>^^v^^<<>^<><^>^^<>^v^v^><^<>>v^^vv<v>v^>^^vv>>vv>^<v<>^^><<>>v^<<^^<>>>^^<>v><^<><>^><v>>><^^>><<<^^^^<<>^v<v>^><<vvv^>v<^^<^<>v^<v<v^>>>>^<<<v^>^><><^>^<>>v<^^^v^^^<<^v^>^v<v<^>>^v<^<<^v<
>>><vvv>v>>v>vvv<^^>^<v^>>^^>>^<>^<<^>^<>v^<^>><>^<^^v^v>v<<>v<^^^><>v>>^^v>>^<<v^<v^^<><>^v<v^<^v>>^><^<<>>>^^^^>v>v<<vv<<>>>>^><v>^>v>>>^<^^v<>vvv<>>>><^>v^>^<>vv>>vv^<v><v^v<<^<>^>>^v>^<<^v>^vv><><>>^>^^vv<<v^^^>vv<><v>^v>^>><v^v<<>v<v<<<<<^^^<^^<<<>v><^><v^^<v<>^v<>v^v^>vv>^^><<v<<>>v<><<>v>>v>><vv^<><v<><v>v^<^>v>>>>^^v^<v>v>^<>v>vv^<><^<>v>^<>^<^>vvv<v^vv<^^vv^^vvv^v<v>^v>>vv<><v<<><<<^<<^^vvv^^^><vv<>v<<^><^>v^><><vv>v<vvv<>v<^>>><<<<<^v><<v><><vvvv<^^^^v>><><>><^<><<vv^>v<v^><<<v<>>v>><>vv<><<^^<>^^>v^<^<<>^<v<<>><v^<<>>><vv^<<<<^v>>^<<<^<v<v<<<^^<v>><^>v^v>^^>v><^<v^v<<>^<>^^<vv<^vv<<>>>^<<<>v>>^<v<^<v<>>^^><<<^^^^<^^><^^^v<^>^^<^v^vvvv<>>^vv^^^^vv<>v^v^<v^v><v>^^<><><vv^<>^<^>>>>>vv>>>^^>>^>><^^<<vvv><^<v^><^v^v^>^v^>><v^^vv><><^v>>^<<>><^v>^>^v>vv>^<v<>>^^<^^<vvv>^>^v^v<^<>v<v^>v>v>>v^^v^^v>>^<><<v^v<v^>>^^v>^^>><>^v^<^^v>^vv^<v>^>>^>v^>><>v<>><><v>^>^^>>>^><<v>v<<>^>>>v>>^>vvvvv><v^^^v<<^>>^^><vvv^<^<<vv>>v^>>vv^<^^^<^<v^<<^v<><^>^v<v<vv>vv<v<>^^<><v<^>>v^v>>v<<v>>^^<^vv^>>
v^>>>v><<v^<>><v^vv>>v<v>^^>>v^<>><<<v><>^<^<><^v>v<>v^<<<<<v^><<v^v<v<>^<v>v^<>>>><<v^^^^<^>v<<>^<vv<^<>>>>^>>^^^<^<>^vv<v^>v^>^v>v^v^^v^^<v^^^vv^<<^^v<v<>^^v<^^<<>v<v>^vv^<v^v>^^>v<<<>^vv>v<v>><>^^<<v^^vvvv<<^<>v^<>v>vv>>^>^vv<vv^v<>^>^v^^><>^vvv>v^v^<^>v^<v<<<>><^^<v><v^><<<v^^^>>^^<vv<v^>>^>v>>^^>^^>><>^>><><v^vv>>>>v^v^<^^><vv^><vvv><><>v<>^^v^><^^^<v<^<^v^^><^>><v<v^v<>^>>v<<v<<<^><^v>^v<>><^v><>><>>^^<>>v^><>^><<>^v><<>^^^<<v^<^<<^<<<><^^<<<<^v<vvv<vv^><vv^<^^<>^><vv^vv^vv^>^vv^><v^<^<^^vv><<<<>v^>v^<^^<>vv<vv>>v><^<<^vv>v^>^<>v>>>>>^<><^^v<v>^v^vv<^>>v^><v^v^vvv^>^>^><<<^<<>v<>vv>>>^<vvv>vv^<^^vv<>vv<v^>^>^v<<v^<^<^><>v<<v^^v>>v>^<v^^>^v^<>><^v^v^>>vv>^vv^<^<^<>v>^v<v^v>>^^vv^^v><vvv<v^><^>><<<^^<v><^^<^v<><v<<^vv<^^^<v<v^vv^<<^v^^>>v^<^^^<vv><<><v^>vv>^>v^^^^^^v>v^<v<<vv<>>v><>><>><<^<>^v<^v^^>>>v>v<<>><<^><^><><>^v><>v>>v^<vv>^vv<<>vv^><<^^v^vv^v>><<>><v^v^^>v>>><v>>^>>v<<<><>>v<>>v>vv^^<^v<>^v>v>>v>^>>>>^v>><^<><><^><<<<^^^^><<^<v>^^>^<<v^v^>v<<<v>>v^vv^v^^^<^<>><vv>v><>v^>v
^^^>>><<v^v><v^<v^v<^<^v>^v>v<v>^>^v><^<<v<>^<><<v<<>v>>>>><v<<^><>vv^<^<<v>^>^^<^^>>v><<>^><<>>>>><>vv^^>^>>>v>^^v>^<<>><^<^<^><v>>><>v<vv<>^v><>>>v<v>v^>v><<><^v^v<><><v>>^vv^^<^vv<^vvvv<><v<^<<^>>>>><^^<>^>^<>v<<v^<>v^v^><>><^v<<vv>><^^vv>^^>vv<^>v^v>>>^v><<>>vv^>>^>^<^v><<^^<v^^v<vv<^><^^^^>><>^^<>vv^vv^^v^vv>>v^>^v<<>^>><^>><><<<>v>^v>^v>v>v^v<<^^>v><v^>^v<>>><<v>vv^>^^v<>^<^^^v>>v><v>^<<^v<>>>^<<<^<^<<<^>v<^<^v><^^<><v^vv^^^>v^v<^><vvv><v<><^>v^v><<>>^^^v><>v^^<<<^vv<><vv^<v<^v^^><v^>v<><v<>>^>vv>^^<><<vv<<v<v^<>><v^>v><>v<>^<^v<v<<><>v^<><^>><v^>v<>>^^<^^vv<>^^^v^<^v><>^vv><^v<>^^>><v^>^^^v^>>vv>><>>^vvvv<vv^><<v<^>^^^><><><vv^>><<^>vv<^v><>^><<^v^^<^<<>v><<^v^^<^^v<^v^v^v^>v^^^>>^>^>vv<><v^^<<v^^>^^^^><^^v<^>vvv^<^^>^<^<v>^><v><v><<^v>v<<>^<>v>^^v>v^vvv<^>^<v>v<v>v^v><<^>>vv^v<<vv^vv<vv>^>vv><>v^^>>>vv>>v>^v^<^v^v>v^><^><<^<>v><<^v<<<>>vvvv>^>>>vv>>vv<v<<vv>^><^>v>^<>^v^v^^>>v^>^^>^<v<<^<<v^v>^^>>v<^>>v<><>vvv<<>^^vv<v<<^v<v<v^>>v^<v^vv><<>>>^>v>>v^>><v<v>^><^>vvv>><>>>>v<^v^v<
^>^>^^<^<vv>v<^>^<<^v<><>>>>v^^>^<^<<v^<^^<v^v^^v><vv<^>^^v>v^vv><^>><vv^v^vv^<<<><v>v<^^vvv^<^^^>vv<^<vv><>v<^^v><<v<<^v<^^>>><v^^v><vv^^v>><v><>>>v>vv^><^<<>><<^<><^^<v^^^vv^^v^^>><><^<>v>v<>v<>v<^^<v<<v<<<<><vv^>v>^v^>^vv^<>>>v^v^<v>vv^vv>^^<>v>^>^>>v>^^><>>^v>v<<<>v<>><^^^v<<^^vvv^>>^^><><><<>>>>^>^><>v>>>>v>><^v<v><^vvv><^>>^>v>^vv^>>>^vvv<v>vv>^v>><<>v>^^v<<><^vv^vvv^^><<<^><v^<<v^v>vvv>^>^^^<v^v<v<^>v<^v>vv><v^<><<^<<^<>^v<>v>>><>v>^<>>^>v<v^^<^^<>vv<^<><^v^><>vv>v>^<v^><<>v><>^>v>v<><^>^vv>v^^><^>v^^^>>vv>vv<v<>^>v>vvv<><^<>^<v<<^><<<v<<>^<^v^^<<v<vvv<>><<<v>v>>v>^>^v<><vv<vv^^>^<<v>v<^<vv>><^<>^^v<>v<<>>v>^>^v^^^<v<><<>v>>^<^<>^v>vv>v<^<^^><^<><>v^<^v>>>^vv<>^v^<<<<v<><>vv>v<v<<^<>v>^<>>^v>v<>v>^<^v><<v^^<<>vv^>><v<><^v^vv^^^vv><>v^vv<<v<>>>v><<><<><v^<v^><<>>v^>>>>v<>>^vv^>>vv>>^<>><<^<><^<><>v^^>^v>vv^^<v<v^>>v<>v>>><v<>v<^^><v><v^>v^<>v^>>v<v<vvv>^<v<>vvv^vv^v><v^>v><^>>v^<>^v<>v<^vv^v><^<><^><<^>>>^>^v<<<v>>vv^^<>^>>^<>vv^>vv^v<^<v<v<>>v>v>><^<^>vv<<<<v><^><vv^>^v<<<^><<>^
^<^v^>^^^>>>vv<<<vvv>^^v<v^><^<v^^<<<vvv^<v<<<>><<>vv>vv>v<>><v^v>>>>^<vv<^>v>>v^v>v<>^vv>><v^v^<^<>><^v>v<>>>v^v>v>><v<v><v^v<>v<v>>>vvvv^vv<^^<<<vv^vv>>v^><<^<v<v>vv<^^<><<vvv>^v^^>>>>^^<<<^<<^>v^^^^>v><<<v>^^>vv^vv^>>v^^<^><v<^v^>^<v<^<v<>vvvv^v^v><^v^vv<vv<^v>v>v>v^^^vv^><vvv<v^^<^^<>vv^>><v^<v<<v<v>^><^<>>v>^<^vvv>vv>^v^v^<>^<<v><<><<<^vv^<>v><^<<^^>vvvv><v<<^vv^^>>><<>><>>>><>><v^>^<v<vv^v<<^v<<<^^v^<<v<^>><<>v><^vv>vv<^>v^<>^v^>><^^>>^><>>^>v>^<^^^v>vvv^><<<^v^<v<>>v<<vv<^^^<>v>>v<^<vvv<^<^v^>v<>>>>^^^^vv^^^^>v><<vv<<<<v><>><vv^>v>^<vv<^<^v>>><v^<vv^>vv<><<v<>v>>v^<^^>v^>>>v<><v<>^^<<^<>>^v>>>>^<><^^<<<>>vv^<<>v^>v<vv>vv^v<^v<^<v><v<v^<><>>v^><v<>v<<>>v<vv^>vvvv<>^vv>^vv><^^<<>>>><^<^<>v^>^^><><vv><v<<<^>v<^^>>v<^>v>>^<<>^<><v^v<<v^><^^<v><><>>>^<<^^><<v>><^<>^^^^<><<v>^vv<<vv<v^v><>>^<<v>>^v<^<<<<<><>^^^>^<>vv^^v>^^^<^vv><^>><>v<<>^>>>^><<^<<<>><>^v<>^^^v^v><^^vv^vvv<<v^>>>>^v>v>v<<>v<><>^vv^<^<>vv>>vv^<<vvv<v<<^<^<^<v>><>^>vvv^<v<><^^^<v<<>>v><>v^vvv^^<vv^<v^<<<vvvvv^^^>v<v>>>
<^^^<vv<><<<>^^>>^v>^<^>><>^<>^<^^>><<<^><>>v><v>^v><>><><vvv<^<<^<^<><<><^v>^v>>>>^^^^^v^<<<^v^>^v^><<><<<>^><<<>^v<^>vv^^v<^<<<<^<^v^><v<v^^^^vv^<^<>v>>><><<<^>^vv><vv>^v^><<>^^<<v>>vv>^^>v>>^v^^<^v<>><^v^^v<^<>v>^v^^^<<>><vv^^v^v>v<^^<v<^v>><>^<^<^<^^v^>vv^<^v>^v<<^^<v^<v>>>>>v^<^<>v^>^>v^^<^vv^v>v^^v^<v>>vv^<^<<^v>vv^vv<<v><^>^<^^^<<^><>vv>><<<><<<^v><<<<v^<<^<>vvv^<^<>v>>^^vv<><>><^<^vvv<^^>>vvv<^<<v>^^^^v<^v<^<<<<<^<v<^>^vv><v^<^v<v>v>v^^^>v^<v^>>>v^>><<>>>><><<<>>>><^v>v^><^><<^<<^v<vv<>vv>>>>v><><>v<v><v>^<v^>>v>v^^vv^<<^>^<^v>^^<v<^<^v<>v>v>vvv>v>v><<<>vv^>^^v<^^v^<^^v>v>v<<<v>vv>^<vv^^v<^<v>v^v>><<v><>^^v>>v>>vv^><^^>vvvv^v^v^^<>>v^<<<^vv<><v<<v^>^v^>><vv<v^^v>v>v>><>><>><v>v^<^>v^<<<^<<>><v<v^v^^>v<>>>><v<>^<><<v^^<<><<^<^v<vv<>v^v<^<^<<<^vv><v>>>>v>>>v<><<^^<v>^v>^vv^>><>>^><<^>><^^v^<^<<^><v^>v>v>>vvv^^vv^^v<v^v<>^v><<^v>>>><<v^<><vv>^v><^^^^<<<^>vv><<<><vv<^>>v^<vv<<v><^<^>v^<>^><^vvvv^^>v<<<>v^<^<v<<<>v>^<^^^>^v<v^>v<vv<<vv<>v><^<v>v<^<v<<><v<<^<>><^^>>>v>^^>>^^v^<v^<vv<
>^^^^v^v^<v^>>^<<v<><^<v>^<>>><>v<v>^v<<^>^^^^vv<><>vv^^^<>^>v^^<^v<>v>>>^<vvv<vvv<<^<>>^^<^<>v^<<^v^<>v^<><<vv<<<<<^>^^^><v^<<^><vv<^v^>>vv^^<>^^v^^>>^>>v>^>>^<^v>^^v>v><<v<<<<^><v>^>>v^^>^><<v><vv^>^><v<v<<^<<<<^^v>v<v<^<<<^>>>>v^>>>^<<^>><>><^^^>>><<vv<v^<v^v>><^v><><<>v^<<>vvv^v>>>v^^^v<vvvv><<vv^>>v<v>^vv><vv<><<^>>^<>>v<v^>^<^v>>vv>v<>^>v>vv^v><><v<v^v><vv<>^<>^<v^<^vvv>v<>vv<<^v><vvv<v^^v^^>^v>v><>^vvv^^><^^<v<><>^>>^><vv^^vvv<>vv<^vvv<>>v^<>v>^<<^>^v^><>>>>>^>v^>^v>v<<><>v^v<>>v^^^><vvvv<<v^v>vv<v^^>^<^><v^>^<<v>v^^<<>>v>vv^^^vvvv^>^^<<<<>v<<>^v>^<^<v>^v^^>v^><<vv>^<<v^<vvv^<>>vv^^v<><^><<>^v^^<>vvv^<^v>^<^<<>^<>vv<><<<^^>>>>>><^<>>v^^vv<^>v^>^<vv>^<<>>^>>^<^v^>^v^^<^^>>v^<<v^<<<v<v<<^<<>v<^v>^v^<v><^<<^vv>^<<<>v^<>^v>v^v>^<>^^<v^^>>^v^v><<^>^^^^v<><^v<<><>v^>^>>v^<><>v^>>^v<^^vvv^<v><><^^^v>v<<v>v^vv>^>^<v<>>v<><v^^^^v>v<>>^<>^^>>v<^^>^vv^^<<^<v><^^<><<^v^^>>v<^v<<<v>^<^>vv>><^<vv<>vvv<<><<<<><<<^<<^>><<v<^vv^<^<<^vv^^<^^^>>^^>vv^v<vvvv<^v<>v^>^<<><<><<><<>^^<v><<^>v^>>^<^>>>>
v^vv<>v^<><^<>>^<<<^>^^^<>>v<<<vv^><v<<<>v<vvv^>><<^>v<v^v><^v>>vv^^>>>^v^^v^^<^>v^vvvvvv>^^vv><^>>^^<<^^>v<^><>v>v^><>v^>^>><>>>^^><^>^<vv>>><vv^vvvvv>>>v<v<^<<v<v<v<<^<<v<v>vv><<^<<<v<<>vv^><<v^<^vvv>v^<<v>^v^>>^>^<vv^<<v<v^^^^<<<>v<^>v^>^v^>>^><^><v<<^^^^v>>^><><<<<v>><<vv^^><v^<>^<vv<^^<^<^><<<^^<^<v<^<^><<<v^vvvv>^^vv^v>v^v^^<>vv^<v^>^v^v<<v^<<^>v><^<>^<<^^<^v>^vv>>v<v<v>^><>v^<v<>v^v><>vvv^^v^<><>v<vv><v<v<vvvvv<v^^><>^^>^<^<>>^vv>^v>^v^<<>v>><<><><<^^<>^<>v>v>^v<<v<v>>v^>v<<^vv^>><v<>^>><<vv>v<^>^^v^<^<<><>vv<v><v<^v>^>v>><<^v>><<v<<>^>^>v>v>>^v^v^><<><>^^>^v>^<>><<>^>vv><v>vv<^<<>v<^<<^<<^>>^v<>^>>^>^^^>v>>^<^^^v^v^<v^^vv<<>v><^>><><vvv^<^<^vv>>v<>^v<<^^><v^v^>v><^<^<^^<>vv>>^<vv^^><v<<^^^vv<><v^<v<>v<v^v><<>^^>^vvv^v>v^^><<<><^^^<>^^v^^^>vv<>>>v>^<>v><^><<<<^><><^v^<<v^v<><v^^<<^^^><<v^v<<v^v<vv>><v<v<^><^><v^>^<v><<<^>v^^^><>vv^<>^v>>>v<>><^>>vv^>v^^<v<v^^<v<>><^>v^><v^<vv<<>vv>^^><><><>><<<><<<vv>^^^>^<>^<<^><>^<<<v<<>^vv<vvv><^^><v^<^v>>^^>v<>v>>><^<v<^<<<^<>>>vv^><^<v^^<^v

141
resources/2024/day16.txt Normal file
View File

@@ -0,0 +1,141 @@
#############################################################################################################################################
#.#.........#...#.....................#...........#...............#...#.................#...........#...#...#.....#.#...........#.....#....E#
#.#.#.#######.#.#.#########.#########.###.#.#####.###.#####.#.###.#.#.#########.#####.#.#####.#.#####.#.#.#.#.###.#.#.#####.#.#.#####.#.###.#
#...#.........#.....#.........#.....#.......#...#.........#.#...#...#...#...#...#.#.....#...#.#.......#...#.#...#.#...#.....#.#.#.....#.#...#
#.###################.###.###.#.###.#####.#####.#####.###.###.#.#######.#.#.#.###.#.#.###.#.###.###########.###.#.#####.###.#.#.#.#.###.#.#.#
#.#.....#.....#...#...#.......#.#.#.#...........#.......#...#...#.....#...#...#.#...#.....#...#.........#...#.#.#...#...#.....#.#.#.#...#...#
#.#.###.#.#####.#.#.#####.###.#.#.#.#.#.#.#####.#.###.#.###.#.#######.#######.#.#.#.#.#.#####.#########.#.#.#.#.###.#.###.###.#.#.###.#####.#
#.#.#.....#.....#.#.#...#.#...#.#.#...#.#.....#.#.#.....#...#.#.....#...........#.#...#.#.............#.#.#...#.#.#...#.....#.#.#...#.#...#.#
#.#.#######.#####.#.#.#.###.#.#.#.#####.###.#.#.###.#.###.###.#.###.#.###.###.#.#.#.#.#.#########.###.###.#.###.#.#######.#.###.#.#.#.#.#.#.#
#.#...#...#...#.....#.#.....#.#.#.....#...#.#.#.#...#.#...#.....#...#.#.#...............#...........#.....#.#...#.#.....#.#.#...#.#.....#.#.#
#.###.#.#.###.#.#####.#######.#.###.#.###.#.#.#.#.#.###.###.#.###.###.#.#####.#.###.#.###.#####.#.#.#######.#.###.#.#.#.###.#.###########.#.#
#.....#.#.....#.#.....#.....#.#.#...#...#.#.#.....#.#...#.....#...#.#.........................................#.....#.#...#.#...#...#.....#.#
#####.#.#####.###.#######.#.#.#.#.#######.#########.#.#######.#.###.#####.#.#.#.#.#.#.#######.#.#.#.#.#.#####.#.#####.###.#.###.#.#.#.#####.#
#.....#.....#.#...#.......#.#.#.#...#.....#...#...#.#.#.....#.#.#.#.....#...#.....#.#.#.....#.#.#.#.#.#.....#.#.#...#.#.#.#...#...#.#.#.....#
#.#########.###.#####.#######.#.#.#.#.#####.#.#.#.###.#.###.#.#.#.#.###.###.#.#.#.#.#.#.###.###.#.#.#.#####.#.#.#.#.#.#.#.#.#######.###.#.#.#
#.#...#.....#...#.....#.....#.#.#.#.#.#...#.#...#.......#.#.....#...#.#.#...#.#.#.....#.#.#.....#...#.#.....#.#...#.#.#...#.......#.....#...#
#.#.#.#.#####.###.#####.###.#.#.###.#.#.#.#.#######.#####.#######.###.#.#.###.#.###.###.#.#######.#.#.###.###.###.###.#.#####.#############.#
#.#.#...#.....#...#.....#.#...#...#.#...#.#...#.....#.....#.......#...#.#.#...#...#...#.#...#.......#...#.#...#.#.#...#.......#.....#...#...#
###.###.#.#######.#.#####.#######.#.###.#.#.###.###.#.###.#.#########.#.#.#.###.###.#.#.#.###.#########.#.###.#.#.#.###########.#.#.###.#.###
#...#...#.#...#...#...#...#.....#.......#...#...#...#...#.#.........#.#...#.....#...#.#.#.#...#.........#.....#...#.....#.......#.#...#.#...#
#.###.#.#.#.#.#.#.###.#.###.###.#######.#####.###.###.###.#########.#.#####.#####.###.#.#.#.###.###############.#######.#.#######.###.#.###.#
#.....#.....#...#...#.#...#.#.....#.....#.....#...#...#.......#...#.........#...#.#.#...#.#.#.#.#.............#.#.....#...#.....#.#.#...#...#
#.#############.#####.#.#.#.#.#####.#####.#####.#######.#####.###.#######.#.#.#.#.#.#####.#.#.#.#.#.#.#######.#.#.#.###########.#.#.#.###.###
#...............#.....#.#...#.....#.....#.#...#...#.....#...#.....#.#.....#.#.#...#.....#...#.#.#.#.#.#.#.....#.#.#...........#.#.#...#.....#
#####.#.#.#.#.###.#####.#########.###.###.#.#.###.#.#####.#.#####.#.#.#####.#.#####.#.#.#.###.#.#.#.#.#.#.###.#.#########.###.#.#.###.#.###.#
#.......#.#.#...#.#.......#...#.....#.#...#.#...#...#.....#.....#...#...#...#.....#.#.#.#.#...#...#.#...#.#...#.#.........#.#...#...#.#.#...#
#######.###.###.#.#.#.###.#.#.#.#####.#.###.###.#########.#.#.#####.###.###.#####.#.#.###.#.#.###.#.#.###.#.###.#.#########.###.###.###.#.#.#
#...........#...#...#.#.....#.#.......#.......#...#.....#.#.#.#.....#.#...#...#...#.#.#...#.#...#.#.#.#.......#.#.#.......................#.#
#.#####.#####.#.#.###.#######.#############.#####.#.###.#.#.#.#.#####.###.#####.###.#.#.###.#.###.#.#.#.###.###.#.#.#########.#.#.###.#####.#
#.#.........#.....#.#...#...#.............#.#.....#...#...#.#.#.#.......#...#...#.#.#.#.#.#.......#.#.#.#...#...#.#.#.......#.....#.........#
#.#####.#.###.#.###.###.###.###########.#.#.#.#.#.###.#.###.#.#.#.#.#######.#.###.#.#.#.#.#.#.#.###.#.#.#.###.###.###.#####.#####.#.#.#####.#
#.#.......#...#.......#.#.................#.#.#.#.#...#.#...#.#.#.#.#.....#...#.#...#...#.#.#.#.#.....#.....#.#.#...#...#.#.....#...#.....#.#
#.#.###.###.###########.#.#######.#####.###.#.#.#.#.###.#.###.#.###.#.###.#####.#.#######.#.#.#.#.#.###.###.#.#.#.#.###.#.#####.#.#######.#.#
#.#.........#.........#.#...#...#.#.....#...#.#...#.......#...#.....#.#...#.....#.#.....#...#.#.#.....#...#.#.#.#.....#.#.....#...#.......#.#
#.#.###.#####.#.#####.#.#.#.#.###.#.#####.###.#######.#####.#####.###.#.###.###.#.#.###.#.#.#.#.#######.#.###.#.#.###.#.#.###.###.#.#######.#
#.#.......#...#...#...#...#.#.....#...#.....#.#.......#.....#.#...#...#...#.#...#.#...#...#.#.#.......#.#.....#...#...#.#.#.......#.....#...#
#.#######.#######.#.#####.#.#########.#.###.#.#.###.###.#####.#.###.#####.#.#.#.#.#######.#.#.#######.#.#######.###.###.###.#####.#####.#####
#.......#.........#.#.....#...........#...#.#.#.#.#.#.........#.#...#.....#.#.#.#.#.....#...#.......#.#.....#.....#...#.....#.........#.....#
#.#####.###.#######.#.###.#.#.#######.###.#.#.#.#.#.###########.#.###.#####.#.###.#.###.###.#.###.###.#####.#.###.###.#####.#.###.###.#.###.#
#.#.#...#...#...#.#...#...........#.......#.#.#...#.#.....#.....#...#...#.........#...#.#...#...#.#...#.#...#.#.....#.....#.#.#.....#.#.#...#
#.#.#.###.###.#.#.#####.###.#####.#.#######.#.###.#.#.###.#.#######.###.#.###.#####.#.#.#.#####.###.###.#.###.#.#######.###.#.#.#.###.#.#.#.#
#...#.#...#...#.#.......#.....#...#...#...#...#...#.#...#...#...#...#.#...#.........#...#.........#.#.#...#.....#.....#.....#...............#
###.#.#####.###.#.###.#########.###.###.#.#.#.#####.###.#####.#.#.###.#####.#########.###########.#.#.#.###.#####.###.#.#####.#####.#.###.#.#
#...............#...#.#.........#...#...#.....#.....#...#.....#.#...#.....#...#...#...#.........#.#.#.....#...#...#...#.....#.....#.......#.#
#.###.#.#######.#.#.###.#########.###.#####.#.#.#####.#####.#.#####.#.#.###.#.#.#.#.###.#.#####.#.#.#####.#.###.###.#####.#.#.#.#.#########.#
#...#.#.#...#...#.#.....#...........#.#...#.#.#.#...#.#.....#.#.....#.#.#...#...#.#.#...#.#...#...#...#...#.#...#.#.......#.#.#.#.....#.....#
#.###.#.###.#.#.#####.###############.#.#.###.#.#.#.#.###.#.###.#####.#.#.#######.#.#####.#.#.#######.#.###.#.###.###.#.###.#.#.#.###.#######
#.#...#.#...#.#.#...#.......#.........#.#.....#...#.#.#...#.#.......#.#...#.....#.#...#...#.#.#...#...#.....#...#.....#.....#...#...#...#...#
#.#.#.#.#.###.###.#.#######.#.#######.#.#######.###.#.#.#####.###.#.#.#####.###.#.###.#.#.#.#.#.#.#.#.#.#######.#.#####.#######.#.#.###.#.#.#
#.#.#.#.#...#.....#.....#.....#.......#.#.....#.#.#.....#.....#...#...#.....#...#.#.#...#.#.#.....#.#...#.......#.......#.........#...#...#.#
#.#.###.###.#####.#####.#######.#####.#.#.#####.#.#.###.#.#####.#.#####.#.###.###.#.#####.#.#####.#.#.###.###.###.#######.#.###.#####.#####.#
#.#...#.....#.........#.......#.#...#.#.#.......#.......#.....#.........#...#.#...#.#...#.#...#...#.#.....#...#...#...#...#.#.....#.#.....#.#
#.###.#####.#.###.#####.#####.###.#.###.#.#.#####.#.###.#####.#############.#.#.###.#.#.#.###.#.#.#.#########.#.###.#.#.#.###.###.#.###.###.#
#...#.......................#.#...#...#.#...#...#.#.#.#.#.#...#.......#.....#.#.#...#.#.....#.#.#.....#.....#.#.#...#...#.....#.#.#.....#...#
###.###.#.###.#.###.#.#.###.#.#.###.#.#.###.#.#.###.#.#.#.#.###.#####.#.#####.#.###.#.#######.#.#####.#.###.#.#.#.#############.#.#######.#.#
#.#...#...#.......#...#.#...#...#.#...#...#...#.....#.#...#.....#.#...#.....#.#...#.#.....#...#.......#...#...#.#...#...........#.#.....#.#.#
#.###.#####.#####.#####.#########.#.#####.###########.###.#######.#.#####.#.#.###.#.###.###.###########.#.#####.###.#.#.#######.#.#.###.#.#.#
#...#.#.......#...#...#...#.......#.....#...#.#.........#.......#.#.#...#.#...#...#.#...#...#.........#.#.....#.#...#.#...#.........#.#...#.#
###.#.#.#####.#.###.#.#.#.#.#.#########.###.#.#.#####.#########.#.#.#.#.#######.###.#.###.#######.###.#######.#.#.#.#.#.#.#.###.#.###.#####.#
#...#.#.#...#.#...#.#.#.#...#.#.....#...#...#.......#.#.........#.#...#.......#.#...#...#...#.....#.........#.#...#.#.#.#.#.#.....#.........#
#.###.#.#.#.#.#####.#.#.#####.#.###.#.###.#####.#####.#.#########.#####.#####.#.#.#.###.###.#.#####.#######.#.#####.#.###.#.###.#.#.#######.#
#.#...#.#.#...#.....#.#.#.....#.#.#...#...#.....#.....#.#.........#.........#...#.#.....#.#.#.....#.#...............#.#.......#.#...#.......#
#.#.###.#.#####.#####.###.#.###.#.#####.#.#.###.#.#####.###.#####.#########.#####.#.#.###.#.#####.#.#.#.###########.#.#.#.###.#.#.###.###.#.#
#...#...#.....#.#.......#.#.#...#.....#.#...#...#.....#.....#...#...........#.....#.#.....#.#...#.#.#.#.#.....#.....#...#...#.#.#.#...#.#.#.#
#.###.#######.#.#######.#.#.#.#####.###.#####.###.###.#####.#.#.###.#######.#.###.#######.#.#.#.#.###.#.#.###.#.#####.#####.#.#.#.#.###.#.#.#
#.....#.#.....#.#.........#.#...#...#...#...#...#...#.....#.#.#...#.#...#...#...#.......#.#...#.#.....#.#.#...#.#.......#...#.#.#.#.#...#...#
#######.#.#####.#.###.#####.###.#.#.#.#####.#.#.#####.#.###.#.###.###.#.#####.#####.#.#.#.#####.#####.#.#.#.#####.#.###.#.#.#.#.#.#.#.#####.#
#.......#.#.....#...#...#...#...#.#.#.#.....#.#.....#.#.....#.#.#.....#.......#...#...#...#.....#...#.#.#.#.#.....#.#...#.#.#.#.#.#...#.....#
#.#####.#.#.#######.###.#####.###.###.#.###.#.#####.#########.#.#.#.#.#########.#.###.#####.#####.#.###.#.#.#.#####.#.###.#.#.#.#.#####.###.#
#...#...#.#.......#...#...#...#.......#.#.#...#...#...........#...#.............#...#.#.....#.....#.....#.#.......#.#.#.....#.#.#.......#...#
###.#.###.#.#.#.#.###.###.#.#########.#.#.###.###.#############.#.#########.#.#####.#.#.#####.#######.###.#########.###.#####.#.#.#######.#.#
#.#.#.....#...#.#...#...#...#...........#...#.....#...#.....#...#...#...#...#...#...#...#.......#...#.#...#.........#.....#...#.....#...#.#.#
#.#.#########.#.#######.#####.#####.#.#.#.#####.#.#.#.#.#.#.#.#####.#.#####.###.#.###.#####.###.#.###.#.###.#.#####.#.#####.#####.#.#.###.#.#
#...#.........#.......#.....#.....#.........#...#...#...#.#.#.....#.#.#...#.#.#.#.....#...#...#.#.....#...#.#.#...#.#.#.....#...#.....#...#.#
#.#######.###.#####.#.#.###.#####.#.#####.#.#.###.#######.#.###.#.#.#.#.#.#.#.#.#######.#.#####.#.#######.#.#.#.#.###.#.#####.#.#####.#.###.#
#.......#.....#...#.#.....#.#...#.#.....#.#...#...#...#.......#.#...#...#.#...#.#.......#.......#.......#.#.....#.#...#.......#...#...#.....#
#######.#.###.#.#.###.#####.#.#.#.#####.#.#####.#####.#.#####.#.#.#######.###.#.#.#################.#####.#####.#.#.###########.#.#########.#
#.#.............#.....#...#.#.#.......#.#...#.........#.....#.#.#.......#...#.#.#...#...........#...#.....#...#.#.#.#.......#...#.........#.#
#.#.#######.#.#.#####.#.#.#.#.###.#####.###.###########.###.#.#.#####.#.###.###.#.#.###.#.###.#.#.###.#####.#.###.#.###.###.###.#########.#.#
#.#...#...#.#...#.....#.#...#.#...#.....#.#...#...#...#.#...#.#.#.#...#.#...#...#.#...#.#.#.....#.#...#.#...#.....#...#.#...........#...#...#
#.###.#.#.#.#.#.#######.#####.#.###.#####.###.#.#.#.#.#.#.#.###.#.#.###.#.###.###.###.###.#######.#.###.#.#.#########.#.#######.###.#.#.#####
#...#...#.#.#...#.....#.......#...#.#...........#...#.#.#.#.#...#.#.#...#.....#.....#...#.....#...#.....#.#.#...#...#.#.........#.#.#.#.....#
#.#.#####.#.#.#.#.###.###########.#.#.###############.#.#.###.###.#.#################.#.#.###.#.#######.#.###.#.#.#.#.###.#####.#.#.#.#.###.#
#.#.#.....#...#.#.#.#.............#.#.....#.....#...#.#.#...#.....#.#.................#.#.#.#...#.....#.#.....#...#.#...#...#.#.#...#.#.#...#
#.#.#.#####.#.###.#.#####.#######.#.#######.###.#.#.#.#####.#.###.#.#.#######.#######.#.#.#.#####.#.#.#.###########.###.###.#.#.#.###.#.###.#
#.#.#.#.....#...........#.#.#.....#.#.........#.#.#.#.#...#...#...#.#.#.......#.....#.#.......#...#.#.#.#.........#...#...#...#.#...#.#...#.#
#.###.#.#####.#####.#####.#.#.#####.#.#########.#.#.#.#.#.#.#.#.###.#.#.#.#####.###.#.#.#######.###.###.#.#####.###.#####.###.#.###.#.###.###
#.#...#.#.........#.#.....#...#...#.....#...#...#...#...#.#.#...#.#.#...#.#.............#.........#.#...#...#.#...#.....#.#...#...#.#...#...#
#.#.#####.#######.#.#.#####.###.#########.#.#.###.#.#####.#####.#.#.###.#.###.#########.#.#########.#.#####.#.###.#####.#.#.###.#.#.#######.#
#...............#.#.#...#.#.#.......#.....#...#...#.....#.....#...#.#...#...#...#.....#.#.......#.......#.#.....#.....#.#.#...#.#.#.#.......#
#.#####.###.#.#.#.###.#.#.#.#######.#.#.#######.#.#.#########.#####.#.#####.#####.###.#########.#.#####.#.#####.###.#.#.#.###.#.#.#.#.#####.#
#.....#...#.#...#...#.#.#.#.........#.#.#.....#...#.#.............#.#.#...#.......#.#.......#...#.....#.......#...#...#...#.#...#.#.#.#...#.#
###.#.###.#.###.###.#.#.#.#######.###.#.#.###.#.#.#.#.#####.#####.#.#.#.#####.###.#.#####.###.###.###.#.#.#.#####.#.#######.#.#.#.#.#.#.#.#.#
#...#.#.#...#...#...#.#.#...#.....#...#...#.#...#.#...#.#...#.....#.#.#...........#.#...#...#...#...#.#.#.#.......#.......#...#...#.#.#.#.#.#
#.###.#.#####.#.#.#####.#.###.#####.###.###.#####.#.###.#.###.#####.#.#.#####.###.#.#.#.###.###.#.###.#.#.###.###.###.###.#.###.###.#.#.#.#.#
#...#.#.......#.#...#...#.........#...#...........#.....#...........#.#.#...#.#...#.#.....#.........#...#...#.......#.#...#.#.#.#...#.#.#...#
###.#.#.###.###.#.#.#.###.#######.###.#####.#####.#.#########.#######.#.#.#.#.###.#.#.#.#.#########.#######.#######.#.#.#.#.#.#.#.###.#.#####
#.............#...#.#...#.#...#.#.#.#.......#.....#.#...........#...#.#.#.#.#...#.#...#.#.#.......#...#.......#...#.#...#.....#.#.#...#.#...#
#.###.#####.#.###.#.#.#.#.#.#.#.#.#.#########.#####.#.#########.#.#.#.#.#.#.###.#.#####.###.#.###.###.#.#.#####.#.###.#####.###.#.#.#####.#.#
#.#.#...#...#...#.#.#.#.#.#.#.#...#...#.......#.....#...#.....#.#.#...#.#.#.#...#.....#.....#.#.......#.....#...#...#.#...#.#...#...#.....#.#
#.#.###.#.###.#.#.#.#.#.###.#.#.#####.#.#.#############.#.#####.#.#####.#.#.#.#######.#.#####.#############.#.#####.###.#.#.#.#######.#####.#
#.#.#.....#...#.....#.#.....#.#.#.....#.#.......#.....#.#...#...#.#...#.#.#.#.#...#.#.#.....#...............#.....#.....#.#.#...#.....#...#.#
#.#.#.#.###########.#.#######.#.###.###.###.###.#.#.###.###.#.###.#.#.#.###.#.#.#.#.#.#####.#####################.#######.#.###.#.#####.#.#.#
#.#.....#...........#...#.....#.#...#...#.....#...#...#.....#...#...#.#...#.#.#.#.#.#...#.#...#.......#.........#...#...#.#...#.....#...#...#
#.#####.#.###############.#####.#.#.#.#.#.###########.###.#####.#####.###.#.#.#.#.#.###.#.#.###.#####.#.#######.###.#.#.#.#########.#.#.#.#.#
#.....#.#.#.........#.....#...#.#.#.........#.......#.#...#.......#...#...#.#.#.#.....#.#...#...#...#...#.....#.....#.#.#.....#...#.#.#...#.#
#.###.#.#.#.#######.#.#####.#.#.#.###.###.###.#####.#.#.###.#######.#####.#.#.#.###.###.#.###.#####.#####.###.#########.#####.#.#.#.#.#.#.#.#
#...#.#.#...#...#.#...#.....#.#.#.#.....#...#.#...#...#.#...#.......#...#.#.#.#...#.#...#.#...#.....#...#.#...#.........#...#...#.#...#.....#
#####.#.#####.#.#.#####.###.#.#.#.#.#.#.#.#.#.#.#.###.#.#.#.#.#######.#.#.#.#.###.#.#.#####.###.#.#.#.#.#.#.###.###.#.#.#.#.#####.#.###.#.#.#
#.....#...#...#.#.....#.#...#.#.#...#.#.#.#...#.#.....#.#.#.....#.....#.#...#.#...#.#.......#...#.#.#.#.#.#...#...#.#.....#...#...#.#.....#.#
#.#####.#.###.#.#.#.###.#.#####.#####.#.#.#####.#######.#.#####.#.#####.#.###.#.#####.#.#.#.#####.###.#.#.###.###.#.###.#######.#####.#.#.#.#
#.#...#.......#...#.#...#.......#.....#.#...#.#.#.......#.....#.#...#.#.#.#...#.....#...#.#.....#.....#.......#...#...#.#.......#.....#.#.#.#
#.###.#.#############.###########.#####.###.#.#.#.#########.#.#.###.#.#.###.#.#.###.#####.#####.#.###########.#.#.###.###.#######.#####.#.#.#
#...#...#.....#.....#...#.........#.#...#...#...#.#.......#...#.....#.#.....#.....#.....#...#...#.#...........#.#...#.#...#.......#.....#...#
###.###.#.###.#.###.###.#####.#####.#.###.###.###.###.#.#.#.#####.#.#.#######.#######.#.###.#.#####.#########.#.###.#.#.###.#.#######.#####.#
#...#.......#...#...#...#...#.#.......#...#.....#...#.#.#.#.....#.#.#.#.......#.#.....#...#...#.....#...#.....#...#.#...#...................#
#.#.#.#.#########.#.#.###.#.#.#.#######.#.#########.#.#.#.###.#.#.#.#.#.###.#.#.#.#############.#.#.#.#.#########.#.#########.###.#.#.#.###.#
#.#.#.#...#...#...#.#...#.#...#.#.....#...#...#...#.#.#.#.....#.#...#.#...#...#.#.................#.#.#.........#.#.........#.#...#...#.#...#
#.#.#.#.#.#.#.#.###.###.#.#####.#####.#.###.#.#.#.#.#.#.#.###########.###.#####.#############.#####.#.###.###.#.#.###.#####.#.#.###.###.#.#.#
#.#.#.....#.#...#.....#...#...#.....#.#.....#...#...#.#.#...........#.....#.........#.....#...#...#.#...#.....#.#...#...#.#...#.#...#...#.#.#
#.#######.#.#####.###.#####.#######.#.#################.#########.###.#####.#######.#.###.#.#.#.#.#.###.#.#.###.###.###.#.#####.#.###.###.#.#
#.......#.#.....#.....#...#.......#...#...#...#.........#.....#...#.........#.........#...#.#.#.#.#.#...#.....#...#.....#.......#...#.#...#.#
#.#.###.#.#####.#######.#.#.#.#.#.###.#.#.#.###.###.###.#.###.#.###.#######.#.#######.#####.###.#.###.#######.#.#.#############.###.#.#.###.#
#.#...#.#...#.#.........#...#.#.#.#.#.#.#...#...#.#.#...#...#.#.....#.......#.#.....#.#...#.....#.#...#.......#.#.....#...................#.#
#####.#.###.#.###############.#.#.#.#.#.###.#.###.#.#.#######.#########.#####.#.#.#.###.#.###.#.#.#.###.#####.#.#####.#.#######.#########.#.#
#.....#.#...#.........#...#...#.....#.#.#...#...#.#.#.......#.........#...#.#...#.#.....#...#...#.....#.#...#.#...#.........#...#.......#...#
#.#####.#.###.#.###.#.###.#.#.#######.#.#.#####.#.#.#######.###.###.#.#.#.#.#.###.#########.###.#####.#.#.###.#.#.#.#####.#.#####.#####.#.#.#
#.....#.#.#...#.#.#...#...#.#.#.....#.#...........#.#.....#...#.#...#.#.#.#...#...#.....#...#.......#...#...#.#.#.#.....................#.#.#
#.###.#.#.#.###.#.#.###.###.###.###.#.###.###.#####.###.#####.#.#.###.###.#.###.###.###.#.###.#.###.#####.#.#.#.#.###.#.###########.###.#.#.#
#...#.#.#.#.#...#...#...#...#...#.............................#.#.#.#...#.#.#.#.......#.#...#.....#.#.....#.....#.#.#.#.#.......#...#...#...#
###.#.#.#.###.###.###.#.#.###.###.#####.#.#.###.#.###.#.#.#.#####.#.###.#.#.#.#########.#.#.###.#.#.###########.#.#.#.#.#.#.#####.###.#.###.#
#...#.#.#...#.#.....#.#.#.#...#.........#.......#.....#.#.#...#...#...#...#...#...#.....#.......#.#...........#...#...#.#.#...#...#.......#.#
#####.#.###.#.#####.#.#.#.#.#######.#####.###.#########.#.###.#.###.#########.#.###.#.#.#.#####.#.#.#########.#.#.#####.###.#.#.#####.#.#.#.#
#.....#.#...........................#.....#...#.......#.#...#.#...#.........#.#...#.#...#...#.....#.............#.#...#...#.#.#.....#.#.#.#.#
#.#######.###.#.#.#####.#.###########.###.#.#####.###.#.#.###.###.#####.#.#.#.###.#.#.###.#.#######.#.###.#.###.###.#.###.###.#####.#.#.#.#.#
#.#.............#.....#.#.....#.....#.....#.....#...#.#.#...#.....#...#.#.#.#.#...#.......#...#...#.#.#...#.#...#.................#.#...#.#.#
#.#.###########.#.###.#.###.#.#.###.#.###.#.###.#####.#.###.#######.#.###.#.#.#.#.###.###.###.###.#.#.###.#.#.#.#.###.###.#.#####.#.#.#.###.#
#...#.....#.....#.#.#...#...#.#.#.#.#...#.....#.....#.#.#.#.#.......#.....#.#...#...#.......#...#...#.....#.........#.#...#.#.....#.#.#.....#
#.#####.#.#.#####.#.#####.#####.#.#.###.###########.#.#.#.#.#.###.#.###############.#.###.#.###.#########.#.#.#.###.#.#.###.#.#####.###.#####
#S......#...#...........#.........#.................#.....#.......#...........................#...........#.................#.....#.........#
#############################################################################################################################################

5
resources/2024/day17.txt Normal file
View File

@@ -0,0 +1,5 @@
Register A: 28066687
Register B: 0
Register C: 0
Program: 2,4,1,1,7,5,4,6,0,3,1,4,5,5,3,0

3450
resources/2024/day18.txt Normal file

File diff suppressed because it is too large Load Diff

1691
resources/2024/day22.txt Normal file

File diff suppressed because it is too large Load Diff

3380
resources/2024/day23.txt Normal file

File diff suppressed because it is too large Load Diff

313
resources/2024/day24.txt Normal file
View File

@@ -0,0 +1,313 @@
x00: 1
x01: 0
x02: 1
x03: 1
x04: 0
x05: 0
x06: 1
x07: 1
x08: 0
x09: 1
x10: 1
x11: 1
x12: 1
x13: 1
x14: 1
x15: 0
x16: 1
x17: 0
x18: 1
x19: 1
x20: 0
x21: 0
x22: 1
x23: 0
x24: 1
x25: 0
x26: 1
x27: 0
x28: 1
x29: 1
x30: 0
x31: 0
x32: 1
x33: 1
x34: 1
x35: 0
x36: 1
x37: 1
x38: 0
x39: 0
x40: 1
x41: 1
x42: 0
x43: 0
x44: 1
y00: 1
y01: 0
y02: 0
y03: 1
y04: 1
y05: 0
y06: 0
y07: 0
y08: 0
y09: 0
y10: 0
y11: 1
y12: 0
y13: 0
y14: 1
y15: 1
y16: 0
y17: 0
y18: 1
y19: 0
y20: 0
y21: 0
y22: 1
y23: 1
y24: 0
y25: 0
y26: 0
y27: 1
y28: 1
y29: 1
y30: 0
y31: 1
y32: 1
y33: 0
y34: 1
y35: 1
y36: 0
y37: 0
y38: 1
y39: 1
y40: 1
y41: 0
y42: 0
y43: 1
y44: 1
njs AND pvb -> fjh
y12 AND x12 -> dcm
srv XOR dfc -> z22
qwb XOR vmp -> z14
njs XOR pvb -> z10
cjn OR dfj -> fgc
kpp XOR tvh -> z34
tbq OR rdf -> frv
y40 AND x40 -> drs
pqh XOR mmh -> z05
x26 XOR y26 -> jkt
qqp AND dmw -> kqp
qsh OR wfw -> qcr
hvw AND qnn -> vgk
bkc OR wsq -> ckv
ckv XOR bbh -> z03
frj XOR hqq -> z02
qff OR stw -> wsv
qpq XOR vnr -> z30
pbk XOR kqc -> z15
mvp OR pbv -> dbj
x15 AND y15 -> qsh
wcs OR cqk -> kpp
bmr XOR fgc -> z32
y42 XOR x42 -> qjf
srv AND dfc -> rng
rsq AND nts -> brq
fhv AND hjw -> wwg
x06 AND y06 -> phw
vtf AND gdw -> kpc
wvv AND wbf -> qdh
y28 AND x28 -> nhs
y04 AND x04 -> ttv
cts XOR bcd -> qqp
mmh AND pqh -> rkt
hjw XOR fhv -> z37
jdd AND rbm -> z36
drt XOR tpt -> z31
y20 XOR x20 -> gcf
x27 AND y27 -> ptf
qnn XOR hvw -> z41
x13 AND y13 -> msq
cbr XOR hjd -> z07
mkv OR hgp -> z45
y35 XOR x35 -> spp
x08 XOR y08 -> nrk
y03 XOR x03 -> bbh
fhc OR ggh -> fwt
whj AND vrh -> qpj
x34 XOR y34 -> tvh
y43 AND x43 -> mpm
y15 XOR x15 -> pbk
x23 XOR y23 -> bcd
bwv AND tcd -> sgv
bcd AND cts -> jcd
ggs OR qmw -> tpt
gdm XOR jkm -> z09
y38 XOR x38 -> pgm
x19 AND y19 -> vmc
dtc OR ggg -> kqc
hqq AND frj -> bkc
smv OR wwg -> bhh
y17 AND x17 -> tfq
x14 AND y14 -> dtc
y39 AND x39 -> ggh
jmh AND cjc -> gfp
mgj XOR wsv -> z12
ftd AND wcw -> hjm
y19 XOR x19 -> whj
nrk AND ksd -> vwf
fgq AND spp -> drp
rsq XOR nts -> z18
y10 XOR x10 -> njs
frv XOR qdb -> z04
wbk OR fcv -> fgq
whj XOR vrh -> z19
tvh AND kpp -> wbk
y39 XOR x39 -> pwt
scg OR gkj -> grv
dfn XOR qcr -> pbv
x27 XOR y27 -> ftd
svg OR tfq -> rsq
fkd XOR fwt -> z40
x07 AND y07 -> pdq
y13 XOR x13 -> hnt
grv XOR vpm -> z21
y02 XOR x02 -> frj
jkt XOR dbp -> z26
wdr OR jcd -> z23
x21 AND y21 -> wns
y08 AND x08 -> btn
qqp XOR dmw -> z24
x01 AND y01 -> wqt
frw AND hdp -> hgq
frk AND wpk -> hgp
x07 XOR y07 -> cbr
x29 AND y29 -> jgm
sgv OR wqt -> hqq
tpt AND drt -> dfj
sdn OR rkt -> kqk
frv AND qdb -> vjj
fjh OR thp -> ncw
y26 AND x26 -> vvr
x25 AND y25 -> kcs
ftd XOR wcw -> z27
tcd XOR bwv -> z01
brk XOR kqk -> z06
x10 AND y10 -> thp
frw XOR hdp -> z25
pgm AND bhh -> hsh
x24 XOR y24 -> dmw
vmc OR qpj -> bkv
x44 AND y44 -> mkv
knh OR vgk -> rps
dfn AND qcr -> mvp
tqj OR rng -> cts
tbb OR wns -> srv
msq OR pjj -> vmp
drs OR ghn -> hvw
hsh OR rrb -> rms
dbj XOR bgt -> z17
mpm OR kpc -> frk
bgt AND dbj -> svg
x40 XOR y40 -> fkd
x16 AND y16 -> z16
cbr AND hjd -> dvs
fsb OR drv -> gdw
cjc XOR jmh -> z29
pdq OR dvs -> ksd
rpw OR fbq -> fhv
y05 XOR x05 -> pqh
x30 AND y30 -> ggs
bmb OR drp -> jdd
hnt XOR fbm -> z13
y42 AND x42 -> fsb
qpq AND vnr -> qmw
x11 XOR y11 -> qff
gcf AND bkv -> gkj
wvv XOR wbf -> z28
x05 AND y05 -> sdn
pqp OR phw -> hjd
jdd XOR rbm -> fbq
njt OR kqp -> frw
y00 XOR x00 -> z00
y31 AND x31 -> cjn
x32 XOR y32 -> bmr
x34 AND y34 -> fcv
y24 AND x24 -> njt
y06 XOR x06 -> brk
x12 XOR y12 -> mgj
ckv AND bbh -> tbq
rps XOR qjf -> z42
x33 AND y33 -> cqk
y09 AND x09 -> nhk
y33 XOR x33 -> mbp
x04 XOR y04 -> qdb
x22 AND y22 -> tqj
y20 AND x20 -> scg
y01 XOR x01 -> tcd
fgc AND bmr -> shp
mbp XOR pnw -> z33
frk XOR wpk -> z44
y43 XOR x43 -> vtf
x37 XOR y37 -> hjw
y03 AND x03 -> rdf
rms XOR pwt -> z39
bhh XOR pgm -> z38
spp XOR fgq -> z35
y22 XOR x22 -> dfc
qjf AND rps -> drv
kcs OR hgq -> dbp
y29 XOR x29 -> cjc
x25 XOR y25 -> hdp
hbq OR dcm -> fbm
brk AND kqk -> pqp
qwb AND vmp -> ggg
gpb OR shp -> pnw
y02 AND x02 -> wsq
ptf OR hjm -> wvv
x18 XOR y18 -> nts
x23 AND y23 -> wdr
x09 XOR y09 -> jkm
x36 AND y36 -> rpw
x32 AND y32 -> gpb
mbp AND pnw -> wcs
jgm OR gfp -> qpq
x11 AND y11 -> qnw
bkv XOR gcf -> z20
nhk OR ftf -> pvb
gdw XOR vtf -> z43
vjj OR ttv -> mmh
x41 AND y41 -> knh
ncw XOR qnw -> z11
y28 XOR x28 -> wbf
y36 XOR x36 -> rbm
mgj AND wsv -> hbq
hnt AND fbm -> pjj
brq OR bfd -> vrh
x17 XOR y17 -> bgt
ksd XOR nrk -> z08
x38 AND y38 -> rrb
fwt AND fkd -> ghn
ncw AND qnw -> stw
x18 AND y18 -> bfd
y00 AND x00 -> bwv
gdm AND jkm -> ftf
rms AND pwt -> fhc
x16 XOR y16 -> dfn
y37 AND x37 -> smv
x35 AND y35 -> bmb
y30 XOR x30 -> vnr
jkt AND dbp -> dbt
y41 XOR x41 -> qnn
x31 XOR y31 -> drt
qdh OR nhs -> jmh
vwf OR btn -> gdm
y44 XOR x44 -> wpk
x14 XOR y14 -> qwb
x21 XOR y21 -> vpm
pbk AND kqc -> wfw
vvr OR dbt -> wcw
grv AND vpm -> tbb

3999
resources/2024/day25.txt Normal file

File diff suppressed because it is too large Load Diff

9
run.py
View File

@@ -86,13 +86,20 @@ def generate_commands_z80(problem: Problem, flags:Optional[list[str]]=None):
run_compile_command(f"cat {preamble_location} {problem.build_location} > {problem.build_location + "0"}", shell=True) run_compile_command(f"cat {preamble_location} {problem.build_location} > {problem.build_location + "0"}", shell=True)
run_run_command(f"echo q | {simulator_location} -x{problem.build_location}0", shell=True) run_run_command(f"echo q | {simulator_location} -x{problem.build_location}0", shell=True)
def generate_commands_c(problem: Problem, flags):
run_compile_command(["gcc", problem.source_location, "-o", problem.build_location])
run_run_command(" ".join(["cat", problem.resource_location, "|", "./" + problem.build_location]), shell=True)
languages = { languages = {
"pladcl": Language("pladcl", "pdl", generate_commands_pladcl, build_extension="dc"), "pladcl": Language("pladcl", "pdl", generate_commands_pladcl, build_extension="dc"),
"pascal": Language("pascal", "pas", generate_commands_pascal), "pascal": Language("pascal", "pas", generate_commands_pascal),
"python": Language("python", "py", lambda problem, flags: run_run_command(["python3", problem.source_location] + (flags if flags else []))), "python": Language("python", "py", lambda problem, flags: run_run_command(["python3", problem.source_location] + (flags if flags else []))),
"z80": Language("z80", "z80", generate_commands_z80, build_extension="bin") "z80": Language("z80", "z80", generate_commands_z80, build_extension="bin"),
"c": Language("c", "c", generate_commands_c, build_extension="out")
} }

146
src/c/2024/day18/part1.c Normal file
View File

@@ -0,0 +1,146 @@
#include <stdio.h>
#include <string.h>
#define BOARD_SIZE 71
#define NUM_BYTES 1024
#define WALL 10005
#define IN_BOUND(x, y) (x < BOARD_SIZE && x >= 0 && y < BOARD_SIZE && y >= 0)
#define MIN(a,b) (((a)<(b))?(a):(b))
struct coordinate {
int x, y;
};
struct coordinate queue[10000];
int queue_len;
int queue_start;
char map[BOARD_SIZE][BOARD_SIZE];
int values[BOARD_SIZE][BOARD_SIZE];
int queue_pop(struct coordinate *coord) {
if (queue_len == 0) {
return -1;
}
memcpy(coord, &queue[queue_start], sizeof(struct coordinate));
queue_start++;
queue_len--;
return 0;
}
void queue_push(struct coordinate *coord) {
//printf("%d, %da\n", coord->x, coord->y);
memcpy(&queue[queue_start + queue_len], coord, sizeof(struct coordinate));
queue_len++;
}
void check_and_push(struct coordinate *coord, int depth) {
//printf("%d\n", depth);
if (!IN_BOUND(coord->x, coord->y) || values[coord->x][coord->y] == WALL) {
return;
}
if (values[coord->x][coord->y] == 100000) {
//printf("%d\n", depth);
values[coord->x][coord->y] = depth + 1;
queue_push(coord);
}
}
int dfs(struct coordinate coord) {
queue_push(&coord);
values[coord.x][coord.y] = 0;
while (!queue_pop(&coord)) {
int value = values[coord.x][coord.y];
//printf("%d, %d: %d\n", coord.x, coord.y, values[coord.x][coord.y]);
if (coord.x == BOARD_SIZE - 1 && coord.y == BOARD_SIZE - 1) {
break;
}
coord.x++;
check_and_push(&coord, value);
coord.x -= 2;
check_and_push(&coord, value);
coord.x++;
coord.y++;
check_and_push(&coord, value);
coord.y -= 2;
check_and_push(&coord, value);
coord.y++;
}
return values[BOARD_SIZE - 1][BOARD_SIZE - 1];
}
int main() {
char *line_buf = NULL;
size_t buffer_size = 100;
for (int i = 0; i < BOARD_SIZE; i++) {
for (int j = 0; j < BOARD_SIZE; j++) {
map[i][j] = '.';
values[i][j] = 100000;
}
}
struct coordinate coords[10000];
int num_cords = 0;
while (getline(&line_buf, &buffer_size, stdin) > 0) {
sscanf(line_buf, "%d,%d\n", &coords[num_cords].x, &coords[num_cords].y);
num_cords++;
}
for (int i = 0; i < NUM_BYTES; i++) {
struct coordinate coord = coords[i];
values[coords[i].x][coords[i].y] = WALL;
//printf("%d, %dwa\n", coords[i].x, coords[i].y);
//values[coord.x][coord.y] = 10000;
}
struct coordinate start;
start.x = 0;
start.y = 0;
printf("res: %d\n", dfs(start));
}

170
src/c/2024/day18/part2.c Normal file
View File

@@ -0,0 +1,170 @@
#include <stdio.h>
#include <string.h>
#define BOARD_SIZE 71
#define WALL 10005
#define IN_BOUND(x, y) (x < BOARD_SIZE && x >= 0 && y < BOARD_SIZE && y >= 0)
#define MIN(a,b) (((a)<(b))?(a):(b))
struct coordinate {
int x, y;
};
struct coordinate queue[10000];
int queue_len;
int queue_start;
char map[BOARD_SIZE][BOARD_SIZE];
int values[BOARD_SIZE][BOARD_SIZE];
void queue_empty() {
queue_start = 0;
queue_len = 0;
}
int queue_pop(struct coordinate *coord) {
if (queue_len == 0) {
return -1;
}
memcpy(coord, &queue[queue_start], sizeof(struct coordinate));
queue_start++;
queue_len--;
return 0;
}
void queue_push(struct coordinate *coord) {
//printf("%d, %da\n", coord->x, coord->y);
memcpy(&queue[queue_start + queue_len], coord, sizeof(struct coordinate));
queue_len++;
}
void check_and_push(struct coordinate *coord, int depth) {
//printf("%d\n", depth);
if (!IN_BOUND(coord->x, coord->y) || values[coord->x][coord->y] == WALL) {
return;
}
if (values[coord->x][coord->y] == 100000) {
//printf("%d\n", depth);
values[coord->x][coord->y] = depth + 1;
queue_push(coord);
}
}
int dfs(struct coordinate coord) {
queue_push(&coord);
values[coord.x][coord.y] = 0;
while (!queue_pop(&coord)) {
int value = values[coord.x][coord.y];
//printf("%d, %d: %d\n", coord.x, coord.y, values[coord.x][coord.y]);
if (coord.x == BOARD_SIZE - 1 && coord.y == BOARD_SIZE - 1) {
break;
}
coord.x++;
check_and_push(&coord, value);
coord.x -= 2;
check_and_push(&coord, value);
coord.x++;
coord.y++;
check_and_push(&coord, value);
coord.y -= 2;
check_and_push(&coord, value);
coord.y++;
}
return values[BOARD_SIZE - 1][BOARD_SIZE - 1];
}
int main() {
char *line_buf = NULL;
size_t buffer_size = 100;
for (int i = 0; i < BOARD_SIZE; i++) {
for (int j = 0; j < BOARD_SIZE; j++) {
map[i][j] = '.';
values[i][j] = 100000;
}
}
struct coordinate coords[10000];
int num_cords = 0;
while (getline(&line_buf, &buffer_size, stdin) > 0) {
sscanf(line_buf, "%d,%d\n", &coords[num_cords].x, &coords[num_cords].y);
num_cords++;
}
for (int c = 0; c < num_cords; c++) {
for (int i = 0; i < BOARD_SIZE; i++) {
for (int j = 0; j < BOARD_SIZE; j++) {
values[i][j] = 100000;
}
}
for (int i = 0; i < c; i++) {
struct coordinate coord = coords[i];
values[coords[i].x][coords[i].y] = WALL;
}
struct coordinate start;
start.x = 0;
start.y = 0;
int res = dfs(start);
printf("%d: %d\n", c, res);
if (res == 100000) {
printf("res: %d,%d\n", coords[c - 1].x, coords[c - 1].y);
break;
}
queue_empty();
//printf("res: %d\n", dfs(start));
}
}

235
src/c/2024/day24/part1.c Normal file
View File

@@ -0,0 +1,235 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int numeric_id(char* string) {
return string[0] * 65536 + string[1] * 256 + string[2];
}
int number(char* string) {
return (string[1] - 48) * 10 + string[2] - 48;
}
int number_from_id(int id) {
return ((id / 256 % 256) - 48) * 10 + (id % 256 - 48);
}
int operator_to_id(char* str){
if (strcmp(str, "AND") == 0) {
return 1;
} else if (strcmp(str, "OR") == 0) {
return 2;
} else if (strcmp(str, "XOR") == 0) {
return 3;
}
printf("Bad operator: %s\n", str);
exit(-1);
}
int zvalue_to_id(int znum) {
return 'z' * 65536 + (znum / 10 + 48) * 256 + znum % 10 + 48;
}
int apply_operator(int v1, int op, int v2) {
if (op == 1) {
return v1 & v2;
} else if (op == 2) {
return v1 | v2;
} else if (op == 3) {
return v1 ^ v2;
}
printf("Bad operator id: %d\n", op);
exit(-1);
}
struct rule {
int op1;
int op2;
int operator;
int result;
};
struct value {
int key;
int value;
};
struct value values[1000];
struct rule rules[1000];
int num_values = 0;
int num_rules = 0;
int add_value(int key, int value) {
values[num_values].value = value;
values[num_values].key = key;
num_values++;
}
int get_value(int id) {
for (int i = 0; i < num_values; i++) {
if (values[i].key == id) {
return values[i].value;
}
}
return -1;
}
int main() {
int max_z = 0;
// reading junk
size_t buffer_size = 100;
char *line_buf = NULL;
char buffer[buffer_size];
char op1[buffer_size];
char op2[buffer_size];
char operator[buffer_size];
char end_goal[buffer_size];
int value;
while (getline(&line_buf, &buffer_size, stdin) > 1) {
sscanf(line_buf, "%3s: %d\n", buffer, &value);
add_value(numeric_id(buffer), value);
}
while (getline(&line_buf, &buffer_size, stdin) > 0) {
sscanf(line_buf, "%3s %3s %3s -> %3s", op1, operator, op2, end_goal);
if (end_goal[0] == 'z') {
if (number(end_goal) > max_z) {
max_z = number(end_goal);
}
}
rules[num_rules].op1 = numeric_id(op1);
rules[num_rules].op2 = numeric_id(op2);
rules[num_rules].operator = operator_to_id(operator);
rules[num_rules].result = numeric_id(end_goal);
num_rules++;
}
int found_zs[max_z];
max_z++;
int rule_applied[num_rules];
for (int i = 0; i < num_rules; i++) {
rule_applied[i] = 0;
}
for (int i = 0; i < max_z; i++) {
found_zs[i] = 0;
}
printf("Read %d values and %d rules, trying to find %d zs\n", num_values, num_rules, max_z);
for (;;) {
for (int i = 0; i < num_rules; i++) {
int v1, v2;
if (rule_applied[i]) {
continue;
}
if ((v1 = get_value(rules[i].op1)) >= 0 && (v2 = get_value(rules[i].op2)) >= 0) {
int res = apply_operator(v1, rules[i].operator, v2);
//printf("%d: %d\n", rules[i].result, res);
add_value(rules[i].result, res);
if (rules[i].result / 65536 == 'z') {
found_zs[number_from_id(rules[i].result)] = 1;
printf("Found z%d\n", number_from_id(rules[i].result));
//printf("%x", rules[i].result);
}
rule_applied[i] = 1;
}
//printf("%d, %d\n", v1, v2);
}
int finished = 1;
for (int i = 0; i < max_z; i++) {
if (found_zs[i] == 0) {
finished = 0;
break;
}
}
if (finished) {
break;
}
}
long out = 0;
for (int i = max_z - 1; i >= 0; i--) {
out *= 2;
int n = get_value(zvalue_to_id(i));
printf("%d", n);
out += n;
//printf("%x\n", zvalue_to_id(i));
}
printf("\nres: %ld\n", out);
}

235
src/c/2024/day24/part2.c Normal file
View File

@@ -0,0 +1,235 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int numeric_id(char* string) {
return string[0] * 65536 + string[1] * 256 + string[2];
}
int number(char* string) {
return (string[1] - 48) * 10 + string[2] - 48;
}
int number_from_id(int id) {
return ((id / 256 % 256) - 48) * 10 + (id % 256 - 48);
}
int operator_to_id(char* str){
if (strcmp(str, "AND") == 0) {
return 1;
} else if (strcmp(str, "OR") == 0) {
return 2;
} else if (strcmp(str, "XOR") == 0) {
return 3;
}
printf("Bad operator: %s\n", str);
exit(-1);
}
int zvalue_to_id(int znum) {
return 'z' * 65536 + (znum / 10 + 48) * 256 + znum % 10 + 48;
}
int apply_operator(int v1, int op, int v2) {
if (op == 1) {
return v1 & v2;
} else if (op == 2) {
return v1 | v2;
} else if (op == 3) {
return v1 ^ v2;
}
printf("Bad operator id: %d\n", op);
exit(-1);
}
struct rule {
int op1;
int op2;
int operator;
int result;
};
struct value {
int key;
int value;
};
struct value values[1000];
struct rule rules[1000];
int num_values = 0;
int num_rules = 0;
int add_value(int key, int value) {
values[num_values].value = value;
values[num_values].key = key;
num_values++;
}
int get_value(int id) {
for (int i = 0; i < num_values; i++) {
if (values[i].key == id) {
return values[i].value;
}
}
return -1;
}
int main() {
int max_z = 0;
// reading junk
size_t buffer_size = 100;
char *line_buf = NULL;
char buffer[buffer_size];
char op1[buffer_size];
char op2[buffer_size];
char operator[buffer_size];
char end_goal[buffer_size];
int value;
while (getline(&line_buf, &buffer_size, stdin) > 1) {
sscanf(line_buf, "%3s: %d\n", buffer, &value);
add_value(numeric_id(buffer), value);
}
while (getline(&line_buf, &buffer_size, stdin) > 0) {
sscanf(line_buf, "%3s %3s %3s -> %3s", op1, operator, op2, end_goal);
if (end_goal[0] == 'z') {
if (number(end_goal) > max_z) {
max_z = number(end_goal);
}
}
rules[num_rules].op1 = numeric_id(op1);
rules[num_rules].op2 = numeric_id(op2);
rules[num_rules].operator = operator_to_id(operator);
rules[num_rules].result = numeric_id(end_goal);
num_rules++;
}
int found_zs[max_z];
max_z++;
int rule_applied[num_rules];
for (int i = 0; i < num_rules; i++) {
rule_applied[i] = 0;
}
for (int i = 0; i < max_z; i++) {
found_zs[i] = 0;
}
printf("Read %d values and %d rules, trying to find %d zs\n", num_values, num_rules, max_z);
for (;;) {
for (int i = 0; i < num_rules; i++) {
int v1, v2;
if (rule_applied[i]) {
continue;
}
if ((v1 = get_value(rules[i].op1)) >= 0 && (v2 = get_value(rules[i].op2)) >= 0) {
int res = apply_operator(v1, rules[i].operator, v2);
//printf("%d: %d\n", rules[i].result, res);
add_value(rules[i].result, res);
if (rules[i].result / 65536 == 'z') {
found_zs[number_from_id(rules[i].result)] = 1;
printf("Found z%d\n", number_from_id(rules[i].result));
//printf("%x", rules[i].result);
}
rule_applied[i] = 1;
}
//printf("%d, %d\n", v1, v2);
}
int finished = 1;
for (int i = 0; i < max_z; i++) {
if (found_zs[i] == 0) {
finished = 0;
break;
}
}
if (finished) {
break;
}
}
long out = 0;
for (int i = max_z - 1; i >= 0; i--) {
out *= 2;
int n = get_value(zvalue_to_id(i));
printf("%d", n);
out += n;
//printf("%x\n", zvalue_to_id(i));
}
printf("\nres: %ld\n", out);
}

83
src/c/2024/day25/part1.c Normal file
View File

@@ -0,0 +1,83 @@
#include <stdio.h>
struct lockkey {
int positions[5];
};
int main() {
size_t buffer_size = 100;
char* line_buf = NULL;
struct lockkey locks[1000];
struct lockkey keys[1000];
int num_locks, num_keys;
int is_key;
while (getline(&line_buf, &buffer_size, stdin) > 0) {
struct lockkey *current;
if (line_buf[0] == '.') {
current = &keys[num_keys];
num_keys++;
printf("Read key: ");
} else {
current = &locks[num_locks];
num_locks++;
printf("Read lock: ");
}
for (int i = 0; i < 5; i++) {
current->positions[i] = 0;
}
for (int i = 0; i < 5; i++) {
getline(&line_buf, &buffer_size, stdin);
for (int j = 0; j < 5; j++) {
if (line_buf[j] == '#') {
current->positions[j]++;
}
}
}
printf("%d,%d,%d,%d,%d\n", current->positions[0], current->positions[1], current->positions[2], current->positions[3], current->positions[4]);
getline(&line_buf, &buffer_size, stdin);
getline(&line_buf, &buffer_size, stdin);
}
long out = 0;
for (int i = 0; i < num_locks; i++) {
for (int j = 0; j < num_keys; j++) {
int ok = 1;
for (int k = 0; k < 5; k++) {
if (locks[i].positions[k] + keys[j].positions[k] > 5) {
ok = 0;
break;
}
}
if (ok) {
out++;
}
}
}
printf("res: %ld\n", out);
}

View File

@@ -0,0 +1,134 @@
state start
return_if(`ln` < '0' or `ln` > '9')
read_number()
`dnSN`
`[ ]n`
`0SD`
blink()
`lo+so`
end
interrupt program_start
# C: cache
`0sc`
end
interrupt program_end
`10an`
`lop`
end
function print_array
for '?' in `l0` to `lc` do
array_get('X', `l?`)
`n[ ]n`
end
`10an`
end
function blink
# N: number
# D: depth
# if we hit max depth
if `lD` == 25 then
`LNstLDst`
return 1
end
# check cache
if `lN` < 1000000 then
if array_get('C', `lNlD1000000*+`) > 0 then
return array_get('C', `LNLD1000000*+`)
end
end
# 0 case -- check 1 rock
if `lN` == 0 then
`1SN`
`lD1+SD`
blink()
end
# even digit case -- check split rock
if `lNZ2%` == 0 then
`lN`
`10lNZ2/^`
`~` # get top and bottom
`SNSN`
`lD1+dSDSD`
blink()
blink()
`+`
end
# default case
if `lNZ2%` != 0 and `lN` != 0 then
`lN2024*SN`
`lD1+SD`
blink()
end
`s.`
# cacheable
if `lN` < 1000000 then
array_set('C', `lNlD1000000*+`, `l.`)
end
`LNstLDst` # clear params
return `l.`
end
function read_number
read_number_start()
read_number_end()
end
function read_number_start
-1
# ret _1 if not a digit
return_if(`ln` < 48)
return_if(`ln` > 57)
`st`
# throw the true digit onto the stack
`ln48-`
# inc i
adjust_index(1)
# recurse
read_number_start()
end
function read_number_end
# if we only have 1 item on stack (-1) we found no number, so return
return_if(1 == `z`)
# push entire number thing onto temporary stack
`[STz0<.]ds.x`
# multiply ten then pop and add repeatedly until done
`0`
`[LTd_1=qr10*+l.x]ds.x`
# get rid of the extra -1
`st`
# decrement i so we reread the skipped char
adjust_index(-1)
end

View File

@@ -0,0 +1,123 @@
state start
return_if(`ln` < '0' or `ln` > '9')
array_set('X', `lc`, read_number())
inc('c')
end
interrupt program_start
`0sc`
end
interrupt program_end
`0l0`
for '!' in 0 to 25 do
`1000000l0+s1` # update 1 to yknow.
#print_array()
`l!n[: ]n`
blink()
`l1s0` # move to current array
`ldsc` # update size
`lcl0-n10an`
end
#print_array()
`[out: ]n`
`lcl0-n`
end
function print_array
for '?' in `l0` to `lc` do
array_get('X', `l?`)
`n[ ]n`
end
`10an`
end
function blink
# c: length of array + offset
# 0: offset into this array
# 1: offset into next array
`l1sd` # curr pointer into next array
for '?' in `l0` to `lc` do
array_get('X', `l?`)
`sn`
# 0 case -- return 1 rock
if `ln` == 0 then
array_set('X', `ld`, 1)
inc('d')
end
# even digit case -- return split rock
if `lnZ2%` == 0 then
`ln`
`10lnZ2/^` # calculate middle divide
`~` # get top and bottom
`ld1+:X` # store bottom at next offset of d
`ld:X` # store top at d
`ld2+sd` # double d
end
# default case -- return 2024 * rock
if `ln` != 0 and `lnZ2%` != 0 then
array_set('X', `ld`, `ln2024*`)
inc('d')
end
end
end
function read_number
read_number_start()
read_number_end()
end
function read_number_start
-1
# ret _1 if not a digit
return_if(`ln` < 48)
return_if(`ln` > 57)
`st`
# throw the true digit onto the stack
`ln48-`
# inc i
adjust_index(1)
# recurse
read_number_start()
end
function read_number_end
# if we only have 1 item on stack (-1) we found no number, so return
return_if(1 == `z`)
# push entire number thing onto temporary stack
`[STz0<.]ds.x`
# multiply ten then pop and add repeatedly until done
`0`
`[LTd_1=qr10*+l.x]ds.x`
# get rid of the extra -1
`st`
# decrement i so we reread the skipped char
adjust_index(-1)
end

View File

@@ -0,0 +1,134 @@
state start
return_if(`ln` < '0' or `ln` > '9')
read_number()
`dnSN`
`[ ]n`
`0SD`
blink()
`lo+so`
end
interrupt program_start
# C: cache
`0sc`
end
interrupt program_end
`10an`
`lop`
end
function print_array
for '?' in `l0` to `lc` do
array_get('X', `l?`)
`n[ ]n`
end
`10an`
end
function blink
# N: number
# D: depth
# if we hit max depth
if `lD` == 75 then
`LNstLDst`
return 1
end
# check cache
if `lN` < 1000000 then
if array_get('C', `lNlD1000000*+`) > 0 then
return array_get('C', `LNLD1000000*+`)
end
end
# 0 case -- check 1 rock
if `lN` == 0 then
`1SN`
`lD1+SD`
blink()
end
# even digit case -- check split rock
if `lNZ2%` == 0 then
`lN`
`10lNZ2/^`
`~` # get top and bottom
`SNSN`
`lD1+dSDSD`
blink()
blink()
`+`
end
# default case
if `lNZ2%` != 0 and `lN` != 0 then
`lN2024*SN`
`lD1+SD`
blink()
end
`s.`
# cacheable
if `lN` < 1000000 then
array_set('C', `lNlD1000000*+`, `l.`)
end
`LNstLDst` # clear params
return `l.`
end
function read_number
read_number_start()
read_number_end()
end
function read_number_start
-1
# ret _1 if not a digit
return_if(`ln` < 48)
return_if(`ln` > 57)
`st`
# throw the true digit onto the stack
`ln48-`
# inc i
adjust_index(1)
# recurse
read_number_start()
end
function read_number_end
# if we only have 1 item on stack (-1) we found no number, so return
return_if(1 == `z`)
# push entire number thing onto temporary stack
`[STz0<.]ds.x`
# multiply ten then pop and add repeatedly until done
`0`
`[LTd_1=qr10*+l.x]ds.x`
# get rid of the extra -1
`st`
# decrement i so we reread the skipped char
adjust_index(-1)
end

View File

@@ -0,0 +1,84 @@
state find_width
return_if(`ln` != 10)
`li1+sw`
rewind()
set_state(start)
`[width got]n10an`
end
state start
# have got this
return_if(array_get('X', `li`) == 1 or `ln` == 10)
`liSL` # push locatoin
`lnsc` # push character
flood_fill()
#`[region=]nlcan[ perimeter=]nlpn[ area=]nlan10an`
`lpla*`
`lo+so` # add cost into out
`0sp0sa`
end
interrupt program_end
`lop`
end
function flood_fill
# c: character
# p: perimeter
# L: location
# a: area
# X: "checked" thing
# if this is OOB
if `lL` < 0 then
`LLst` # kill L
inc('p') # add to perimeter
return
end
# if this is not the same area
if array_get('I', `lL`) != `lc` then
`LLst` # kill L
inc('p') # add to perimeter
return
end
# this was already checked
if array_get('X', `lL`) == 1then
`LLst`
return
end
# `[floodfill c=]nlcan[ l=]nlLn10an`
# this is inbounds and part of the area
array_set('X', `lL`, 1)
# right
`lL1+SL`
flood_fill()
# left
`lL1-SL`
flood_fill()
# down
`lLlw+SL`
flood_fill()
# up
`lLlw-SL`
flood_fill()
# add to area
inc('a')
# kill L
`LLst`
end

View File

@@ -0,0 +1,127 @@
state find_width
return_if(`ln` != 10)
`li1+sw`
rewind()
set_state(start)
`[width got]n10an`
end
state start
# have got this
return_if(array_get('X', `li`) == 1 or `ln` == 10)
`liSL` # push locatoin
`lnsc` # push character
flood_fill()
`[region=]nlcan[ perimeter=]nlpn[ area=]nlan10an`
`lpla*`
`lo+so` # add cost into out
`0sp0sa`
end
interrupt program_end
`lop`
end
function flood_fill
# c: character
# p: perimeter
# L: location
# a: area
# X: "checked" thing
# 1: right
# 2: left
# 3: down
# 4: up
# if this is OOB
if `lL` < 0 then
`LLst` # kill L
#inc('p') # add to perimeter
return 1
end
# if this is not the same area
if array_get('I', `lL`) != `lc` then
`LLst` # kill L
#inc('p') # add to perimeter
return 1
end
# this was already checked
if array_get('X', `lL`) == 1 then
`LLst`
return 0
end
# `[floodfill c=]nlcan[ l=]nlLn10an`
# this is inbounds and part of the area
array_set('X', `lL`, 1)
# right
`lL1+SL`
if flood_fill() == 1 then
# check down/downright for same char
if array_get('I', `lLlw+`) != `lc` then
inc('p')
end
if array_get('I', `lLlw+`) == `lc` and array_get('I', `lLlw+1+`) == `lc` then
inc('p')
end
end
# left
`lL1-SL`
if flood_fill() == 1 then
# check down/downleft for same char
if array_get('I', `lLlw+`) != `lc` then
inc('p')
end
if array_get('I', `lLlw+`) == `lc` and array_get('I', `lLlw+1-`) == `lc` then
inc('p')
end
end
# down
`lLlw+SL`
if flood_fill() == 1 then
# check right/rightdown for same char
if array_get('I', `lL1+`) != `lc` then
inc('p')
end
if array_get('I', `lL1+`) == `lc` and array_get('I', `lLlw+1+`) == `lc` then
inc('p')
end
end
# up
`lLlw-SL`
if flood_fill() == 1 then
# check right/rightup for same char
if array_get('I', `lL1+`) != `lc` then
inc('p')
end
if `lLlw-1+` > 0 then
if array_get('I', `lL1+`) == `lc` and array_get('I', `lLlw-1+`) == `lc` then
inc('p')
end
end
end
# add to area
inc('a')
# kill L
`LLst`
0
end

View File

@@ -0,0 +1,147 @@
state read_a
return_if(`ln` < '0' or `ln` > '9')
read_number()
`sA`
set_state(read_b)
end
state read_b
return_if(`ln` < '0' or `ln` > '9')
read_number()
`sD`
set_state(read_c)
end
state read_c
return_if(`ln` < '0' or `ln` > '9')
read_number()
`sB`
set_state(read_d)
end
state read_d
return_if(`ln` < '0' or `ln` > '9')
read_number()
`sE`
set_state(read_e)
end
state read_e
return_if(`ln` < '0' or `ln` > '9')
read_number()
`sC`
set_state(read_f)
end
state read_f
return_if(`ln` < '0' or `ln` > '9')
read_number()
`sF`
`[a=]nlAn[ b=]nlBn[ c=]nlCn[ d=]nlDn[ e=]nlEn[ f=]nlFn`
`10an`
# (a, d)
# (b, e)
# (c, f)
# (af - cd) / (ae - bd)
# num
`lAlF*`
`lClD*`
`-`
# den
`lAlE*`
`lBlD*`
`-`
`~s.sY`
# if no residue
if `l.` == 0 then
`lClBlY*-lA/sX`
`[x = ]nlXn[ y = ]nlYn10an`
`lX3*lY+`
`lo+so`
end
if `l.` != 0 then
`[no solution]n10an`
end
set_state(read_a)
end
interrupt program_end
`lop`
end
function read_number
read_number_start()
read_number_end()
end
function read_number_start
-1
# ret _1 if not a digit
return_if(`ln` < 48)
return_if(`ln` > 57)
`st`
# throw the true digit onto the stack
`ln48-`
# inc i
adjust_index(1)
# recurse
read_number_start()
end
function read_number_end
# if we only have 1 item on stack (-1) we found no number, so return
return_if(1 == `z`)
# push entire number thing onto temporary stack
`[STz0<.]ds.x`
# multiply ten then pop and add repeatedly until done
`0`
`[LTd_1=qr10*+l.x]ds.x`
# get rid of the extra -1
`st`
# decrement i so we reread the skipped char
adjust_index(-1)
end

View File

@@ -0,0 +1,164 @@
state read_a
return_if(`ln` < '0' or `ln` > '9')
read_number()
`sA`
set_state(read_b)
end
state read_b
return_if(`ln` < '0' or `ln` > '9')
read_number()
`sD`
set_state(read_c)
end
state read_c
return_if(`ln` < '0' or `ln` > '9')
read_number()
`sB`
set_state(read_d)
end
state read_d
return_if(`ln` < '0' or `ln` > '9')
read_number()
`sE`
set_state(read_e)
end
state read_e
return_if(`ln` < '0' or `ln` > '9')
read_number()
`sC`
set_state(read_f)
end
state read_f
return_if(`ln` < '0' or `ln` > '9')
read_number()
`sF`
`lC10000000000000+sC`
`lF10000000000000+sF`
`[a=]nlAn[ b=]nlBn[ c=]nlCn[ d=]nlDn[ e=]nlEn[ f=]nlFn`
`10an`
# (a, d)
# (b, e)
# (c, f)
# (af - cd) / (ae - bd)
# num
`lAlF*`
`lClD*`
`-`
# den
`lAlE*`
`lBlD*`
`-`
`~s.sY`
`[. = ]nl.n[ ]n`
if `lY` < 0 and `l.` == 0 then
`[fuck!!! ]n`
end
# if no residue
if `l.` == 0 then
`lClBlY*-lA~s.sX`
if `l.` == 0 then
`[x = ]nlXn[ y = ]nlYn10an`
`lX3*lY+`
`lo+so`
end
if `l.` != 0 then
`[no sollution x]n10an`
end
end
if `l.` != 0 then
`[no solution]n10an`
end
set_state(read_a)
end
interrupt program_start
`0k`
end
interrupt program_end
`lop`
end
function read_number
read_number_start()
read_number_end()
end
function read_number_start
-1
# ret _1 if not a digit
return_if(`ln` < 48)
return_if(`ln` > 57)
`st`
# throw the true digit onto the stack
`ln48-`
# inc i
adjust_index(1)
# recurse
read_number_start()
end
function read_number_end
# if we only have 1 item on stack (-1) we found no number, so return
return_if(1 == `z`)
# push entire number thing onto temporary stack
`[STz0<.]ds.x`
# multiply ten then pop and add repeatedly until done
`0`
`[LTd_1=qr10*+l.x]ds.x`
# get rid of the extra -1
`st`
# decrement i so we reread the skipped char
adjust_index(-1)
end

View File

@@ -0,0 +1,96 @@
interrupt program_start
`101sw`
`103sh`
`lw2/sm` # width middle
`lh2/sM` # height middle
`100s.`
# 7890 are outputs
end
state read
adjust_index(2) # go past p=
read_number()
`sx` # x position
adjust_index(1) # go past ,
read_number()
`sy`
adjust_index(3) # go past " v="
read_number()
`s1` #dx
adjust_index(1) # go past ","
read_number()
`s2`
#adjust_index(1) # go past newline
`[x=]nlxn[ y=]nlyn[ 1=]nl1n[ 2=]nl2n10an`
`lxl1l.*+lw%sx`
`lyl2l.*+lh%sy`
if `lx` < 0 then
`lxlw+sx`
end
if `ly` < 0 then
`lylh+sy`
end
`[nx=]nlxn[ ny=]nlyn10an`
if `lx` < `lm` then
if `ly` < `lM` then
`[quadrant 1]n10an`
`l71+s7`
end
if `ly` > `lM` then
`[quadrant 3]n10an`
`l91+s9`
end
end
if `lx` > `lm` then
if `ly` < `lM` then
`[quadrant 2]n10an`
`l81+s8`
end
if `ly` > `lM` then
`[quadrant 4]n10an`
`l01+s0`
end
end
end
interrupt program_end
`[w=]nlwn[ h=]nlhn[ m=]nlmn[ M=]nlMn10an`
`[7=]nl7n[ 8=]nl8n[ 9=]nl9n[ 0=]nl0n10an`
`l7l8l9l0***p`
end
function read_number
# does no error checking
`1` # sign
if `ln` == '-' then
`2-` # negative
adjust_index(1)
end
`0` # c num
while `ln` >= '0' and `ln` <= '9' do
`10*`
`ln48-+` # add in number
adjust_index(1)
end
#adjust_index(-1)
`*`
end

View File

@@ -0,0 +1,192 @@
interrupt program_start
`101sw`
`103sh`
`0s.` # num
`0sc` # count
# X: x array
# Y: y array
`0sm` #x mean
`0sM` #y mean
`0sv` # x variance
`0sV` # y variance
`10 10^s(` # min x variance
`10 10^s)` # min y variance
`0s{` # min x loc
`0s}` # min y loc
`0sF` # finished flag
# A: posx
# B: posy
# C: velx
# D: vely
end
state read
adjust_index(2) # go past p=
read_number()
`lc:A` # x position
adjust_index(1) # go past ,
read_number()
`lc:B`
adjust_index(3) # go past " v="
read_number()
`lc:C` #dx
adjust_index(1) # go past ","
read_number()
`lc:D`
inc('c')
#adjust_index(1) # go past newline
end
interrupt program_end
`[finished reading]n10an`
#`[x=]nlxn[ y=]nlyn[ 1=]nl1n[ 2=]nl2n10an`
# calculate variances
for '.' in 0 to 103 do
calculate_variance()
end
`[lowest x var at ]nl{n[, lowest y var at ]nl}n10an`
while `l{` != `l}` do
`l{101+s{` # inc x by 101
if `l}` < `l{` then
`l}103+s}` # inc y by 103 if it's smaller
end
end
`[calculated first tree at ]nl}n[, printing...]n`
`l}s.`
calculate_positions()
for '!' in 0 to `lhlw*` do
if `l!lw%` == 0 then
`10an`
end
if `l!;Z` == 0 then
`[ ]n`
end
if `l!;Z` != 0 then
`[#]n`
end
end
`10an[ at ]nl.n10an`
end
function calculate_variance
# find positions
for '!' in 0 to `lc` do
`l!;Al!;Cl.*+lw%sx`
`l!;Bl!;Dl.*+lh%sy`
if `lx` < 0 then
`lxlw+sx`
end
if `ly` < 0 then
`lylh+sy`
end
# store these
`lxl!:X`
`lyl!:Y`
`lmlx+sm`
`lMly+sM`
end
# x and y variance calculation
`0sv`
`0sV`
`lmlc/sm`
`lMlc/sM`
for '!' in 0 to `lc` do
`lvl!;Xlm-2^+sv`
`lVl!;Ylm-2^+sV`
end
if `lv` < `l(` then
`lvs(`
`l.s{`
end
if `lV` < `l)` then
`lVs)`
`l.s}`
end
`[.=]nl.n[ v=]nlvn[ V=]nlVn10an`
end
function calculate_positions
# find positions
for '!' in 0 to `lc` do
`l!;Al!;Cl.*+lw%sx`
`l!;Bl!;Dl.*+lh%sy`
if `lx` < 0 then
`lxlw+sx`
end
if `ly` < 0 then
`lylh+sy`
end
`1`
# index of this
`lylw*lx+`
`:Z` # store in Z
end
end
function read_number
# does no error checking
`1` # sign
if `ln` == '-' then
`2-` # negative
adjust_index(1)
end
`0` # c num
while `ln` >= '0' and `ln` <= '9' do
`10*`
`ln48-+` # add in number
adjust_index(1)
end
#adjust_index(-1)
`*`
end

View File

@@ -0,0 +1,112 @@
interrupt program_start
`101sw`
`103sh`
`lw2/sm` # width middle
`lh2/sM` # height middle
# found through excel
`8006s.`
# robots bunch up horizontally every 103s
# offset of 27
# robots bunch up vertically every 101s
# offset of 75
# 7890 are outputs
end
state read
adjust_index(2) # go past p=
read_number()
`sx` # x position
adjust_index(1) # go past ,
read_number()
`sy`
adjust_index(3) # go past " v="
read_number()
`s1` #dx
adjust_index(1) # go past ","
read_number()
`s2`
#adjust_index(1) # go past newline
#`[x=]nlxn[ y=]nlyn[ 1=]nl1n[ 2=]nl2n10an`
`lxl1l.*+lw%sx`
`lyl2l.*+lh%sy`
if `lx` < 0 then
`lxlw+sx`
end
if `ly` < 0 then
`lylh+sy`
end
#`[nx=]nlxn[ ny=]nlyn10an`
`1`
# index of this
`lylw*lx+`
`:X` # store in X
if `li1+;I` == -1 then
`[---------------------------------------------------------------------------------------]n10an`
`[. = ]nl.n`
for '!' in 0 to `lhlw*` do
if `l!lw%` == 0 then
`10an`
end
if `l!;X` == 0 then
`[ ]n`
end
if `l!;X` != 0 then
`[#]n`
end
`0l!:X` # clear
end
rewind()
`l.103+s.`
`10an`
`10an` # for less
end
end
interrupt program_end
`[w=]nlwn[ h=]nlhn[ m=]nlmn[ M=]nlMn10an`
`[7=]nl7n[ 8=]nl8n[ 9=]nl9n[ 0=]nl0n10an`
`l7l8l9l0***p`
end
function read_number
# does no error checking
`1` # sign
if `ln` == '-' then
`2-` # negative
adjust_index(1)
end
`0` # c num
while `ln` >= '0' and `ln` <= '9' do
`10*`
`ln48-+` # add in number
adjust_index(1)
end
#adjust_index(-1)
`*`
end

View File

@@ -0,0 +1,181 @@
interrupt program_start
`101sw`
`103sh`
`0s.` # num
`0sc` # count
# X: x array
# Y: y array
`0sm` #x mean
`0sM` #y mean
`0sv` # x variance
`0sV` # y variance
`10 10^s(` # min x variance
`10 10^s)` # min y variance
`0s{` # min x loc
`0s}` # min y loc
`0sF` # finished flag
# A: posx
# B: posy
# C: velx
# D: vely
end
state read
adjust_index(2) # go past p=
read_number()
`sx` # x position
adjust_index(1) # go past ,
read_number()
`sy`
adjust_index(3) # go past " v="
read_number()
`s1` #dx
adjust_index(1) # go past ","
read_number()
`s2`
#adjust_index(1) # go past newline
#`[x=]nlxn[ y=]nlyn[ 1=]nl1n[ 2=]nl2n10an`
`lxl1l.*+lw%sx`
`lyl2l.*+lh%sy`
if `lx` < 0 then
`lxlw+sx`
end
if `ly` < 0 then
`lylh+sy`
end
#`[nx=]nlxn[ ny=]nlyn10an`
# store these
`lxlc:X`
`lylc:Y`
inc('c')
`lmlx+sm`
`lMly+sM`
# if done put it in an array for printing
if `lF` == 1 then
`1`
# index of this
`lylw*lx+`
`:Z` # store in Z
end
if `li1+;I` == -1 then
#`[.]n`
# print tree when done
if `lF` == 1 then
for '!' in 0 to `lhlw*` do
if `l!lw%` == 0 then
`10an`
end
if `l!;Z` == 0 then
`[ ]n`
end
if `l!;Z` != 0 then
`[#]n`
end
end
`10an[ at ]nl.n10an`
return
end
# if we're done here
if `l.` == 103 then
`[lowest x var at ]nl{n[, lowest y var at ]nl}n10an`
while `l{` != `l}` do
`l{101+s{` # inc x by 101
if `l}` < `l{` then
`l}103+s}` # inc y by 103 if it's smaller
end
end
`[calculated first tree at ]nl}n[, printing...]n`
`l}s.`
rewind()
`1sF`
end
if `lF` != 1 then
# x and y variance
`0sv`
`0sV`
`lmlc/sm`
`lMlc/sM`
for '!' in 0 to `lc` do
`lvl!;Xlm-2^+sv`
`lVl!;Ylm-2^+sV`
end
if `lv` < `l(` then
`lvs(`
`l.s{`
end
if `lV` < `l)` then
`lVs)`
`l.s}`
end
`[.=]nl.n[ v=]nlvn[ V=]nlVn10an`
`0sm`
`0sM`
`0sc`
rewind()
inc('.')
end
end
end
function read_number
# does no error checking
`1` # sign
if `ln` == '-' then
`2-` # negative
adjust_index(1)
end
`0` # c num
while `ln` >= '0' and `ln` <= '9' do
`10*`
`ln48-+` # add in number
adjust_index(1)
end
#adjust_index(-1)
`*`
end

View File

@@ -0,0 +1,140 @@
state read_map
if `ln` == '@' then
`lisp`
end
end
state read_instructions
`lnan`
if `ln` == '<' then
-1
end
if `ln` == '^' then
`0lw-`
end
if `ln` == '>' then
1
end
if `ln` == 'v' then
`lw`
end
if `ln` == 10 then
return
end
move()
#print_board()
end
interrupt newline
if `lw` == 0 then
`li1+sw`
end
if `li1+;I` == 10 then
`li1+lw/sh`
`[board is ]nlw1-n[x]nlhn10an`
`lplw~`
`[robot is at (]nn[,]nn[)]n10an`
adjust_index(2)
set_state(read_instructions)
end
end
interrupt program_end
`st`
`[finished]n10an`
0
for '!' in 0 to `lwlh*` do
if `l!;I` == 'O' then
`l!lw~`
`[box is at (]nn[,]nn[)]n10an`
`l!lw~`
`r100*++`
end
end
end
function print_board
for '!' in 0 to `lwlh*` do
`l!;Ian`
end
end
function move
`sv`
`lpSP`
if _move() == 1 then
'.'
`lp:I`
'@'
`lplv+dsp:I`
end
end
function _move
# v is vector of movement
# P is current position of push
# returns 1 if can move/push
# empty space -- can push
if `lPlv+;I` == '.' then
`LPst`
return 1
end
# wall -- can't push
if `lPlv+;I` == '#' then
`LPst`
return 0
end
# box, need to check further
if `lPlv+;I` == 'O' then
`lPlv+SP` # add new position to stack
# if we can move
if _move() == 1 then
# set the next spot to be an O
'O'
`LPlvd++:I`
return 1
end
`LPst`
return 0
end
`[unknown symbol type: ]nlPlv+;Ian10an`
end

View File

@@ -0,0 +1,382 @@
interrupt program_start
`0sc`
end
state read_map
if `ln` == '@' then
'@'
`lc:X`
`lcsp`
inc('c')
'.'
`lc:X`
inc('c')
end
if `ln` == '#' then
'#'
`lc:X`
inc('c')
'#'
`lc:X`
inc('c')
end
if `ln` == '.' then
'.'
`lc:X`
inc('c')
'.'
`lc:X`
inc('c')
end
if `ln` == 'O' then
'['
`lc:X`
inc('c')
']'
`lc:X`
inc('c')
end
end
state read_instructions
`lnan`
if `ln` == '<' then
-1
end
if `ln` == '^' then
`0lw-`
end
if `ln` == '>' then
1
end
if `ln` == 'v' then
`lw`
end
if `ln` == 10 then
return
end
move()
#print_board()
end
interrupt newline
if `lw` == 0 then
`lisw`
end
if `li1+;I` == 10 then
`lilw/sh`
`lw2*sw`
`[board is ]nlw1-n[x]nlhn10an`
`lplw~`
`[robot is at (]nn[,]nn[)]n`
adjust_index(2)
set_state(read_instructions)
print_board()
end
end
interrupt program_end
`st`
`[finished]n10an`
0
for '!' in 0 to `lc` do
if `l!;X` == '[' then
`l!lw~`
`[box is at (]nn[,]nn[)]n10an`
`l!lw~`
`r100*++`
end
end
`p`
end
function print_board
for '!' in 0 to `lc` do
if `l!lw%` == 0 then
`10an`
end
`l!;Xan`
end
`10an`
end
function move
`sv`
`lpSP`
`[`
_move()
`10an]x` #????
`[wow]nps.`
if `l.` == 1 then
`[moved]n`
'.'
`lp:X`
'@'
`lplv+dsp:X`
end
end
function _move
# v is vector of movement
# P is current position of push
# returns 1 if can move/push
# empty space -- can push
if `lPlv+;X` == '.' then
`LPst`
return 1
end
# wall -- can't push
if `lPlv+;X` == '#' then
`LPst`
return 0
end
# box left, need to check further
if `lPlv+;X` == '[' then
# rightwards push
if `lv` == 1 then
`lP2+SP` # add point to the right
# if we can move
if _move() == 1 then
# move this box
']'
`lP3+:X`
'['
`LP2+:X`
return 1
end
return 0
end
# up/down push
if `lv` != 1 then
`lPlv+SP` # add point to the up/down
# check if we can move
if updown_check() == 1 then
`LPlv+SP` # move
updown_move()
return 1
end
`[done]n`
`LPst`
return 0
end
end
# box right, need to check further
if `lPlv+;X` == ']' then
# leftwards push
if `lv` == -1 then
`lP2-SP` # add point to the two left
# if we can move
if _move() == 1 then
# move this box
'['
`lP3-:X`
']'
`LP2-:X`
return 1
end
return 0
end
# up/down push
if `lv` != -1 then
`lPlv+SP` # add point to the up/down
# check if we can move
if updown_check() == 1 then
`LPlv+SP` # move
updown_move()
return 1
end
`LPst`
return 0
end
end
0
`[unknown symbol type: ]nlPlv+;Xan10an`
end
# takes position in P
# also vector (assmed to be up or down) in v
function updown_check
`[updown_check p=]nlPn[ ]nlP;Xan10an`
if `lP;X` == '.' then
`LPst`
return 1
end
if `lP;X` == '#' then
`LPst`
return 0
end
if `lP;X` == ']' then
`LPlv+d`
`SP` # store one directly above
`1-SP` # and one directly to the left
if updown_check() == 1 then
if updown_check() == 1 then
`[}1]n`
return 1
end
end
`[}0]n`
return 0
end
if `lP;X` == '[' then
`LPlv+d`
`SP` # store one directly above
`1+SP` # and one directly to the right
if updown_check() == 1 then
if updown_check() == 1 then
`[{1]n`
return 1
end
end
`[{0]n`
return 0
end
0
end
# takes position above/below [ in P
function updown_move
`[updown_move p=]nlPn[ ]nlP;Xan10an`
if `lP;X` == '.' then
`LPst`
return
end
if `lP;X` == '#' then
`LPst`
`[updown move on invalid thing. fuck.]n10an`
return
end
if `lP;X` == '[' then
`lPlv+ds11+s2` # 1 = above directly, 2 = abo
'.'
`lP:X`
'.' # and remove traces
`lP1+:X`
`l1SP` # store one directly above '['
`l2SP` # store two directly above ']'
updown_move()
updown_move()
`LPlv+ds11+s2` # 1 = above directly, 2 = abo
'['
`l1:X` # put this here
']'
`l2:X` # and this here
return
end
if `lP;X` == ']' then
`LP1-SP`
updown_move()
return
end
end

View File

@@ -0,0 +1,243 @@
interrupt program_start
`1 0:X` # 1 + heap size
# X is heap
# Y is values of heap
end
state start
if `ln` == 'E' then
`lisE`
end
if `ln` == 'S' then
# set for iterate heap
array_set('I', `li`, '.')
`lisS`
end
if `lw` == 0 and `ln` == 10 then
`li1+sw`
`0lw-0:V` # up
`1 1:V` # right
`lw2:V` # down
`_1 3:V` # left
end
end
interrupt program_end
`[starting]n10an`
# 0123 = NESW
`1` # start facing east
`lS10*+` # add in start position
`sv` # value for heap
`0sp` # priority starts at 0
heap_add() # add into heap
while iterate_heap() != 1 do
end
`lpn`
end
function iterate_heap
heap_pop()
`lv`
`10~`
`sdsi` # get direction and index
# if we've already been here
if array_get('L', `lv`) == 1 then
return 0
end
# finish
array_set('L', `lv`, 1)
`lin[ ]nlpn10an`
if `li` == `lE` then
#`[done]n`
return 1
end
if `li;I` != '.' then
#`[bad]n10an`
return 0
end
# inc cost
`lp1+sp`
# forward
`li`
`ld;V+` # add in vector
`10*ld+sv` # and direction
heap_add()
# inc cost again
`lp1000+sp`
# right
`ld1+4%sd`
`li`
`ld;V+` # add in vector
`10*ld+sv` # and direction
heap_add()
# left
`ld2+4%sd`
`li`
`ld;V+` # add in vector
`10*ld+sv` # and direction
heap_add()
0
end
function calculate_vecs
# 0 = forward
# 1 = right
# 2 = down
# 3 = left
if `ld` == 0 then
`lw-`
end
end
function heap_add
# priority in p, value in v
array_set('X', `0;X`, `lp`)
array_set('Y', `0;X`, `lv`)
# up heap
`0;X`
up_heap()
# inc heap size
#`[wow]n10an`
array_set('X', 0, `0;X1+`)
end
function heap_pop
if `0;X` == 1 then
`[nothing to pop]n10an`
`5Q`
end
# returns priority in p, value in v
# get return values
array_get('X', 1)
`sp`
array_get('Y', 1)
`sv`
# dec heap size
array_set('X', 0, `0;X1-`)
# move new things down
array_set('X', 1, array_get('X', `0;X`))
array_set('Y', 1, array_get('Y', `0;X`))
1
down_heap()
# down heap
end
function up_heap
# position is on the stack
`s.`
# if we're at the top of heap
return_if(`l.` == 1)
#`l.nl.2/dsn[|]n`
# if we need to swap
if array_get('X', `l.`) < array_get('X', `l.2/ds,`) then
# swap
array_swap('X', `l.`, `l,`)
array_swap('Y', `l.`, `l,`)
`l,`
up_heap()
# up heap another one
end
end
function down_heap
# position is on the stack
`dSPs,`
# check left
`lP2*s.`
if `l.` < array_get('X', 0) and array_get('X', `l.`) < array_get('X', `l,`) then
`l.s,`
end
# check right
inc('.')
if `l.` < array_get('X', 0) and array_get('X', `l.`) < array_get('X', `l,`) then
`l.s,`
end
# swap and more heap
if `l,` != `lP` then
array_swap('X', `l,`, `lP`)
array_swap('Y', `l,`, `lP`)
`l,`
down_heap()
end
`LPst`
end
function print_heap
`[size: ]n0;X1-n10an`
for '!' in 1 to `0;X` do
`[priority: ]l!;Xn[ value: ]nl!;Yn10an`
end
end

View File

@@ -0,0 +1,268 @@
interrupt program_start
`1 0:X` # 1 + heap size
# X is heap
# Y is values of heap
end
state start
if `ln` == 'E' then
`lisE`
end
if `ln` == 'S' then
# set for iterate heap
array_set('I', `li`, '.')
`lisS`
end
if `lw` == 0 and `ln` == 10 then
`li1+sw`
`0lw-0:V` # up
`1 1:V` # right
`lw2:V` # down
`_1 3:V` # left
end
end
interrupt program_end
`[starting]n10an`
# 0123 = NESW
`1` # start facing east
`lS10*+` # add in start position
array_set('O', `lE`, `2 32^`)
`sv` # value for heap
`0sp` # priority starts at 0
heap_add() # add into heap
while iterate_heap() != 1 do
end
`[backing up]n10an`
`0so`
`lE10*l++`
backtrack()
`lon`
end
function backtrack
end
function iterate_heap
heap_pop()
`lv`
`10~`
`sdsi` # get direction and index
#if we've already been here
if array_get('L', `lv`) == 1 and array_get('O', `li`) <= `lp` then
return 0
end
array_set('L', `lv`, 1)
`lin[ ]nlpn10an`
# finish
if `li` == `lE` then
#`[done]n`
# set this location as this value
if array_get('O', `li`) < `lp` then
return 1
end
`lds+`
array_set('O', `li`, `lp`)
return 0
end
if `li;I` != '.' then
#`[bad]n10an`
return 0
end
# set this location as this value
array_set('O', `li`, `lp`)
# inc cost
`lp1+sp`
# forward
`li`
`ld;V+` # add in vector
`10*ld+sv` # and direction
heap_add()
# inc cost again
`lp1000+sp`
# right
`ld1+4%sd`
`li`
`ld;V+` # add in vector
`10*ld+sv` # and direction
heap_add()
# left
`ld2+4%sd`
`li`
`ld;V+` # add in vector
`10*ld+sv` # and direction
heap_add()
0
end
function calculate_vecs
# 0 = forward
# 1 = right
# 2 = down
# 3 = left
if `ld` == 0 then
`lw-`
end
end
function heap_add
# priority in p, value in v
array_set('X', `0;X`, `lp`)
array_set('Y', `0;X`, `lv`)
# up heap
`0;X`
up_heap()
# inc heap size
#`[wow]n10an`
array_set('X', 0, `0;X1+`)
end
function heap_pop
if `0;X` == 1 then
`[nothing to pop]n10an`
`5Q`
end
# returns priority in p, value in v
# get return values
array_get('X', 1)
`sp`
array_get('Y', 1)
`sv`
# dec heap size
array_set('X', 0, `0;X1-`)
# move new things down
array_set('X', 1, array_get('X', `0;X`))
array_set('Y', 1, array_get('Y', `0;X`))
1
down_heap()
# down heap
end
function up_heap
# position is on the stack
`s.`
# if we're at the top of heap
return_if(`l.` == 1)
#`l.nl.2/dsn[|]n`
# if we need to swap
if array_get('X', `l.`) < array_get('X', `l.2/ds,`) then
# swap
array_swap('X', `l.`, `l,`)
array_swap('Y', `l.`, `l,`)
`l,`
up_heap()
# up heap another one
end
end
function down_heap
# position is on the stack
`dSPs,`
# check left
`lP2*s.`
if `l.` < array_get('X', 0) and array_get('X', `l.`) < array_get('X', `l,`) then
`l.s,`
end
# check right
inc('.')
if `l.` < array_get('X', 0) and array_get('X', `l.`) < array_get('X', `l,`) then
`l.s,`
end
# swap and more heap
if `l,` != `lP` then
array_swap('X', `l,`, `lP`)
array_swap('Y', `l,`, `lP`)
`l,`
down_heap()
end
`LPst`
end
function print_heap
`[size: ]n0;X1-n10an`
for '!' in 1 to `0;X` do
`[priority: ]l!;Xn[ value: ]nl!;Yn10an`
end
end

View File

@@ -0,0 +1,217 @@
interrupt program_start
`_1Sb` # bits ender
# combo operands
`[0]0:C`
`[1]1:C`
`[2]2:C`
`[3]3:C`
`[lA]4:C`
`[lB]5:C`
`[lC]6:C`
`[[7 combo operand]p20Q]7:C`
# opcodes
`[` # adv
`lA`
2
read_combo_operand()
`^/`
`sA`
`]0:O`
`[` # bxl
`lB`
fetch()
xor()
`sB`
`]1:O`
`[` #bst
read_combo_operand()
`8%`
`sB`
`]2:O`
`[` # jnz
return_if(`lA` == 0)
fetch()
`sp`
`]3:O`
`[` # bxc
fetch()
`st`
`lBlC`
xor()
`sB`
`]4:O`
`[` # out
if `l,` == 1 then
`[,]n`
end
read_combo_operand()
`8%n`
`1s,`
`]5:O`
`[` # bdv
`lA`
2
read_combo_operand()
`^/`
`sB`
`]6:O`
`[` # cdv
`lA`
2
read_combo_operand()
`^/`
`sC`
`]7:O`
end
state read_A
adjust_index(12)
read_number()
`sA`
set_state(read_B)
end
state read_B
adjust_index(12)
read_number()
`sB`
set_state(read_C)
end
state read_C
adjust_index(12)
read_number()
`sC`
set_state(read_program)
`0sc`
adjust_index(10)
end
state read_program
array_set('P', `lc`, `ln48-`)
inc('c')
adjust_index(1)
end
interrupt program_end
`[A:]nlAn[ B:]nlBn[ C:]nlCn[ p:]nlpn10an`
`0s,` # have commaed
`0sp` # program counter
`10an`
while `lp` < `lc` do
cpu_cycle()
#`[A:]nlAn[ B:]nlBn[ C:]nlCn[ p:]nlpn10an`
end
end
function fetch
array_get('P', `lp`)
inc('p')
end
function cpu_cycle
array_get('O', fetch())
`x`
end
function read_combo_operand
array_get('C', fetch())
`x`
end
# takes shit on the stack, leaves shit on the stack
function xor
`s1s2`
`_1Sb`
while `l1` != 0 or `l2` != 0 do
`l1 2~s3s1`
`l2 2~s4s2`
0 # this bit
if (`l3` == 0 and `l4` == 1) or (`l3` == 1 and `l4` == 0) then
`1+` # make it 1
end
`Sb`
end
0 # start at 0
for '1' in stack 'b' do
`2*` # double existing
`l1+` # add in
end
end
function read_number
# does no error checking
`1` # sign
if `ln` == '-' then
`2-` # negative
adjust_index(1)
end
`0` # c num
while `ln` >= '0' and `ln` <= '9' do
`10*`
`ln48-+` # add in number
adjust_index(1)
end
#adjust_index(-1)
`*`
end

View File

@@ -0,0 +1,264 @@
interrupt program_start
`[this program brute forces. it probably works after 90 hours though. i solved the actual thing in a spreadsheet by hand though]n10an`
`_1Sb` # bits ender
# combo operands
`[0]0:C`
`[1]1:C`
`[2]2:C`
`[3]3:C`
`[lA]4:C`
`[lB]5:C`
`[lC]6:C`
`[[7 combo operand]p20Q]7:C`
# opcodes
`[` # adv
`lA`
2
read_combo_operand()
`^/`
`sA`
`]0:O`
`[` # bxl
`lB`
fetch()
xor()
`sB`
`]1:O`
`[` #bst
read_combo_operand()
`8%`
`sB`
`]2:O`
`[` # jnz
return_if(`lA` == 0)
fetch()
`sp`
`]3:O`
`[` # bxc
fetch()
`st`
`lBlC`
xor()
`sB`
`]4:O`
`[` # out
read_combo_operand()
`8%`
`l,`
`:U`
if array_get('U', `l,`) != array_get('P', `l,`) then
`10000sp` # break early
end
inc(',')
#`[hi]n`
`]5:O`
1
`[` # bdv
`lA`
2
read_combo_operand()
`^/`
`sB`
`]6:O`
`[` # cdv
`lA`
2
read_combo_operand()
`^/`
`sC`
`]7:O`
end
state read_A
adjust_index(12)
read_number()
`sA`
set_state(read_B)
end
state read_B
adjust_index(12)
read_number()
`sB`
set_state(read_C)
end
state read_C
adjust_index(12)
read_number()
`sC`
set_state(read_program)
`0sc`
adjust_index(10)
end
state read_program
array_set('P', `lc`, `ln48-`)
inc('c')
adjust_index(1)
end
interrupt program_end
#`[A:]nlAn[ B:]nlBn[ C:]nlCn[ p:]nlpn10an`
`10an`
`0s!`
while 0 == 0 do
`l!sA`
`0sB`
`0sC`
run_program()
if `l!1000%` == 0 then
`[.]n`
#`l,n[ ]nlcn10an`
end
#`[A:]nlAn[ B:]nlBn[ C:]nlCn[ p:]nlpn10an`
#
if `l,` == `lc` then
0
for '?' in 0 to `l,` do
if array_get('U', `l?`) != array_get('P', `l?`) then
`1-`
break
end
end
`s.`
if `l.` == 0 then
`10anl!p`
break
end
end
inc('!')
end
end
function run_program
`0sp`
`0s,`
while `lp` < `lc` do
cpu_cycle()
end
end
function fetch
array_get('P', `lp`)
inc('p')
end
function cpu_cycle
array_get('O', fetch())
`x`
end
function read_combo_operand
array_get('C', fetch())
`x`
end
# takes shit on the stack, leaves shit on the stack
function xor
`s1s2`
`_1Sb`
while `l1` != 0 or `l2` != 0 do
`l1 2~s3s1`
`l2 2~s4s2`
0 # this bit
if (`l3` == 0 and `l4` == 1) or (`l3` == 1 and `l4` == 0) then
`1+` # make it 1
end
`Sb`
end
0 # start at 0
for '1' in stack 'b' do
`2*` # double existing
`l1+` # add in
end
end
function read_number
# does no error checking
`1` # sign
if `ln` == '-' then
`2-` # negative
adjust_index(1)
end
`0` # c num
while `ln` >= '0' and `ln` <= '9' do
`10*`
`ln48-+` # add in number
adjust_index(1)
end
#adjust_index(-1)
`*`
end

View File

@@ -0,0 +1,99 @@
state start
read_number()
`sm`
secret_number()
`lmlo+so`
`[.]n`
end
interrupt program_end
`10an`
`lop`
end
# thing on stack
function secret_number
for '!' in 0 to 2000 do
`lm64*`
mix_and_prune()
`lm32/`
mix_and_prune()
`lm2048*`
mix_and_prune()
#`lmn10an`
end
end
# thing on stack, number in m
function mix_and_prune
# mix
`lm`
xor()
# prune
`16777216%`
`sm`
end
# takes shit on the stack, leaves shit on the stack
function xor
`s1s2`
`_1Sb`
while `l1` != 0 or `l2` != 0 do
`l1 2~s3s1`
`l2 2~s4s2`
0 # this bit
if `l3l4+` == 1 then
`1+` # make it 1
end
`Sb`
end
0 # start at 0
for '1' in stack 'b' do
`2*` # double existing
`l1+` # add in
end
end
function read_number
# does no error checking
`1` # sign
if `ln` == '-' then
`2-` # negative
adjust_index(1)
end
`0` # c num
while `ln` >= '0' and `ln` <= '9' do
`10*`
`ln48-+` # add in number
adjust_index(1)
end
#adjust_index(-1)
`*`
end

View File

@@ -0,0 +1,106 @@
state start
read_number()
`sm`
secret_number()
`lmlo+so`
`[.]n`
end
interrupt program_end
`10an`
`lop`
end
# thing on stack
function secret_number
for '!' in 0 to 10 do
`lm10%sp` # previous
`lm64*`
mix_and_prune()
`lm32/`
mix_and_prune()
`lm2048*`
mix_and_prune()
# offset
`lm10%lp-p`
#`lmn10an`
end
end
# thing on stack, number in m
function mix_and_prune
# mix
`lm`
xor()
# prune
`16777216%`
`sm`
end
# takes shit on the stack, leaves shit on the stack
function xor
`s1s2`
`_1Sb`
while `l1` != 0 or `l2` != 0 do
`l1 2~s3s1`
`l2 2~s4s2`
0 # this bit
if `l3l4+` == 1 then
`1+` # make it 1
end
`Sb`
end
0 # start at 0
for '1' in stack 'b' do
`2*` # double existing
`l1+` # add in
end
end
function read_number
# does no error checking
`1` # sign
if `ln` == '-' then
`2-` # negative
adjust_index(1)
end
`0` # c num
while `ln` >= '0' and `ln` <= '9' do
`10*`
`ln48-+` # add in number
adjust_index(1)
end
#adjust_index(-1)
`*`
end

View File

@@ -0,0 +1,88 @@
state start
`ln`
'a'
`-`
`26*`
adjust_index(1)
`ln`
'a'
`-+`
`s1`
# past the '-'
adjust_index(2)
`ln`
'a'
`-`
`26*`
adjust_index(1)
`ln`
'a'
`-+`
`s2`
array_set('X', `l1676*l2+`, 1)
array_set('X', `l2676*l1+`, 1)
#`l1n[ ]nl2n10an`
adjust_index(1)
end
interrupt program_end
for '!' in 494 to 520 do
#for '!' in 495 to 496 do
#`l!26%`
#'a'
#`+an`
for '?' in 0 to 675 do
#`l?n`
#`[ ]n`
#array_get('X', `l?676*l!+`)
#`n`
#`10an`
if not (`l?` >= 494 and `l?` <= `l!`) and array_get('X', `l!676*l?+`) == 1 then
#`l?n[ ]n`
for '@' in `l?1+` to 676 do
if not (`l@` >= 494 and `l@` <= `l!`) then
if array_get('X', `l!676*l@+`) == 1 and array_get('X', `l?676*l@+`) == 1 then
#`[wow]n`
inc('o')
end
end
end
end
end
end
`lop`
end
# on stack
function print_node
`26~r`
'a'
`+an`
'a'
`+an`
`[ ]n`
end

View File

@@ -0,0 +1,117 @@
state start
`ln`
'a'
`-`
`26*`
adjust_index(1)
`ln`
'a'
`-+`
`s1`
# past the '-'
adjust_index(2)
`ln`
'a'
`-`
`26*`
adjust_index(1)
`ln`
'a'
`-+`
`s2`
array_get('X', `l1`)
`2l2^+`
`l1:X`
array_get('X', `l2`)
`2;1^+`
`l2:X`
array_set('Y', `l1`, 1)
array_set('Y', `l2`, 1)
#`l1n[ ]nl2n10an`
adjust_index(1)
end
interrupt program_end
0
for '!' in 0 to 676 do
if array_get('Y', `l!`) == 1 then
`2l!^+` # bitmap
end
end
`SP`
`0SR`
`0SX`
end
function bit_and
`s1s2`
0
for '.' in 0 to 676 do
if `l12l!^/2%` == 1 and `l22l!^/2%` == 1 then
`2l!^+`
end
end
end
function bit_or
`s1s2`
0
for '.' in 0 to 676 do
if `l12l!^/2%` == 1 or `l22l!^/2%` == 1 then
`2l!^+`
end
end
end
# R P X stacks
function bron_kerbosch
if `lP` == 0 and `lX` == 0 then
`LRSO`
`LPstLXst`
return
end
`0S!`
while `l!` < 676 do
if `lP`
`L!1+S!`
end
`LPstLXstLRstL!st`
end
# on stack
function print_node
`26~r`
'a'
`+an`
'a'
`+an`
`[ ]n`
end

View File

@@ -0,0 +1,25 @@
import re
a = open("temp").read().split("\n\n")[:-1]
#a = open("resources/2024/day13.txt").readlines()
def solve(a, b, c, d, e, f):
y = ((a * f) - (c * d))/(a * e - b * d)
x = (c - b * y) / a
return (x, y)
for i in a:
ba, bb, bp = i.split("\n")
a, d = [int(re.sub(r'\D+', '', x)) for x in ba.split(", ")]
b, e = [int(re.sub(r'\D+', '', x)) for x in bb.split(", ")]
c, f = [int(re.sub(r'\D+', '', x)) for x in bp.split(", ")]
x_s, y_s = solve(a, b, c, d, e, f)
x_10000, y_10000 = solve(a, b, 10000, d, e, 10000)
print(a, b, c, d, e, f)
print(x_s + x_10000 * 1000000000, y_s + y_10000 * 1000000000)