mirror of
https://github.com/plasmaofthedawn/adventofcode.git
synced 2025-08-27 11:22:03 -05:00
Compare commits
3 Commits
3794ab0b3d
...
master
Author | SHA1 | Date | |
---|---|---|---|
aecea3dde7 | |||
d9ff4e14fe | |||
70c72cd6e9 |
140
resources/2024/day12.txt
Normal file
140
resources/2024/day12.txt
Normal 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
1279
resources/2024/day13.txt
Normal file
File diff suppressed because it is too large
Load Diff
500
resources/2024/day14.txt
Normal file
500
resources/2024/day14.txt
Normal 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
|
500
resources/2024/day14dory.txt
Normal file
500
resources/2024/day14dory.txt
Normal 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
|
500
resources/2024/day14lucy.txt
Normal file
500
resources/2024/day14lucy.txt
Normal 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
71
resources/2024/day15.txt
Normal 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
141
resources/2024/day16.txt
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
#############################################################################################################################################
|
||||||
|
#.#.........#...#.....................#...........#...............#...#.................#...........#...#...#.....#.#...........#.....#....E#
|
||||||
|
#.#.#.#######.#.#.#########.#########.###.#.#####.###.#####.#.###.#.#.#########.#####.#.#####.#.#####.#.#.#.#.###.#.#.#####.#.#.#####.#.###.#
|
||||||
|
#...#.........#.....#.........#.....#.......#...#.........#.#...#...#...#...#...#.#.....#...#.#.......#...#.#...#.#...#.....#.#.#.....#.#...#
|
||||||
|
#.###################.###.###.#.###.#####.#####.#####.###.###.#.#######.#.#.#.###.#.#.###.#.###.###########.###.#.#####.###.#.#.#.#.###.#.#.#
|
||||||
|
#.#.....#.....#...#...#.......#.#.#.#...........#.......#...#...#.....#...#...#.#...#.....#...#.........#...#.#.#...#...#.....#.#.#.#...#...#
|
||||||
|
#.#.###.#.#####.#.#.#####.###.#.#.#.#.#.#.#####.#.###.#.###.#.#######.#######.#.#.#.#.#.#####.#########.#.#.#.#.###.#.###.###.#.#.###.#####.#
|
||||||
|
#.#.#.....#.....#.#.#...#.#...#.#.#...#.#.....#.#.#.....#...#.#.....#...........#.#...#.#.............#.#.#...#.#.#...#.....#.#.#...#.#...#.#
|
||||||
|
#.#.#######.#####.#.#.#.###.#.#.#.#####.###.#.#.###.#.###.###.#.###.#.###.###.#.#.#.#.#.#########.###.###.#.###.#.#######.#.###.#.#.#.#.#.#.#
|
||||||
|
#.#...#...#...#.....#.#.....#.#.#.....#...#.#.#.#...#.#...#.....#...#.#.#...............#...........#.....#.#...#.#.....#.#.#...#.#.....#.#.#
|
||||||
|
#.###.#.#.###.#.#####.#######.#.###.#.###.#.#.#.#.#.###.###.#.###.###.#.#####.#.###.#.###.#####.#.#.#######.#.###.#.#.#.###.#.###########.#.#
|
||||||
|
#.....#.#.....#.#.....#.....#.#.#...#...#.#.#.....#.#...#.....#...#.#.........................................#.....#.#...#.#...#...#.....#.#
|
||||||
|
#####.#.#####.###.#######.#.#.#.#.#######.#########.#.#######.#.###.#####.#.#.#.#.#.#.#######.#.#.#.#.#.#####.#.#####.###.#.###.#.#.#.#####.#
|
||||||
|
#.....#.....#.#...#.......#.#.#.#...#.....#...#...#.#.#.....#.#.#.#.....#...#.....#.#.#.....#.#.#.#.#.#.....#.#.#...#.#.#.#...#...#.#.#.....#
|
||||||
|
#.#########.###.#####.#######.#.#.#.#.#####.#.#.#.###.#.###.#.#.#.#.###.###.#.#.#.#.#.#.###.###.#.#.#.#####.#.#.#.#.#.#.#.#.#######.###.#.#.#
|
||||||
|
#.#...#.....#...#.....#.....#.#.#.#.#.#...#.#...#.......#.#.....#...#.#.#...#.#.#.....#.#.#.....#...#.#.....#.#...#.#.#...#.......#.....#...#
|
||||||
|
#.#.#.#.#####.###.#####.###.#.#.###.#.#.#.#.#######.#####.#######.###.#.#.###.#.###.###.#.#######.#.#.###.###.###.###.#.#####.#############.#
|
||||||
|
#.#.#...#.....#...#.....#.#...#...#.#...#.#...#.....#.....#.......#...#.#.#...#...#...#.#...#.......#...#.#...#.#.#...#.......#.....#...#...#
|
||||||
|
###.###.#.#######.#.#####.#######.#.###.#.#.###.###.#.###.#.#########.#.#.#.###.###.#.#.#.###.#########.#.###.#.#.#.###########.#.#.###.#.###
|
||||||
|
#...#...#.#...#...#...#...#.....#.......#...#...#...#...#.#.........#.#...#.....#...#.#.#.#...#.........#.....#...#.....#.......#.#...#.#...#
|
||||||
|
#.###.#.#.#.#.#.#.###.#.###.###.#######.#####.###.###.###.#########.#.#####.#####.###.#.#.#.###.###############.#######.#.#######.###.#.###.#
|
||||||
|
#.....#.....#...#...#.#...#.#.....#.....#.....#...#...#.......#...#.........#...#.#.#...#.#.#.#.#.............#.#.....#...#.....#.#.#...#...#
|
||||||
|
#.#############.#####.#.#.#.#.#####.#####.#####.#######.#####.###.#######.#.#.#.#.#.#####.#.#.#.#.#.#.#######.#.#.#.###########.#.#.#.###.###
|
||||||
|
#...............#.....#.#...#.....#.....#.#...#...#.....#...#.....#.#.....#.#.#...#.....#...#.#.#.#.#.#.#.....#.#.#...........#.#.#...#.....#
|
||||||
|
#####.#.#.#.#.###.#####.#########.###.###.#.#.###.#.#####.#.#####.#.#.#####.#.#####.#.#.#.###.#.#.#.#.#.#.###.#.#########.###.#.#.###.#.###.#
|
||||||
|
#.......#.#.#...#.#.......#...#.....#.#...#.#...#...#.....#.....#...#...#...#.....#.#.#.#.#...#...#.#...#.#...#.#.........#.#...#...#.#.#...#
|
||||||
|
#######.###.###.#.#.#.###.#.#.#.#####.#.###.###.#########.#.#.#####.###.###.#####.#.#.###.#.#.###.#.#.###.#.###.#.#########.###.###.###.#.#.#
|
||||||
|
#...........#...#...#.#.....#.#.......#.......#...#.....#.#.#.#.....#.#...#...#...#.#.#...#.#...#.#.#.#.......#.#.#.......................#.#
|
||||||
|
#.#####.#####.#.#.###.#######.#############.#####.#.###.#.#.#.#.#####.###.#####.###.#.#.###.#.###.#.#.#.###.###.#.#.#########.#.#.###.#####.#
|
||||||
|
#.#.........#.....#.#...#...#.............#.#.....#...#...#.#.#.#.......#...#...#.#.#.#.#.#.......#.#.#.#...#...#.#.#.......#.....#.........#
|
||||||
|
#.#####.#.###.#.###.###.###.###########.#.#.#.#.#.###.#.###.#.#.#.#.#######.#.###.#.#.#.#.#.#.#.###.#.#.#.###.###.###.#####.#####.#.#.#####.#
|
||||||
|
#.#.......#...#.......#.#.................#.#.#.#.#...#.#...#.#.#.#.#.....#...#.#...#...#.#.#.#.#.....#.....#.#.#...#...#.#.....#...#.....#.#
|
||||||
|
#.#.###.###.###########.#.#######.#####.###.#.#.#.#.###.#.###.#.###.#.###.#####.#.#######.#.#.#.#.#.###.###.#.#.#.#.###.#.#####.#.#######.#.#
|
||||||
|
#.#.........#.........#.#...#...#.#.....#...#.#...#.......#...#.....#.#...#.....#.#.....#...#.#.#.....#...#.#.#.#.....#.#.....#...#.......#.#
|
||||||
|
#.#.###.#####.#.#####.#.#.#.#.###.#.#####.###.#######.#####.#####.###.#.###.###.#.#.###.#.#.#.#.#######.#.###.#.#.###.#.#.###.###.#.#######.#
|
||||||
|
#.#.......#...#...#...#...#.#.....#...#.....#.#.......#.....#.#...#...#...#.#...#.#...#...#.#.#.......#.#.....#...#...#.#.#.......#.....#...#
|
||||||
|
#.#######.#######.#.#####.#.#########.#.###.#.#.###.###.#####.#.###.#####.#.#.#.#.#######.#.#.#######.#.#######.###.###.###.#####.#####.#####
|
||||||
|
#.......#.........#.#.....#...........#...#.#.#.#.#.#.........#.#...#.....#.#.#.#.#.....#...#.......#.#.....#.....#...#.....#.........#.....#
|
||||||
|
#.#####.###.#######.#.###.#.#.#######.###.#.#.#.#.#.###########.#.###.#####.#.###.#.###.###.#.###.###.#####.#.###.###.#####.#.###.###.#.###.#
|
||||||
|
#.#.#...#...#...#.#...#...........#.......#.#.#...#.#.....#.....#...#...#.........#...#.#...#...#.#...#.#...#.#.....#.....#.#.#.....#.#.#...#
|
||||||
|
#.#.#.###.###.#.#.#####.###.#####.#.#######.#.###.#.#.###.#.#######.###.#.###.#####.#.#.#.#####.###.###.#.###.#.#######.###.#.#.#.###.#.#.#.#
|
||||||
|
#...#.#...#...#.#.......#.....#...#...#...#...#...#.#...#...#...#...#.#...#.........#...#.........#.#.#...#.....#.....#.....#...............#
|
||||||
|
###.#.#####.###.#.###.#########.###.###.#.#.#.#####.###.#####.#.#.###.#####.#########.###########.#.#.#.###.#####.###.#.#####.#####.#.###.#.#
|
||||||
|
#...............#...#.#.........#...#...#.....#.....#...#.....#.#...#.....#...#...#...#.........#.#.#.....#...#...#...#.....#.....#.......#.#
|
||||||
|
#.###.#.#######.#.#.###.#########.###.#####.#.#.#####.#####.#.#####.#.#.###.#.#.#.#.###.#.#####.#.#.#####.#.###.###.#####.#.#.#.#.#########.#
|
||||||
|
#...#.#.#...#...#.#.....#...........#.#...#.#.#.#...#.#.....#.#.....#.#.#...#...#.#.#...#.#...#...#...#...#.#...#.#.......#.#.#.#.....#.....#
|
||||||
|
#.###.#.###.#.#.#####.###############.#.#.###.#.#.#.#.###.#.###.#####.#.#.#######.#.#####.#.#.#######.#.###.#.###.###.#.###.#.#.#.###.#######
|
||||||
|
#.#...#.#...#.#.#...#.......#.........#.#.....#...#.#.#...#.#.......#.#...#.....#.#...#...#.#.#...#...#.....#...#.....#.....#...#...#...#...#
|
||||||
|
#.#.#.#.#.###.###.#.#######.#.#######.#.#######.###.#.#.#####.###.#.#.#####.###.#.###.#.#.#.#.#.#.#.#.#.#######.#.#####.#######.#.#.###.#.#.#
|
||||||
|
#.#.#.#.#...#.....#.....#.....#.......#.#.....#.#.#.....#.....#...#...#.....#...#.#.#...#.#.#.....#.#...#.......#.......#.........#...#...#.#
|
||||||
|
#.#.###.###.#####.#####.#######.#####.#.#.#####.#.#.###.#.#####.#.#####.#.###.###.#.#####.#.#####.#.#.###.###.###.#######.#.###.#####.#####.#
|
||||||
|
#.#...#.....#.........#.......#.#...#.#.#.......#.......#.....#.........#...#.#...#.#...#.#...#...#.#.....#...#...#...#...#.#.....#.#.....#.#
|
||||||
|
#.###.#####.#.###.#####.#####.###.#.###.#.#.#####.#.###.#####.#############.#.#.###.#.#.#.###.#.#.#.#########.#.###.#.#.#.###.###.#.###.###.#
|
||||||
|
#...#.......................#.#...#...#.#...#...#.#.#.#.#.#...#.......#.....#.#.#...#.#.....#.#.#.....#.....#.#.#...#...#.....#.#.#.....#...#
|
||||||
|
###.###.#.###.#.###.#.#.###.#.#.###.#.#.###.#.#.###.#.#.#.#.###.#####.#.#####.#.###.#.#######.#.#####.#.###.#.#.#.#############.#.#######.#.#
|
||||||
|
#.#...#...#.......#...#.#...#...#.#...#...#...#.....#.#...#.....#.#...#.....#.#...#.#.....#...#.......#...#...#.#...#...........#.#.....#.#.#
|
||||||
|
#.###.#####.#####.#####.#########.#.#####.###########.###.#######.#.#####.#.#.###.#.###.###.###########.#.#####.###.#.#.#######.#.#.###.#.#.#
|
||||||
|
#...#.#.......#...#...#...#.......#.....#...#.#.........#.......#.#.#...#.#...#...#.#...#...#.........#.#.....#.#...#.#...#.........#.#...#.#
|
||||||
|
###.#.#.#####.#.###.#.#.#.#.#.#########.###.#.#.#####.#########.#.#.#.#.#######.###.#.###.#######.###.#######.#.#.#.#.#.#.#.###.#.###.#####.#
|
||||||
|
#...#.#.#...#.#...#.#.#.#...#.#.....#...#...#.......#.#.........#.#...#.......#.#...#...#...#.....#.........#.#...#.#.#.#.#.#.....#.........#
|
||||||
|
#.###.#.#.#.#.#####.#.#.#####.#.###.#.###.#####.#####.#.#########.#####.#####.#.#.#.###.###.#.#####.#######.#.#####.#.###.#.###.#.#.#######.#
|
||||||
|
#.#...#.#.#...#.....#.#.#.....#.#.#...#...#.....#.....#.#.........#.........#...#.#.....#.#.#.....#.#...............#.#.......#.#...#.......#
|
||||||
|
#.#.###.#.#####.#####.###.#.###.#.#####.#.#.###.#.#####.###.#####.#########.#####.#.#.###.#.#####.#.#.#.###########.#.#.#.###.#.#.###.###.#.#
|
||||||
|
#...#...#.....#.#.......#.#.#...#.....#.#...#...#.....#.....#...#...........#.....#.#.....#.#...#.#.#.#.#.....#.....#...#...#.#.#.#...#.#.#.#
|
||||||
|
#.###.#######.#.#######.#.#.#.#####.###.#####.###.###.#####.#.#.###.#######.#.###.#######.#.#.#.#.###.#.#.###.#.#####.#####.#.#.#.#.###.#.#.#
|
||||||
|
#.....#.#.....#.#.........#.#...#...#...#...#...#...#.....#.#.#...#.#...#...#...#.......#.#...#.#.....#.#.#...#.#.......#...#.#.#.#.#...#...#
|
||||||
|
#######.#.#####.#.###.#####.###.#.#.#.#####.#.#.#####.#.###.#.###.###.#.#####.#####.#.#.#.#####.#####.#.#.#.#####.#.###.#.#.#.#.#.#.#.#####.#
|
||||||
|
#.......#.#.....#...#...#...#...#.#.#.#.....#.#.....#.#.....#.#.#.....#.......#...#...#...#.....#...#.#.#.#.#.....#.#...#.#.#.#.#.#...#.....#
|
||||||
|
#.#####.#.#.#######.###.#####.###.###.#.###.#.#####.#########.#.#.#.#.#########.#.###.#####.#####.#.###.#.#.#.#####.#.###.#.#.#.#.#####.###.#
|
||||||
|
#...#...#.#.......#...#...#...#.......#.#.#...#...#...........#...#.............#...#.#.....#.....#.....#.#.......#.#.#.....#.#.#.......#...#
|
||||||
|
###.#.###.#.#.#.#.###.###.#.#########.#.#.###.###.#############.#.#########.#.#####.#.#.#####.#######.###.#########.###.#####.#.#.#######.#.#
|
||||||
|
#.#.#.....#...#.#...#...#...#...........#...#.....#...#.....#...#...#...#...#...#...#...#.......#...#.#...#.........#.....#...#.....#...#.#.#
|
||||||
|
#.#.#########.#.#######.#####.#####.#.#.#.#####.#.#.#.#.#.#.#.#####.#.#####.###.#.###.#####.###.#.###.#.###.#.#####.#.#####.#####.#.#.###.#.#
|
||||||
|
#...#.........#.......#.....#.....#.........#...#...#...#.#.#.....#.#.#...#.#.#.#.....#...#...#.#.....#...#.#.#...#.#.#.....#...#.....#...#.#
|
||||||
|
#.#######.###.#####.#.#.###.#####.#.#####.#.#.###.#######.#.###.#.#.#.#.#.#.#.#.#######.#.#####.#.#######.#.#.#.#.###.#.#####.#.#####.#.###.#
|
||||||
|
#.......#.....#...#.#.....#.#...#.#.....#.#...#...#...#.......#.#...#...#.#...#.#.......#.......#.......#.#.....#.#...#.......#...#...#.....#
|
||||||
|
#######.#.###.#.#.###.#####.#.#.#.#####.#.#####.#####.#.#####.#.#.#######.###.#.#.#################.#####.#####.#.#.###########.#.#########.#
|
||||||
|
#.#.............#.....#...#.#.#.......#.#...#.........#.....#.#.#.......#...#.#.#...#...........#...#.....#...#.#.#.#.......#...#.........#.#
|
||||||
|
#.#.#######.#.#.#####.#.#.#.#.###.#####.###.###########.###.#.#.#####.#.###.###.#.#.###.#.###.#.#.###.#####.#.###.#.###.###.###.#########.#.#
|
||||||
|
#.#...#...#.#...#.....#.#...#.#...#.....#.#...#...#...#.#...#.#.#.#...#.#...#...#.#...#.#.#.....#.#...#.#...#.....#...#.#...........#...#...#
|
||||||
|
#.###.#.#.#.#.#.#######.#####.#.###.#####.###.#.#.#.#.#.#.#.###.#.#.###.#.###.###.###.###.#######.#.###.#.#.#########.#.#######.###.#.#.#####
|
||||||
|
#...#...#.#.#...#.....#.......#...#.#...........#...#.#.#.#.#...#.#.#...#.....#.....#...#.....#...#.....#.#.#...#...#.#.........#.#.#.#.....#
|
||||||
|
#.#.#####.#.#.#.#.###.###########.#.#.###############.#.#.###.###.#.#################.#.#.###.#.#######.#.###.#.#.#.#.###.#####.#.#.#.#.###.#
|
||||||
|
#.#.#.....#...#.#.#.#.............#.#.....#.....#...#.#.#...#.....#.#.................#.#.#.#...#.....#.#.....#...#.#...#...#.#.#...#.#.#...#
|
||||||
|
#.#.#.#####.#.###.#.#####.#######.#.#######.###.#.#.#.#####.#.###.#.#.#######.#######.#.#.#.#####.#.#.#.###########.###.###.#.#.#.###.#.###.#
|
||||||
|
#.#.#.#.....#...........#.#.#.....#.#.........#.#.#.#.#...#...#...#.#.#.......#.....#.#.......#...#.#.#.#.........#...#...#...#.#...#.#...#.#
|
||||||
|
#.###.#.#####.#####.#####.#.#.#####.#.#########.#.#.#.#.#.#.#.#.###.#.#.#.#####.###.#.#.#######.###.###.#.#####.###.#####.###.#.###.#.###.###
|
||||||
|
#.#...#.#.........#.#.....#...#...#.....#...#...#...#...#.#.#...#.#.#...#.#.............#.........#.#...#...#.#...#.....#.#...#...#.#...#...#
|
||||||
|
#.#.#####.#######.#.#.#####.###.#########.#.#.###.#.#####.#####.#.#.###.#.###.#########.#.#########.#.#####.#.###.#####.#.#.###.#.#.#######.#
|
||||||
|
#...............#.#.#...#.#.#.......#.....#...#...#.....#.....#...#.#...#...#...#.....#.#.......#.......#.#.....#.....#.#.#...#.#.#.#.......#
|
||||||
|
#.#####.###.#.#.#.###.#.#.#.#######.#.#.#######.#.#.#########.#####.#.#####.#####.###.#########.#.#####.#.#####.###.#.#.#.###.#.#.#.#.#####.#
|
||||||
|
#.....#...#.#...#...#.#.#.#.........#.#.#.....#...#.#.............#.#.#...#.......#.#.......#...#.....#.......#...#...#...#.#...#.#.#.#...#.#
|
||||||
|
###.#.###.#.###.###.#.#.#.#######.###.#.#.###.#.#.#.#.#####.#####.#.#.#.#####.###.#.#####.###.###.###.#.#.#.#####.#.#######.#.#.#.#.#.#.#.#.#
|
||||||
|
#...#.#.#...#...#...#.#.#...#.....#...#...#.#...#.#...#.#...#.....#.#.#...........#.#...#...#...#...#.#.#.#.......#.......#...#...#.#.#.#.#.#
|
||||||
|
#.###.#.#####.#.#.#####.#.###.#####.###.###.#####.#.###.#.###.#####.#.#.#####.###.#.#.#.###.###.#.###.#.#.###.###.###.###.#.###.###.#.#.#.#.#
|
||||||
|
#...#.#.......#.#...#...#.........#...#...........#.....#...........#.#.#...#.#...#.#.....#.........#...#...#.......#.#...#.#.#.#...#.#.#...#
|
||||||
|
###.#.#.###.###.#.#.#.###.#######.###.#####.#####.#.#########.#######.#.#.#.#.###.#.#.#.#.#########.#######.#######.#.#.#.#.#.#.#.###.#.#####
|
||||||
|
#.............#...#.#...#.#...#.#.#.#.......#.....#.#...........#...#.#.#.#.#...#.#...#.#.#.......#...#.......#...#.#...#.....#.#.#...#.#...#
|
||||||
|
#.###.#####.#.###.#.#.#.#.#.#.#.#.#.#########.#####.#.#########.#.#.#.#.#.#.###.#.#####.###.#.###.###.#.#.#####.#.###.#####.###.#.#.#####.#.#
|
||||||
|
#.#.#...#...#...#.#.#.#.#.#.#.#...#...#.......#.....#...#.....#.#.#...#.#.#.#...#.....#.....#.#.......#.....#...#...#.#...#.#...#...#.....#.#
|
||||||
|
#.#.###.#.###.#.#.#.#.#.###.#.#.#####.#.#.#############.#.#####.#.#####.#.#.#.#######.#.#####.#############.#.#####.###.#.#.#.#######.#####.#
|
||||||
|
#.#.#.....#...#.....#.#.....#.#.#.....#.#.......#.....#.#...#...#.#...#.#.#.#.#...#.#.#.....#...............#.....#.....#.#.#...#.....#...#.#
|
||||||
|
#.#.#.#.###########.#.#######.#.###.###.###.###.#.#.###.###.#.###.#.#.#.###.#.#.#.#.#.#####.#####################.#######.#.###.#.#####.#.#.#
|
||||||
|
#.#.....#...........#...#.....#.#...#...#.....#...#...#.....#...#...#.#...#.#.#.#.#.#...#.#...#.......#.........#...#...#.#...#.....#...#...#
|
||||||
|
#.#####.#.###############.#####.#.#.#.#.#.###########.###.#####.#####.###.#.#.#.#.#.###.#.#.###.#####.#.#######.###.#.#.#.#########.#.#.#.#.#
|
||||||
|
#.....#.#.#.........#.....#...#.#.#.........#.......#.#...#.......#...#...#.#.#.#.....#.#...#...#...#...#.....#.....#.#.#.....#...#.#.#...#.#
|
||||||
|
#.###.#.#.#.#######.#.#####.#.#.#.###.###.###.#####.#.#.###.#######.#####.#.#.#.###.###.#.###.#####.#####.###.#########.#####.#.#.#.#.#.#.#.#
|
||||||
|
#...#.#.#...#...#.#...#.....#.#.#.#.....#...#.#...#...#.#...#.......#...#.#.#.#...#.#...#.#...#.....#...#.#...#.........#...#...#.#...#.....#
|
||||||
|
#####.#.#####.#.#.#####.###.#.#.#.#.#.#.#.#.#.#.#.###.#.#.#.#.#######.#.#.#.#.###.#.#.#####.###.#.#.#.#.#.#.###.###.#.#.#.#.#####.#.###.#.#.#
|
||||||
|
#.....#...#...#.#.....#.#...#.#.#...#.#.#.#...#.#.....#.#.#.....#.....#.#...#.#...#.#.......#...#.#.#.#.#.#...#...#.#.....#...#...#.#.....#.#
|
||||||
|
#.#####.#.###.#.#.#.###.#.#####.#####.#.#.#####.#######.#.#####.#.#####.#.###.#.#####.#.#.#.#####.###.#.#.###.###.#.###.#######.#####.#.#.#.#
|
||||||
|
#.#...#.......#...#.#...#.......#.....#.#...#.#.#.......#.....#.#...#.#.#.#...#.....#...#.#.....#.....#.......#...#...#.#.......#.....#.#.#.#
|
||||||
|
#.###.#.#############.###########.#####.###.#.#.#.#########.#.#.###.#.#.###.#.#.###.#####.#####.#.###########.#.#.###.###.#######.#####.#.#.#
|
||||||
|
#...#...#.....#.....#...#.........#.#...#...#...#.#.......#...#.....#.#.....#.....#.....#...#...#.#...........#.#...#.#...#.......#.....#...#
|
||||||
|
###.###.#.###.#.###.###.#####.#####.#.###.###.###.###.#.#.#.#####.#.#.#######.#######.#.###.#.#####.#########.#.###.#.#.###.#.#######.#####.#
|
||||||
|
#...#.......#...#...#...#...#.#.......#...#.....#...#.#.#.#.....#.#.#.#.......#.#.....#...#...#.....#...#.....#...#.#...#...................#
|
||||||
|
#.#.#.#.#########.#.#.###.#.#.#.#######.#.#########.#.#.#.###.#.#.#.#.#.###.#.#.#.#############.#.#.#.#.#########.#.#########.###.#.#.#.###.#
|
||||||
|
#.#.#.#...#...#...#.#...#.#...#.#.....#...#...#...#.#.#.#.....#.#...#.#...#...#.#.................#.#.#.........#.#.........#.#...#...#.#...#
|
||||||
|
#.#.#.#.#.#.#.#.###.###.#.#####.#####.#.###.#.#.#.#.#.#.#.###########.###.#####.#############.#####.#.###.###.#.#.###.#####.#.#.###.###.#.#.#
|
||||||
|
#.#.#.....#.#...#.....#...#...#.....#.#.....#...#...#.#.#...........#.....#.........#.....#...#...#.#...#.....#.#...#...#.#...#.#...#...#.#.#
|
||||||
|
#.#######.#.#####.###.#####.#######.#.#################.#########.###.#####.#######.#.###.#.#.#.#.#.###.#.#.###.###.###.#.#####.#.###.###.#.#
|
||||||
|
#.......#.#.....#.....#...#.......#...#...#...#.........#.....#...#.........#.........#...#.#.#.#.#.#...#.....#...#.....#.......#...#.#...#.#
|
||||||
|
#.#.###.#.#####.#######.#.#.#.#.#.###.#.#.#.###.###.###.#.###.#.###.#######.#.#######.#####.###.#.###.#######.#.#.#############.###.#.#.###.#
|
||||||
|
#.#...#.#...#.#.........#...#.#.#.#.#.#.#...#...#.#.#...#...#.#.....#.......#.#.....#.#...#.....#.#...#.......#.#.....#...................#.#
|
||||||
|
#####.#.###.#.###############.#.#.#.#.#.###.#.###.#.#.#######.#########.#####.#.#.#.###.#.###.#.#.#.###.#####.#.#####.#.#######.#########.#.#
|
||||||
|
#.....#.#...#.........#...#...#.....#.#.#...#...#.#.#.......#.........#...#.#...#.#.....#...#...#.....#.#...#.#...#.........#...#.......#...#
|
||||||
|
#.#####.#.###.#.###.#.###.#.#.#######.#.#.#####.#.#.#######.###.###.#.#.#.#.#.###.#########.###.#####.#.#.###.#.#.#.#####.#.#####.#####.#.#.#
|
||||||
|
#.....#.#.#...#.#.#...#...#.#.#.....#.#...........#.#.....#...#.#...#.#.#.#...#...#.....#...#.......#...#...#.#.#.#.....................#.#.#
|
||||||
|
#.###.#.#.#.###.#.#.###.###.###.###.#.###.###.#####.###.#####.#.#.###.###.#.###.###.###.#.###.#.###.#####.#.#.#.#.###.#.###########.###.#.#.#
|
||||||
|
#...#.#.#.#.#...#...#...#...#...#.............................#.#.#.#...#.#.#.#.......#.#...#.....#.#.....#.....#.#.#.#.#.......#...#...#...#
|
||||||
|
###.#.#.#.###.###.###.#.#.###.###.#####.#.#.###.#.###.#.#.#.#####.#.###.#.#.#.#########.#.#.###.#.#.###########.#.#.#.#.#.#.#####.###.#.###.#
|
||||||
|
#...#.#.#...#.#.....#.#.#.#...#.........#.......#.....#.#.#...#...#...#...#...#...#.....#.......#.#...........#...#...#.#.#...#...#.......#.#
|
||||||
|
#####.#.###.#.#####.#.#.#.#.#######.#####.###.#########.#.###.#.###.#########.#.###.#.#.#.#####.#.#.#########.#.#.#####.###.#.#.#####.#.#.#.#
|
||||||
|
#.....#.#...........................#.....#...#.......#.#...#.#...#.........#.#...#.#...#...#.....#.............#.#...#...#.#.#.....#.#.#.#.#
|
||||||
|
#.#######.###.#.#.#####.#.###########.###.#.#####.###.#.#.###.###.#####.#.#.#.###.#.#.###.#.#######.#.###.#.###.###.#.###.###.#####.#.#.#.#.#
|
||||||
|
#.#.............#.....#.#.....#.....#.....#.....#...#.#.#...#.....#...#.#.#.#.#...#.......#...#...#.#.#...#.#...#.................#.#...#.#.#
|
||||||
|
#.#.###########.#.###.#.###.#.#.###.#.###.#.###.#####.#.###.#######.#.###.#.#.#.#.###.###.###.###.#.#.###.#.#.#.#.###.###.#.#####.#.#.#.###.#
|
||||||
|
#...#.....#.....#.#.#...#...#.#.#.#.#...#.....#.....#.#.#.#.#.......#.....#.#...#...#.......#...#...#.....#.........#.#...#.#.....#.#.#.....#
|
||||||
|
#.#####.#.#.#####.#.#####.#####.#.#.###.###########.#.#.#.#.#.###.#.###############.#.###.#.###.#########.#.#.#.###.#.#.###.#.#####.###.#####
|
||||||
|
#S......#...#...........#.........#.................#.....#.......#...........................#...........#.................#.....#.........#
|
||||||
|
#############################################################################################################################################
|
5
resources/2024/day17.txt
Normal file
5
resources/2024/day17.txt
Normal 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
3450
resources/2024/day18.txt
Normal file
File diff suppressed because it is too large
Load Diff
1691
resources/2024/day22.txt
Normal file
1691
resources/2024/day22.txt
Normal file
File diff suppressed because it is too large
Load Diff
3380
resources/2024/day23.txt
Normal file
3380
resources/2024/day23.txt
Normal file
File diff suppressed because it is too large
Load Diff
313
resources/2024/day24.txt
Normal file
313
resources/2024/day24.txt
Normal 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
3999
resources/2024/day25.txt
Normal file
File diff suppressed because it is too large
Load Diff
9
run.py
9
run.py
@@ -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
146
src/c/2024/day18/part1.c
Normal 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
170
src/c/2024/day18/part2.c
Normal 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
235
src/c/2024/day24/part1.c
Normal 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
235
src/c/2024/day24/part2.c
Normal 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
83
src/c/2024/day25/part1.c
Normal 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);
|
||||||
|
|
||||||
|
}
|
@@ -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
|
||||||
|
123
src/pladcl/2024/day11/part1_works.pdl
Normal file
123
src/pladcl/2024/day11/part1_works.pdl
Normal 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
|
134
src/pladcl/2024/day11/part2.pdl
Normal file
134
src/pladcl/2024/day11/part2.pdl
Normal 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
|
84
src/pladcl/2024/day12/part1.pdl
Normal file
84
src/pladcl/2024/day12/part1.pdl
Normal 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
|
127
src/pladcl/2024/day12/part2.pdl
Normal file
127
src/pladcl/2024/day12/part2.pdl
Normal 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
|
||||||
|
|
||||||
|
|
147
src/pladcl/2024/day13/part1.pdl
Normal file
147
src/pladcl/2024/day13/part1.pdl
Normal 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
|
164
src/pladcl/2024/day13/part2.pdl
Normal file
164
src/pladcl/2024/day13/part2.pdl
Normal 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
|
96
src/pladcl/2024/day14/part1.pdl
Normal file
96
src/pladcl/2024/day14/part1.pdl
Normal 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
|
192
src/pladcl/2024/day14/part2.pdl
Normal file
192
src/pladcl/2024/day14/part2.pdl
Normal 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
|
112
src/pladcl/2024/day14/part2_works.pdl
Normal file
112
src/pladcl/2024/day14/part2_works.pdl
Normal 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
|
181
src/pladcl/2024/day14/part2_works2.pdl
Normal file
181
src/pladcl/2024/day14/part2_works2.pdl
Normal 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
|
140
src/pladcl/2024/day15/part1.pdl
Normal file
140
src/pladcl/2024/day15/part1.pdl
Normal 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
|
||||||
|
|
382
src/pladcl/2024/day15/part2.pdl
Normal file
382
src/pladcl/2024/day15/part2.pdl
Normal 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
|
243
src/pladcl/2024/day16/part1.pdl
Normal file
243
src/pladcl/2024/day16/part1.pdl
Normal 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
|
268
src/pladcl/2024/day16/part2.pdl
Normal file
268
src/pladcl/2024/day16/part2.pdl
Normal 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
|
217
src/pladcl/2024/day17/part1.pdl
Normal file
217
src/pladcl/2024/day17/part1.pdl
Normal 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
|
264
src/pladcl/2024/day17/part2.pdl
Normal file
264
src/pladcl/2024/day17/part2.pdl
Normal 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
|
99
src/pladcl/2024/day22/part1.pdl
Normal file
99
src/pladcl/2024/day22/part1.pdl
Normal 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
|
106
src/pladcl/2024/day22/part2.pdl
Normal file
106
src/pladcl/2024/day22/part2.pdl
Normal 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
|
88
src/pladcl/2024/day23/part1.pdl
Normal file
88
src/pladcl/2024/day23/part1.pdl
Normal 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
|
117
src/pladcl/2024/day23/part2.pdl
Normal file
117
src/pladcl/2024/day23/part2.pdl
Normal 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
|
25
src/python/2024/day13/part2.py
Normal file
25
src/python/2024/day13/part2.py
Normal 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)
|
||||||
|
|
||||||
|
|
Reference in New Issue
Block a user