Day 12 Part 1 broken

This commit is contained in:
2024-12-12 16:39:37 +08:00
parent 792d86423f
commit f948a2da13
8 changed files with 284 additions and 0 deletions

140
2024/day-12/input Normal file
View File

@ -0,0 +1,140 @@
AAAAARRRRRRRRRRROOOOOOOOOOOOWWWWWWWWWWWWWMMMMXXQQQQQQQWWWXXXXXXXXQQQQQQQQQQQQQQQQQQQDDDDDDBBBBBBBBBBBBBBBBBRRRRRRRRRRREEEEEEEEEEEEEJJJJJJJJJ
AAAAARRRRRRRROOROOOOOOOOOOWWWWWWWWWWWWWWWWWMMMMQQQQQQQQWXXXXXXXXXQQQQXQQQQQQQQQQQQQQDDDDDDBBBBBBBBBBBBBBBBBRRRRRRRREEEEEEEEEEEEEZEJJJJJJJJJJ
OAAAARRRRRRRRROOOOOOOOOOOWWWWWWWWWWWWWWWWWWMMMMQQQQJQQQWXXXXXXXXXXXXXXXQQQQQQQQQQQQQDDDDDBBBBBBBBBBBBBBBBBBRZRRRRRRRREEEEEEEEEEEJJJJJJJJJJJJ
AAAAARRRRRRRRYHOOOOOOOOOOWWWWWWWWWWWWWWWWWWMMMMMMQQQQQQXXXXXXXXXXXXXXXXQQQQQQQQQQQQQDDDDDBBBBBBBBBBBBBBBBBBZZRRRRRRREEEEEEEEEEEEJJJJJJJJJJJJ
AAAARRRRRRRYYYOOOOOOOOOOOOWWWWWWWWWWWWWWWWLMMMMMQQQQQQQQXXXXXXXXXXXXXXQQQQQQQQQQQQQDDDDDDDDBBBBBBBBBBBBBBBZZZZRRRRREEEEEEEEEEEEEJJJJJJJJJJJJ
AAAARRRRRRYYYVOOOOOOOOOOWWWWWWWWWWWWWWWWWWWWGGQQQQQQQQQQQXXXXCCXXXXXIIQQQQQQQQQQQYYEEDDDDDDBBUBBBBNBBBBBBBZZZZRRRREEEEEEEEEEEEEEEEJJJJJJJJJJ
AAAARRRRRRYYYOOVOOOOOOOWWWWWWWWWWWWWWWWWWWWWGVQQQQQQQQQQQXXCXCCXIIIIIQQQQQQQQQQQYYEEDDYDDDHBBBBBHHBBBUBBBJZZZRRRRRREEEEEEEEEEEEEEEJJJJJJJJJJ
AAARRRRRYYYYYYYVPOOOOOOOOOOWYYWWWWWWWWWWWWWWGVVQQQQQQQQQHHHCCCCCIIIIIQQQQQQQQQQYYYYYYYYDHHHHHHHHHBBBBBBBYJZZZZZRRREEEEEEEEEGGEEEDDDJJJJJJJJJ
RAAARRRYYYYYYYPPPOPOOOOOOOOOYYYYWYWPWWWWSVVVVVVVQQQQQQQQHHHHHHNIIIIIIQQQIQQQQQJJJYYYYYYDHHHHHHHHBBBBBBBBBJJJJZRRRRRREEEEEEEGGEEEKKDKJJJJJJJJ
RRRRRMRYYYYYYUPPPPPOOOOOOOOXXXYYYYYPPWWWPPVVVVVVVVQQQHHHHHHHNHNIIIIIIIIIIQQJJJJJJYYYYYYYYHHYHHHHHBBBBBBJBJJJJZRRREEEEEEEEEEGGEEEKKKKJJJJJJJJ
RRRMMMYYYYYYYPPPPAPOOOOOOHXXXXYXYYYPPWPPPPVVVVVVVQHHHHCHHHHNNNNNNIIIIIIVJJJJJJJJJYYYYYYYYYYYYHHHHHHJJJJJJJJJJRRRRREXEEEEEEGGGGGGKKKKJJJJJJEG
RRRMMMMYYYYYYPPPPOOOOOOOOXXXXXXXXXPPPPPPPPPVVVVVVVVVHHHHHHBNNNNNNNIIIIIVJJJJJJJJJYYYYYYYYYYAYAAHHAAAJJJJJJJJJEERRREEEEGGGGGGGGGGRRKKKJJJEJEE
RRRMMMMMMYYYMMMPPOOOOOOBBXXXXXXNPPPPPPPPPPPVVVVVVDPPPHHHHHNNNNNNNNIIIIIVJJJJJJJJJYYYYYYYYYYAYAAHHAAJJJJJJJJEJXEERRRREGGGGGGGGGGGRRKKGGEJEEEE
RRMMMMMMYYMMMMMPMMOOOOWWXXXXXXXXKKKKKPGPPPPPPPPPPPPPPPPHHHENENNNNNIIIIIJJJJJJJJJJYYYYYYYYYAAAAAAAAAJJJJJJJEEEEEERRRRRRTGGGGGGGGGGRGGGEEEEEEE
RRMMMMMMMMMMMMMMMMMWWWWXXXXXXXXXKKKKKGGPPPPPPPPPPPPPPPPPHHEEEEENNNIIIIIJJJJJJJJJJJYYYYYYYYAAAAAAAAAJJJJJJEEEEEEEEERRRRTGZGGGGGGGGGGGGGEEEEEE
RRRMMMMMMMMMMMMMMMWWWWWXXXXXXGGGGKGUUUGGGYPPPPPPPPPPPPPPPPEEEEEEEEIIIIIJJJJJJJJJJJYYYYYYYYYAAAAAAAAJJJJJJJJEEEEEEERRRRTGGGGGGGGGGGGGGGEEEEEE
RRRMMMMMMMMMMMMMWWWWWWWWGGGGXGGGKKGGGGGYYYYPPPPPPPPPPPPPPPPPCCEEIIIIIJOJJJJJJJJJJJYYYYYYYYYAAAAAAJJJJJJJJJJEEEEEERRRRRTTGGGGGGGGGGGGGGEEEEEE
RRRRRMMMMMMMMMMMMMWWWWWWGGGGGGGKKKGGGGGYYYYPPPPPMPPPPPPPCPPCCXXXXXXJJJJJJJJJJJJJJJYYYYYYYYYAAAAAAJJJJJJJJJJJEEEEETTRRTTTTGGGGGGGGGGGGGEEEEEE
RRRRRMTMMMMMMLWWWWWWWWWWWWGGGGKKGGGGGGGGYPPPPPPPMPPPPPPPCCCCCCXXXXXXXXJJJJJJJJJJJQYYYYYYYYYAAAAAAAJJJJJJJJJJEEEETTTRTTTTTTTGGGGGGGGGGEEEEEEE
RRRYYMTTMMMMLLWWWWWWWWWWWWWAGGGGGGGGGGGGYGPPPPPPMMPPPPPPCCCCCCCXXXXXXXXJJJJJJJJJJJJYYYYYYYAAAAAAJAJJJJJQQQEEEETTTTTTTTTTTIIIGGNGGGGGGEEEEEEE
RRRYYMTTMMMMLLLLLWWWWWWWWWWAAAAGGGGGGGGGGGGPPPMMMAAAAPPCCCCCCXXXXXXXXXXXXXJJJJJJJYYYYYLLLLLAAAAAJJJJJJJJQQEEQETTTTTTTTTIIIIIINNGNGGGPEEEEEEE
YYYYYYJTMMJMLLLLLLLWWWWWWWAAAAAAAGGGGGGGGGLMMMMMMAMAAPCCCDCCCCCDDDXXXXXXXXXJXXXJJYYYYYLLLLLLLANNNJNNJJJQQQQQQTTTTTTTTIIIIIIIINNNNNGGEEEEEEEE
YYYYYYJTJJJLLLLLLLLWWWWWWZAAAAAAAGGGGGGGGLLLLMMMMMMAAPCCCDDCCCDDDDDDXXXXXXXXXXXWHHYHYLLLLLLLLLLLNNNNNJJQQQQQQTTTTTTCIIIIIIIIINNNNNNNEEEEEERE
YYYYYYJJJJJLJJLLLLWWWWWWWAAAAAAAAAGGGGGGGLLMMMMMMMMCCCCCDDDDDDDDDDDMDXXXXXXXXXXXHHHHLLLLLLLLLLLLNNNNNNNQQQQQQQTCCCCCIGIIIIIIICCCCNEEEEEERRRR
YYKKYYJJJJJJJJLLLLLWWWWJWAAAAAAAAGGGGGGGGLLMMMMMMMMXXXXDDDFDDDDDDDDDDXXXXXXXXXXHHHHHLLLLLSSLLLLLLLNNNNNQQQQQQQQQQCCCCCIIIIIIICCCCNNNEEEERRRR
YYKKKYJJJJJLLLLLLLLLWWWLQAAAAAAZZZZZZZZGLLMMMMMMMMMMXXXDDDDDDDDDDDDDXXXXXXXXXXXHHHHHLSSSSSSSSLLLLNNNNNQQQQQQQQQQQCCCCCIIIIIIIICCCNNNNERRCRRR
YYKKKJJJJJJLLLLLLLLLWWLLLAEAAAAZZZZZZZZMMMMMMMMMMMMMMMXDDDDDDDDDDDDDXXXXXZXXXXXTHHHLLLSSSSSSSSSSLLLLQQQQQQQQQQQQXXXCCCIIIIIIIICCCNNNNNRRRRRR
YYKKKJJJJJJJLLLLLLLLLLLLLEEAAAAZZZZZZZZZTMTMMMMMMMMXXXXXDDDDDDDDDDDZXXXEZZVXXXOTTHHHLLSSSSSSSSSLLLLLLQQQQQQQQQOQXXXXXCCCCCICCCCCCCNRRRRRRRRR
KKKKKJJJJJJJLLLLLLLLLLLLEEEEEAAZZZZZZZZZTTTTMMMMMMMMTTXXXDDDDDDDDDDZXXEEZZXXSSTTTTSHLLSSSSSSSSSSLLUULQQEEQEEQQQXXXXXCCCCCCCCCCCCCCNRRRRRRRRR
KKKKKKKJKJJJJLLLLLLLNMLLEEEECZZZZZZZZZZZTTTMMMMMTTTMTTXXXDDDDDDDDDZZZZZZZSSSSSSSTSSSSSSSSSSSSSLLLLUUUUUUEEEEEEEXXXXXXCCCCCCCCCCCCRRRRXRRRRRR
KKKKKKKKKJKKKKLLLLLLNNNNEEECCZZZZZZZZZZZTTTTTTTTTTTTTTTXXDDDDDDDDZZZZZZZZSSSSSSSSSSSMMSSISSSSLLKKKUUUUUUUUEEEXXXPPPPPCCCCCCCCCCZRRRRRRRRRRRR
KKKKKKKKKKKKKKLLLLLLLNNNNNNCCCZZZZZZZZZZZZZZZTTTTTTTTTGXXXDDDVVZZZZZZZZSSSSSSSSSSSSSSMSSZZZZZZZKKUUUUUUUUEEEEXXXPPPPPCCCCZCZZZZZDDDRRRRRRRRR
KKKKKKKKKKKKKKLLLLLNNNNNNNNNCCZZZZZZZZZZZZZZZXTTTGTTGGGGGXDDDVVZZZZZZZZSSSSZSSSSSSSSMMSMMZZZZZZKKDUUUUUUUPPPPPPPPPPPPCCCCZZZZZZTZZDRRRRRRRRR
KKMMMMMMMMMMKKKLLLNNNNNNNNNNCCZJJJZZZZZZZZZZZXXXXGGGGGGGGDDDDVVVZZZZZZZZZZZZZSSSSSSSMMMMMZZZZZZKUUUUUUUUEPPPPPPPPPPPPCCZZZZZZZZZZZDZRRRRRRRR
KKMMMMMMMMMMMMMMLNNNNNNNNNNNNCZJJJJJRRZZZZZZZXXXXFFGGGGGGGVVVVFVVFYZZZZZZZZZZSSSSSSSSSZZZZZZZZKKUUUUUUUUEPPPPPPPPPPPPXCCCZZZZZZZZPZZRRRYYRRR
KKMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNJJJJRZZZZZZZXXXXXGGGGGGGGVVVVFFFFZZZZZZZZZZZZSSSSSSSSKZZZZZZZZKKYUUUUPPPPPPPPPPPPPPPUKRKZZZZZZZZZZIZRMRRRRR
KKMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNJJJRRZZZZZZZXXXXGGGGGGGGGGVVVFFFFZZZZZZZZZZZSSSSSSSSSSZZZZZZZZYYYYYUUPPPPPPPPPUPPPPPUKKKZZZZZZZZZZZZQQORRRR
KMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNJJJRZZZZZZZXXXXGGGGGGGGGVVVVVFFFZZZZZZZZZHHHSSSSSSTSZZZZZZZZZZYYYUUEPPPPPPPPPUPPPPPKKKKKKZZZZZZZZQMQQORRRR
UMMMMMMMMMMMMMMMNLNNCNNNNNNNNNNNJJJVVRZZZZZZZZZZZZZGGGGGGVVVVVVFFTTJZZZZZZHHHHSSRRSTTZZZZZZZZZZZYYYYYEPPPPPPPPPUUUKKKKKKKKKZZZZZKKPPPPPPPPRR
UMMMMMMMMMMMMMMMLLLLCNNNNNNNNNNNRRRRRRZZZZZZZZZZZZZGGGGGGGGVVVVVVVTZZZZZZZZHHHSHRRRZZJZZZZZZZSZYYYYYYYPPPPPPPPPKUKKKKKKKKKKNNNNOOOPPPPPPPPRR
UMMMMMMMMMMMMMMMLLCCCCCCNNNNNNPPPRRRRRZZZZZZZZZZZZZGGGGGGGGGVVFVVVTTZZZZTTTEEHHHHZZZZZZZZZZZZSYYYYYYYYYPPPBBBUUKKKKKKKKKKKNNNNNNOOPPPPPPPPRL
UMMMMMMMMMMMMMMMMLCCCCCGCCCNNPPPPPPPPRRRRVRVZZZZZZZGGGGGGGGGGGFFFFFTTZZTTEEEEEEHSSZZZZZZZZZZZZZYYYYYYYBPPPBBBKKKKKKKKKKKKKNOONNOOOPPPPPPPPQQ
UMMMMMMMMMMMMMMMMMCCCCCCCCCCNPLLLPPPPPRRVVRVZZZZZZZGGGGGGGGLGFFFFFFTTTZTEYEEEEEHHSZZZZZZZZZZZZZZZYYYYYBPPPBKKKKKKKKKKKKKKOOOOOOOOOPPPPPPPPQQ
UUMMMMMMMMMMMMMMMMCCCCCCDDCCULLLPPPPPPRUVVVVZZZZZZZGGGGGGGGGGFFFFFTTTTTTEEEEEEEEEEZZZZZZZZZZZZZSYYYYYYYPPPBBBKKKKKKKKKKKKOOOOOOOOOPPPPPPPPPQ
UUUMMMMMMMMMMMMMMMMCCCCCCCCCUULLLPPPVVVVVVVVZZZZZZZGGGEEEEYYGFFFFFTTTTEEEEEEEEEEEEZZZZZZZZZZZZZYYYYYYYBPPPBBBKYKKKKKKKKKKOOOOOOWWWPPPPPPPPPQ
UUUUMMMMMMMMMMGGGGMCCCCCCCCUULLLLLLPVVVVVVVVZZZZZZZGGEEEEEEEEFFFFFTTTTTEEEEEEEEEEEEEZZZZZZZZZZZWYYYYYYYPPPBBBBKKKKKKKKKKKFOOOOOWWWPPPPPPPPPQ
GGUGMMMMZZMMMMGGGGTCCCCCCCCCUULLLLPPVVVVVVVVVFHHGGGTEEEEEEEEFFFFFFFFFTTTEEEEEEEEEEEEEZZZZZZZZZYYYMYYYYYPPPBBBBBBBKKKKFFFFFOOOOOWWWWWLLPPPPPF
GGGGGMMZZZZZZZGGGGTTCCCCCCUUUULLLLPPRVVVVVVVFFHHGGGEEEEEEEEEFFFFFFFFTTTTEEEEEEEEEEEEEZZZZZZZZZCYYYYYYYYYBBBBBBBBBKKKKKFFFKOOOOWWWWWWMMPPPPPF
UGGGGDDZZZZZZMGGGGTTEECCCCUUULLLLLLPPZVVVVVVFFFFEGGEEEEEEEEEFFFFFFUYUETTEUEEEEEEEEEEEEZZZZZZZZCCCCYYYYYYBBBBBBBFBBBKFFFFFKKOOKWWPPPPPPPPPPFF
GGGGGGGGGGGGGGGGGGTEEEEECCCUULLLLLZZZZZFFVFFFFFFEEEEEEEEEEEEFFFFFUUUUEEEEEEEEEEEEEEEEEEEZZZZCCCYYYYYYYYYBYYBBBFFFBBKFFFKKKPPPPPPPPPPPPPPPPFF
GGGGGGGGGGGGGGGGGGTPEPECCCUUUUUULZZZZZZFFFFFFFFFEFEEEEEEEEEEEFFFFFUUUEZEEEEEEEEEEEEEEEEEEZZCCCYYYYYYYYYYYYYYQFFFFKKKFFFFFKPPPPPPPPPPPPPPPPFF
GGGGGGGGGGGGGGGTTTTPPPPPUUUUUULLLLZZZZZFFFFFFFFFFFEEEEEEEEEEEFFFFFFUUUZEEELEEEEEEEEEEEEEEECCCCYYYYYYYYYYYYYYQQFFFFFKFFFKKKPPPPPPPPPPPPPPPSSF
ZGGGGGGGGGGGGGGTTTKPPPPPQUUULLLLLLLLLLLILFFFFFFFFFFFFEEEEEEEEFFFFFFFUUUUUUUTEEEEEEEEEEEEEEECVCCYYYYYYYYYYYYYQFFFFFFFFFFFFKPPPPPPPPWWWWWWWWSS
GGGGGGGGGGGGGGGTTKTPPPPQQQUQBBLLLLLLLLLLLFFFFFFFFFFFFEEEEEEEBHFFFFYYUUUUUUUTEEBBBBBBBBBEEEECVCCYYYYYYYYYYYYQQQFFFFFFFFFFFKPPPPPPPPWWWWWWWWSS
GGGGGGGGGGGGGGGTTTTQQQPQQQQQQQJJLLLLLLLLFFFFFFFFFFFFEEEEEEEEHHHFXFUUUUUUUUUTEEBBBBBBBBBEECCCVCCYYYYYYYYYYYYYQQQQFFFFFFFFFFPPPPPPPPWWWWWWWWSS
GGGGGGGGGGGGGGGTTTTQQQQQQQQFFLLLLLLLLLLLLFFFFFFFIFYYPPEEEHHHHHHHUUUUUUUUUUUEEEBBBBBBBBBEEEVVVCCYYYYYYYYYYYYYQQQFFFFFFFFFFFPPPPPPPPWWWWWWSSSS
GGGGGGGGGGGGGGGTTTTQQQQQQQQQFLGLLLLLLLLLLFFFFFFFCFYCPPEHHHHHHHHDUUUUUUUUUUUUUEBBBBBBBBBEEEVVVCYYYYYYYYYYYYYYYFFFFFFFFFFFFFPPPPPPPPWWWWWWSSSS
GGGGGGGGGGGGGGGTTTTQQQQQQQQFFLLLLLLLLLLHFFFFFCCCCCCCPPPPPPHHPZZDDUUUUBBBBBBBBBBBBBBBBBBEEETEVVVVVVVYVYYYYYKKKKKFFFFFFFFFFFPPPPPPPPWWWWWWSSSB
GGGGGGGGGTTTTTPTTTTTTQQQQQQQQELLLLLLLLLHHCFFFCCCCCCCPPPPPHHHPPZDDDDUUBBBBBBBBBBBBBBBBBBEEEEEEVVVVVVVVVYYKKKKYKKKFFFFFFFFFFFFMMWWWWWWWWWWDSSB
AAAAGGGGGSXTTTPTHHHHHQQQQQQQEEEELLLLLLLHCCCCCCCCCCCCPPPPPPPHPTDDDDDUABBBBBBBBBBBBBBBBBBEEEEEEVVVVVVVVVYYYKKKYYKKKFFFFFFFFFMMMMWWWWWWWWWWDDSB
AAAAGGGGGSXTDDSAHUHHHQQQQQEEEEEEELLLZZLHCCCCCCCCCHHPPPPPPPPPPDDDDDDDDBBBBBBBBBBBBBBBBBBBBBBVVVVVVVVVVVVYYKKKYOYKKFFFFFFMMMMMMMWWWWWWWWWWDDSB
AAAAAASSSSSSSSSHHHHHHHHQQQEEEEEEELLLZZZCCCCCCCCCCHHPPPPPPPPPDDDDDDDDDBBBBBBBBBBBBBBBBBBBBBBVVVVVVVVVVVVYYKKYYYYKFFFJQFFQNNNNMMWWWWMWWWWWMDSB
AAAAAASSSSSSSSSHHHHHHHQQQQEEEEEENNZZZZZCCCCCCCCCHHHHHPPPPPPPDDDDDDDDDBBBBBBBBBBBBBBBBBBBBBBNVVVVVVVVVVVYYYYYYYKKKKJJQQQQNNNNMMWWWWMMMMMMMMBB
AAAAAASSSSSSSSSSHHKKHKKQQEEEEEENNNNZZZZCCCCCCCCHHHHHPPPPPPPPDDDDDDDDDBBBBBBBBBBBBBBBBBBBBBBBVVVVVVVVVVVYYYYYYYYYYKJJJJJNNNNNNRWWWWMMMMMMMBBB
AAAAAASSSSSSSSSSHHKKKKKQQQEEERRNNNNZZZZZCCCCCCCCHPPPPPPPPPDDDDDDDDDDDBBBBBBBBBBBBBBBBBBBBBBBBVVVVVVVVVVYHYYYYYYYFJJJJJJNNNNRRRWWWWMMMMMMMBBB
AAAAASSSSSSSSSSSXHKKRRQQQQEEEERRNZZZZZLZZZKKKCCPPPPPPPPPPPPPOODDDDDDDDDDDGGGTTBBBBBBBBZZZBBBBBVVVVVVAAAAAAYYYYVYJJJJJJJNNJNRCCWWWWMMMMMMMBBB
AAAAASSSSSSSSSSSRRRRRRRBQEERRRRZZZZZLLLZZLKKKKPPPPPPPPPPAAAYAODDDDDDDDDDDGGGTTBBBBBBBBBBBBBBBBVVVVVVAAAAAAYYYYYJJJJJJJJJJJJCCTWWWWMMMMMMMBBB
ALAVVSSSSSSJSSSSRRRRRRRRARRRRRRRZZZZZZLLLLKKKKPPPPPPPPAAARAAADDDDDDDDDDDDDGGTTBBBJJBBBBBBBBBVVVVVVVAAAAAAAAYYYYJJJJJJJJJJCCCCCWWWWMMMMMMMMBB
VVAVVVVSSSVSSSSSZRRRRRRRRRRRRRZZZZZZZLLKLLKKKKKKPPKPPPAAAAAAAADDDDDDDDDDGGGGTTBBBAABBBBBBBBBVVVAAAAAAAAAAAAYJJJJJJJJJJJJJCCCCCWWWWMMMMMCMCCC
VVVVVVVVVVVVSVOSRRRRRRRRRRRRRZZZZZZZZEGKKKKKKKKKKKKPAAAAAAAAAADDDDDDDDDDGGGTTTGAAAABBBBBBBBBVXVZAAAAAAAAJJJJJJJJJJJJJJGJJVCCCCWWWWMMMMCCCCCC
ZZVVVVVVVVVVVVOOORRRRRRRRRREEEEEEEZZEEKKKKKKKKKKKPPPEAAAAAAAAACCDDDDDDDDGGTTTTAAAAAABBBBBBBIIAAAAAAAAAJJJJJJJJJJJJJJJJGGGGCCCCCCCCCMMCCCCCCC
ZZZVVVVVVVVVVVZZZRRRRRRRREREEWEEEEEEEEEKKKKKKKKKKPPPEAAAAAAAACCCAADDDDDGGGTTTTAAAAAABBBBBBBIIIITAAHHHAAJJJJJJJJJJJJJGJGGGGGCCCCCCCCCCCCCCCCC
ZZZVVVAAVVVVVZZZZRRRRRRRREEEEWEEEEEEEEEKKKKKKKKKFPPPEEEEEEAACCCCUUZZZDDQQQTTTAAQQQQQABDBBBBIITTTAHHHAAAJJJJJJJJJJLGGGGGGGGGGGGCCCCCCCCCCCCCC
ZZZZVVAAAVZVZZZZZZERRTRREEEEEEEEEEEEEEEKKKKKPPPFFPPPEBEEEECCCCCUUUZZZZQQQTTTTQQQQQQQABBBHBJTTTBTTHHHHHHHJJJJJJJJLLGFGGGGGGGGGGCCCCCCCCCCCCCC
ZZZZVZGGZZZZZZZZZZZZTTRRREEEEEEEEEEEEEEKKKKPPPPPFPPPPBKEEECCCUCCUUZZZZQQQQQQQQQQQQQQAUUUWWWTTTTTGHAHXXHJVCJVVJJLLLLGGGGGGGGGGGGGGGCCCCCCCCCC
ZZZZZZZGZZZZZZZZZZZQQTTTREEEEEEEEEEEEEEEKKPPPPPPPPPPPBKCECCCCUCCUUZZZZQQQQQQQQQQQQQQQQUUUJWWWTTTHHHHHHHHVCVVVVVLLVLVGGGGGGGGGGGGPGCCCCCCCCCC
ZZZZZZZGZZZZZZZZZZZZQTTTQEEEEEEEEEEEEEEEPPPPPPPPPPPPPBKCCCCCUUUUUUZZZZQQQQQQQQQQQQQQQQUUWWWWWTTTHHHHHHHHVVVVVVVVVVVVGGGGGGGGGGRRRCCCRCCRCCYC
ZZZZZZZZZZZZZZZZZZZQQTQQQQEEQEEEEEEEEEEEEPMPPPPPPOOPPKKCCUUUUUUUUUQQQQQQQQQQQQQQQQQQQQUUUWWWMMTTTMMHHHHHVVVVVVVVVVGGGGGGGGGGGRRRRRCCRCRRCCYF
ZZZZZZZZZZZZZZZZZZQQQQQQQQQQQEEEEEEEEEEEEPPPPPPPPOOKKKKCCURBRRUUUQQQQQQQQQQQQQQQQQQQQQUUWWWMMMMMMMMHHHHVVVVVVVVVVVGGGGGGGGGGGGGGRRRRRRRRYCYY
ZZZZZZZZZZZZZZZZQQQQQQQQQQQQEEEEEBDEEEEEEDPPPDDPKKKKKKKKCRRRRIRUUCQQQQQQQQQQQQQQQQQUUUUUWWMMMMMMMMMMHHHXXVVVVVVVVVGGGGGGGGGGGGGGRRRRRRRYYYYY
ZZZZZZZZZZZZZVVZQMMMQQMYQQQQEEEEEEDDEEEEEDPDDDDDKKKKKKCCCRRRRRRURCQQQQQQQQQQQQQQQQQUUUUUWWMMMMMMBBBBBHBXXVVXVUUKKKKGGGGGGGGGGGGGGRRRRRRRYYYY
ZZZZZZZZZZZZMMVMMMMMMMMYYQYYHHEEDDEEEEEEEDDDDDDDKKKKKKKKCCRRRRRRRCCQQBOOQQQQQQQQQQQUUUUUUUUUMMBBBBBBBBBXXXXXXUUUUKGGGGFFGGGGGGGRRRRRRYYYYYYY
ZZZZZZZZZZZWMMVMMMMMMMYYYYYYYHHHHHEEEEEDDDDDDDIDKKKKKKKKKCRRRRRRCCCQBBBBBBBBQQQQQQQQUUUBUUUMMBBBBBBBBBBXXXXXUUUUUULUFGFFGGGGGGGRFRYYYYYYYYYY
ZZZZZZZZZZZWMMMMMMMMMYYYYYYYYHHHHDEEEEEDDDDDDDKKKKKKKKKKKCCCCRCRCCCIVBBBBBBBQQQQQQUUUUUBBBMMMMBBBBBBBBBXXXXUUUUUUUUUUFFFFGGGFGFFFFFYYYYYYYYY
ZZZZZZZZMMMMMMMMMMMMMYYYYYYYHHHHHDDDDDDDDDDDDDKKKKKKKKKCCCCCCRRRCCCIBBBBBBQQQQQQQQUUVNNNBBBMMMBBBBBBBBBXXXXUUUUUUUUUUFFFFFFFFFFFFFFYYYYYYYYY
ZZZZZZZZZMMMMMMMMMMMYYYYYYYYHHHHYYKDDDKKDDDDDDKKKKKKGGKCCCCCCCCCCCCIIBBBBBBQQQQQOGUUVNNNBBBBNNBBBBBBBBBBXXXUUUUUUUUUUFFFFFHHHHFFFFYYYYYYYYYY
ZZZZZZZZZMMMMMMMMMYYYYYYYYYYYYYYYYKDKDKDDDDDKDKKKKKKGGGGCCCCCCCCCCIIBBBBBBBBQQQOOOOONNNNBNNBNNNNBBBBBBBXXXUUUUUUUUUUUFFFFHHHHFFHHFHYYYYYYYYY
ZZZZZZZZZMMMMMMMMYYYYYYYYYYYYKKKKKKKKKKDDDDKKKKKKGGKGGGGGCCCCCCIIIIIBBBBBBBBQQQQOOOENNNNNNNNNNNNBBBBTTBXXXUUUUUUUUUUUFFFFFFHHHFHHHHBYYYYYYYY
ZZZZZZZZZMMMMMMMMYCYYYYYYYYYYYYKKKKKKKKKKKKKKGKKGJGGGGGGGGGGCCCOIIIBBBBBBBBBBKQOOOOOONNNNNNNNNNZBBBBBTTTTTUUUUUUUUUUFFFFFFHHHHHHHHHYYYYYYYYY
ZZZZZZZZMMMMMMMMYYYYYYYYYYYBYBBWWWKKKKKKKKKKKGGGGGJGGGGGGGGGGCOOOBBBBBBBBBBBKKKOOOOOONNNNNNNNNNNBBTTTTTTTTAUUUUUUUUUFFFFFFHHHHHHHHHHHYYYYYYY
ZZZZZZZZOOOMZMMZZZYYYYYYYYBBBBBWWWWKKQKQKKKKGGGGGGGGGGGGGGGGGCOOBBBBBBBBBBBKKKOOOOOOONNNNNNNNNNNBBTTTTTTTAAUUUUUUUUFFFFFFFFFHHHHHHHHHYYYYYYY
ZZMZMZZOOOOOZMMZZZYYYYYYYYYBBBBWBWWKQQQQQKKKGGGGGGGGGGGGGGFGFFFOOOOBOOBBBBBBKOOOOOOOONNNNNNNNNNNNBBBTTTTTTTUUUUUUUFFFFFFFFFFFFHHHHHHHYYYYYYY
ZLMMMOOOOOOOZZZZZYYYYZYYYYYBBBBBBBWKKKQQQQKKKKGGGGGGGGGGGGFFFFFFOOOOOOOBKKKKKOOOOOOYYNNNNNNNNNNNNNNNTTTTTVTTOFFFFUFFFFFFFFFFFHHHHHZZZZYYYYYY
MMMMMOMMOOOOBZZZZZYYZZYZBBBBBBBJBHWHQQQQTTTKKKKGGGGGGGGGGFFFFFFFOOOOOOOBKKKKKOOOOGOXYYNNNNNNNNNNOEOOTTTTTTOOOOFFFFFFFFFFFVVFFFHZZZZZZZYZYYYY
MMMMMMMMOOOOBZZZZZZYZZZZZZZBBBJJJHWHQQQQTTTTTGGGGGFFFGGGFFFFFOOOOOOOOOOOHHHHHGGGOGGXYYYNNNNNNPPPOOOOOOTOOOOOOOFFWWWWFFFFFFVVVZZZZZZZZZYZYYYY
MMMMMMMMOOOOBZZZZZZZZZZZZZZBJJJJJHHHHQQTTTTTTTDGGFFFFFFFFFFFFOOOOOOOOOOHHHHHGGXGGGGXXYYNNNNNPPPPPPOOOOOOOOOOOFFWWWWFFFFFVVVVVZZZZZZZZZZZZYYY
MMMMMMMOOOOBBZZZZZZZZZZZZZZZJJJJJHHHHHTTTTTTTTDDDDFFFFFFFFFPPFOOOOOOOOOHHHKKXXXXXXXXXXNNNNNNPPPPPPOOOOOOOOOIOOOOWWWWWWFFFVVVVZZZZZZZZZZZZYYZ
MMMMMMOOOBBBBZZZZZZZZZZZZZJJJJJJJHHHHTTTDTTTTDDDDDFFFFFFHFFFFFOOOOOYOOHHHHHXXXXXXXXXCXXNGGNPPPPPPPOOOOOOOOIIIWWWWWWWWWWWFVVVVZZZZZZZZZZZZZZZ
MMMMMMOOBBBBBBZZZZZZZZZZZZZZJJJJJJJJHHHTDTTTTDDDDDFFFFFFFFFFFOOOOOOYYHHHHHXXXXXXXXXXXTUUUUNPPPNPPOOOOOOOOOOIWWWWWWWWWWWWWWWZZZZZZZZZZZZZZZZZ
MMMMMMMOOBBBBBBBZZZDDDZZZJJJJJJJJJJJHHHDDTTTTDDDDDFFFFFFFFFFFOOOOOYYYHHHHHHHXXXXXXXXXTUUUNNNNNNNOOOOOOOOFFRRWWWWWWWWWWWWWRRRZZZTZZZZZZZZPZZZ
MMMMMMMBBBBBBBBBZZZZDDDDJJJJJJJJHHJHHHHDDDDDDDDDDDFKFFFFFFLFFFOOOOYYYYHHHHHHXXXXXXXXXXUUUNNNNNNNNOOFFFFFFRRRRRWWWWWWWWWWWWWRRZZTZZZZZZZZPZPP
MMMMMMMMMBBBBBZZZZZDDDDDDDEJJJJJHHHHHHHDHDDDDDDDDFFKFFFFFFFFFOOOOOOYYYYHHHHHCXXXXXXXXUUNNNNNNNNNNNNFFFFFFRRRRRWWWWWWWWWWRWWRZZTTZZIPPZZPPPPP
MMMMMMMMBBBBBBZZZZDDDDDDDDDJJJJJHHHHHHHHHDDDDDDDDFFFFFFFFFFFOOOOOODDYYYYHHHHCCXXXXXXXUUUUNNNNNNNNNNFFFFFFSRRRRRWWWWWWWWRRRRRZZZZZPIPPPPPPPPP
NMMMNMNMBBBBBBBZZZZZDDDDDDDHJHHHHHHHHHHHRHDDDDDLFFFFFFFFFFFFOOOOODDDYYYYHYYYYXXXXXXXXXUUUNNNNNNNNNNNFFFFSSSSRRWWWWWWWWWRRRRRZZZZPPIPPPPPPPPP
NNNMNMNNBBBBBBBBZZZZPDDDDDDHHHHHHHHHHHHHHHLLLLLLLZFFFFFFFFFFOOOOODYYYYYYYYYYYYXXXXXXXXUUUUNNNNNNNNNFFFFFSSSSSSKKWWWWWWWRRRRRZZZZPPPPPPPPPPPP
NNNNNNNNNBBBBBBBZZZZZDDDDDDHHHHOHHHHHHHHHHHLLLLLLZZFFFFFFFFFFOOYYYYYYYYYYYYYYYYXXXXXXUUUUUNNTNNNNNFFFFFFFSSSSSSWWBWWWWWWZRZZZZZZZZPPPPPPPPPP
NNNNNNNNNBBBBBBBBZZZZZDDDDDHHHOOOOHHHHHHHHHHHLLLFFFFFFFFFFFFFOOYYYYYYYYYYYYYYYYXXUJXXUUUUUUNNNNWWFFFFFFSSSSSSSSSSWWWWWWWZZZZZZZZZZPPPPPPPPPP
NNNNNNNNBBBBBBBUUUZZZZDDDDHHHOOOOOHHHHHHHHHHHHHHHHFFFLFFOOOOOOOOOYYYYYYYBOYYYYYYYUUXUUUUUUUNNWWWFFFFFFFFFSSSSSSSSSSWWWZWZZZZZZZZZZZPPPPPPPPP
NNNNNNNNNBBBBBBBKUKRKKKDDHHHHHOOOOHHHHHHHHHHHHHHHHHFFFFFOOOOOOOOOOOZYYRYOOOYYYYYYUUUUUUUUUUUUUWWWFFFFFFFSSSSSSSSSSWWWZZZZZZZZZZZZZZZPPPPPPPP
NNNNNNNNYBBJBBXXKKKRKKPPPHHHHHHOOOOOHHHHHHHHHHHHHHIFFFFFOOOOOOOOZZOZYYLLOOOOOOYOUUUUUUUUUUUUUUWFFFFFFGGQQSSSSSSSSSSSWZZZZZZZZZZZZZZPPPPPPPPP
NNNNNNXBBBBBXXXKKKKRKKPPHHHHHHHOOOOOHHHHHHHHHHHFFFFFFFFFKOOOOOZOZZZZZZLLLLOOOOOOCUUUUUUUUUUUUUWWWVFFFFGGGSSSSSSSSSSSSSSZZZZZZZZNNNBPPPPNPPPP
NNNNNNBBBBBXXKXKKKKKKKKHHSHHHHOOOOOOHHHHHHHHHHHHHHFFFFZKKOKKZZZZZZZZZLLLLOOOOOOOCUUKUUUKUUUXVUWVVVVGGGGGGGGSSSSSSSSSSSSZZZZZZZZZNBBBPNNNNPPP
NNNNNTTTBBBXXKKKKKKKKKSHHSHHHHHOOOOOOOHHHHHHHHHHHHFFFFZKKKKKZZZZZZZZZZLLLLLOOOOOOOKKUKKKUUVVVVVYVVVYGGGGGGGGSSSSSSSSSSSSZZZZZZZZNNNBPNNNSPPP
NNNNNTTTTMBXKKKKKKKKKKSHSSSHHHHOOOOOOOHHHHHHHHHHHHHFZZZKKKKEEEZZZZZLLLLLLLLOOOOOKKKKUKKZUVVVVVVVVVVYGGGGGGSSSSSSSSSSSGGGGGGZZZZZNNNNGNNNNPNN
NTTNTTTTTTBXKKKKKKKKKKKKSSSHHHXOOOOOOPFFHHFHHFHHHHHZZXZZKKKEEEEEZPUULLLLLLLOOOOOZKKKKKZZCVVVVVVVVVVGGGGGGSSSSSSSSSSSSGGGGGGZGZZZNNNNNNNNNNNN
TTTNTTTTTTTTKNKKKKKKKKKKKKKVPHPFFOOOPPFFHHFFHFHHHHZZZXXXEEEEEEEEPPPUULLLLLOOOOOOZZKKZZZZZQVVVVVVVVVMGGGGGGMMMMSSSSSSSGGGGGGGGGZNNNNNNNNNNNNN
TTTTTTTTTTTITTTKKKKKKKKKKKKVPPPPPPPPPPFFFFFFHFFFFFXXXXEEEEEEEEPPPPPLLLLLLLLOPOCCZZKZPZZZZVVVVVVVVVVMMGGGGGMMMMSSSSGSSGGGGGGGGGZNNNNNNNNNNNNN
TTTTTTTTTTTTTEEEKKKKKKKKKKKPPPPPPPPPPPPFFFFFFFFFFFXXXXXXEEEEEPPJPPPLPPLLPPPPPPCZZZZZZZZZZVVVVVVVVVVMMMGGMMMMMSSGSSGGGGGGGGGGNZZZUNNNNNNNNNNN
TTTTTTTTTTTTTFEEEKKKKKKKKKKPPPPPPPPPPPPFFFFFFFFFFXXXXXXXXEEEXPPPPPPLPPPLPPPVPCCPZZZZZZZZZZVVVVVVVVVVMMGGMMMMMGGGGGGGGGGGGGGGNNNUUNNNNSNNNNNN
TTTTTTTTTTTTFFFEEFKKKKKHKKKPPPPPPPPPPPPFPPFFFFFFFXXXXXXXXEXXXOOPPPPPPPPPPPPPPPPPZZZZZZZZZZZVVVVVVMMVMMMMMMMGGGGGGGGGGGGGGGGGNNNNNNNSSSSNNNNN
TTTTTTTTTTTTTFFFFFZKKKWLLLKGPPPPPPPPPPPPPFFFFFFXXXXXXXXXXXKXXXPPPPPPPPPPPPPPPPPPZZZZZZZZZZZZVVVMMMMMMMMMMMMGGGGGGGGGGGGGGGGGGNNNNNNNSMSSNNNV
TTTTTTTTTTTFFFFFFFFFFFLLLLPPPPPPPPPPPPPFFFFFFFFFXXXXXXXXXXXXXXXPPPPPPPPPPPPPPPPPZZZZZZVZZZZZZZVMMMMMMMMFMMGGGGGGGGGGGGGGGGGGGNNNNNNNNMNSNVVV
TTTTTTTTKKKKFFFFFFFFFFLLLLLLZPPPPPPPPPPFFFFFFFFFXXXXXXXFXXSSSXPPPPPPPPPPPPPPPPPPZZZZZVVVZVZZZMMMMMMMMMFFFFFGGGGGGGGGGVGVVVVVGNNNNNNNMMNNNNNV
TTTTTTTKKKKKKFFFFFFFFFLLLLLLZZYYPPPPPPPPFFFFFRRFXXXXXXFFXXSSSSPPPPPPPPHPPPPPPPZZZZZZZQVVVVVVZMMMMMMMMMFFFFFGGGGGGGGVVVVVVVVNNYNNNNNYSSSSSSNS
TTTBBBBBKKKKFFFFFFFFFFFLLLLLLLYYYPQQPYPPFFFFRRRRRXXXXXFFFTTSSSPPPPPHHHHHPHPPJJJBLBBBVVVVVVVVMMMMMMMMMMFFFFFFGGGGGGNNVVVVVVVNYYYYYYYYSSSSSSSS
TTBBBBBBBBKFFFFFFFFFFFLLLLLLLYYYYYQYYYYFFFFFFRRRRXXXXXXXFTTTTDDDDHHHHHHHHHHHHJJBBBBBVVVVVVVVVMMMMMMMKFFFFFFFFGGGGGNNVZZVVVNNYYYYYYYSSSSSSSSS
BBBBBBBBBYKFFFFFFFFFFFLLLLLLYYYYYYYYYYFFFFRRRRRRRRRXXXXFFFTTDDDDDHHHHHHHHHHHHHBBDKBBVVVVVVVVMMMMMMKKKFFFFFFFFFFGFGNNNVVVVVNNYYYYYYSSSSSSSSSS
BSBSSSSUYYKFFFFFFFFFFLLVVVVYYYYYYYYYYYFFFFFRRRRRRRRRRGXTTTTTTDDDDIHHHHHHHHHHDDDDDKKKVVVVVVVVMMMMMKKKKKKTFFFFFFFFFNNNNVVVVVNTTRYPYYSSSSSSSSSS
SSSSSSSSYYYYYYFFFFFFFVLVVVVVVYYYYYYYYYYFFFFRRRRRRRRRRRTTTTTTTTDDDDDHHHHHHHHHHDDDKKKKVVVVVVVVVVMMMMKKKTTTFFFFFFFFFFNNNNNVVVNNTRYYYSSSSSSSSSSS
SSSSSSSUUYYYYYFFFFFHVVVVVVVVVVYYYYYYFFFFFFRRRRRRRRRRRRRTTTTTTTDDDDDDHHHHHHHHQHKKKKKKVVVVVVVSSMMMMMMEEETMFMVVYXFAAFNNNNNNVNNNTTTTYSSSSSSSSSSS
SSYSSSUUUYYYYYWFFFFVVVVVVVVVVYYYYYYYFFFRRRRRRRRRRRRRRRRTTTTTTTDDDDDDDDDDHHHHHHKKKKKKKVVVVVSSSMMMMMMEEEMMMMYYYYFAAAYNNNNNNNTNTTTTSSSSSSSSSSSS
SSSSSSSSUYYYYNSFFFFVVVVVVVYYYYYYYYYYKFFRRRRRRRRRRRRRRRTTTTTTTDDDDDDDDDDDHHHHHIKKKKKKIIIVVVSESMMMMMMEMMMMMMMYYYYYAAYNNNNNTTTTTTTTTSSSSSSSSSSS
SSSSSSCCYYYNNNSSSSSGGVVVVEEYYYYYYYYYKFFRRRRRRRRRRRRRRRTTTTTDDDDDDDDDDDDTHHHHHIKIKKIIIIIIIIEEMMMMMMEEEMMMMMMYYYYYYYYNYNNNTTTTTTTTYYSSSSSSSSSS
SSSSSSCCCCIIIIGGSSSGVVVVVVVYYYYYYYYYKFFIIRRRRRRRRRRRRRRRTTTTTDDDDDDDTTDTHHHAHIIIIIIIIIIIIIIEEMEEEEEEEMMMMLYYYYYYYYYYYYNNNTTTTTYTYXYMSSSSSSSS
SSSSTTCTCIIIIIIISSGGGVVVOOOOOYYYYYYYYIIIIIRRRRPRRRRRTRRRTTTTTDDDDDDDTTDTTHBAAIIIIIIIIIIIIIIEEEEEEEEEEEMMMMYYYYYYYYYYZZNNNTTTTTYYYXYMSSSSSSSS
TTTTTTTTTIIIIIIIIGGGGGVVVVYYYYYYYYYYYIIIIIRRRRRRRRRRRRRTTTTTTTDDDTDDDTTTTAAAAAIIIIIIIIIEEIEEEEEEEEEEEEMMMMMMMYYYYYYYZZZZZZZTTTYYYYYYYSSSQSSS
TTTTTTTTIIIIIIIIIGGGGGVVVVGGYYYYYYYYYIIIIHTRRRHRRRRRRRHTTTTTTTTTDTTTTTTTTTAAAAIIIIIIIIIEEEEEEEEEEEEEEEMMMMMYYYYYYYYYYZZZZZZTTTTYYYYYSSSSQSSS
TTTTTTTTIIIIIIIIIIIGGGGGGGGGGYYYYYYYIIIIIHRRRHHHRRRRRRHTTTTTTTTTTTTTTTTTTTAAIAIIIIIIIIIIEEEEEEEEEEEEEEMMMMMMYYYYYYYYYYTZZZTTTTTTTYYYYYSSSRSR
TTTTTTTTIIIIIIIGGGGGGGGGGGGGYYYYYYYYYIIIIHHHHHHHHHHHHHHHHHTTTTTTTTTTTTTTTAAAIIIIIIIIIIIEEEEEEEEEEEEEEEEEEEMYYYYYYYYYYYTXZZTTTTTTTTYBYRSRRRSR
TTTTTTTXIIRIRIIIGGGGGGGGGGGGYYYYYYEYIIIIIHHHHHHHHHHHHHHHHHHTTTTTTTTTTTTTAAAIIIIIIIIIIIEEEEEEEEEEEEEEEEEEEEMYYYYYYYYYTTTTTTTTTTTTTTBBYRRRRRRR

122
2024/day-12/solution-1.sh Normal file
View File

@ -0,0 +1,122 @@
#!/usr/bin/env bash
FILE=test-input-1
read -r -a MAP_ARRAY <<< "$( < "$FILE" paste -s -d "" | sed -E 's/(.)/\1\ /g' )"
MAP_LEN=${#MAP_ARRAY[@]}
MAP_WIDTH=$(( $( head -1 "$FILE" | wc -c ) -1 ))
MAP_HEIGHT=$( < "$FILE" wc -l )
printf "Len: %s Width: %s Height: %s\n" "$MAP_LEN" "$MAP_WIDTH" "$MAP_HEIGHT"
# Check if tiles are adjacent and do not violate bounds
check_adjacent () {
# Check for out of map bounds
if [[ $2 -lt 0 ]] || [[ $2 -gt $MAP_LEN ]]
then
return 1
fi
DIFF=$(( $2 - $1 ))
# Valid adjacent distances
case "$DIFF" in
1|-1|"${MAP_WIDTH}"|-"${MAP_WIDTH}")
:
;;
*)
return 1
;;
esac
# Check for left/right bounds
if [[ $DIFF -eq 1 ]] && [[ $(( $2 % MAP_WIDTH )) -eq 0 ]]
then
return 1
fi
if [[ $DIFF -eq -1 ]] && [[ $(( $1 % MAP_WIDTH )) -eq 0 ]]
then
return 1
fi
return 0
}
# Basically recurse over mapping and "consume" all adjacent tiles
check_and_unset () {
IDX=$1
local KV_I=${IDX%% *} # Remove trailing whitespace
if [[ -v KV_CACHE[$KV_I] ]] # Check if tile has been "taken"
then
(( AREA++ ))
VALUE=${KV_CACHE[$IDX]}
printf "max: %s peri: %s area: %s key: %s val: %s\n" "$MAX_PERI" "$PERI_NUM" "$AREA" "$1" "$VALUE" >&2
(( PERI_NUM+=MAX_PERI ))
unset IFS; read -r -a VAL_ARRAY <<< "$VALUE"
for VAL in "${VAL_ARRAY[@]}"
do
(( PERI_NUM-- ))
check_and_unset "$VAL"
done
unset "KV_CACHE[$KV_I]" # "Take" it
fi
}
while read -r CHAR
do
# Get all indexes for a plant
read -r -a CHAR_ARRAY <<< "$(
for (( i=0; i<MAP_LEN; i++ ))
do
if [[ ${MAP_ARRAY[$i]} == "$CHAR" ]]
then
printf "%s " "$i"
fi
done
)"
{
printf "For char %s \n" "$CHAR"
printf "%s " "${CHAR_ARRAY[@]}"
printf "\n"
} >&2
declare -A KV_CACHE
IFS=':'; while read -r VAR1 VAR2
do
KV_CACHE[$VAR1]=$VAR2
done <<< "$(
# Find all adjacent tiles
for (( i=0; i<${#CHAR_ARRAY[@]}; i++ ))
do
NUM_ADJ=0
printf "%s:" "${CHAR_ARRAY[i]}"
for (( j=i+1; j<i+MAP_WIDTH; j++ )) # There can only be MAP_WIDTH number of elements within valid range
do
if check_adjacent "${CHAR_ARRAY[i]}" "${CHAR_ARRAY[j]}"
then
printf "%s " "${CHAR_ARRAY[j]}"
(( NUM_ADJ++ ))
fi
done
printf "\n"
#printf "Num adj for %s idx %s is %s\n" "$CHAR" "${CHAR_ARRAY[$i]}" "$NUM_ADJ" >&2
done
)"
# Iterate through
for CHAR in "${CHAR_ARRAY[@]}"
do
MAX_PERI=3
PERI_NUM=1 # Special head case
AREA=0
check_and_unset "$CHAR"
printf "max: %s peri: %s area: %s\n" "$MAX_PERI" "$PERI_NUM" "$AREA" >&2
printf "%s\n" "$(( PERI_NUM * AREA ))"
done
# Get all plants
done <<< "$( < "$FILE" grep -o '[A-Z]' | sort -u | grep -o '[A-Z]*' )" |
paste -s -d "+" | bc

4
2024/day-12/test-input-1 Normal file
View File

@ -0,0 +1,4 @@
AAAA
BBCD
BBCC
EEEC

5
2024/day-12/test-input-2 Normal file
View File

@ -0,0 +1,5 @@
OOOOO
OXOXO
OOOOO
OXOXO
OOOOO

10
2024/day-12/test-input-3 Normal file
View File

@ -0,0 +1,10 @@
RRRRIICCFF
RRRRIICCCF
VVRRRCCFFF
VVRCCCJFFF
VVVVCJJCFE
VVIVCCJJEE
VVIIICJJEE
MIIIIIJJEE
MIIISIJEEE
MMMISSJEEE

View File

@ -0,0 +1 @@
140

View File

@ -0,0 +1 @@
772

View File

@ -0,0 +1 @@
1930