Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit a89fc09

Browse files
committedDec 12, 2024
2024 day 12 part 1
1 parent 7943538 commit a89fc09

File tree

2 files changed

+176
-0
lines changed

2 files changed

+176
-0
lines changed
 

‎2024/input/12.txt

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
UUUUUUUUUUUUUUUUHHHDDDDDDDDDDDDLLLLLLLLLLLLSSSSSSSBBBBBBBBBBHHHHHHKKHHHHHHHHHHHHHZZZZZZMMMMMMMMMMMMMVVVVVVVVVVVVVVVVHHHHHHUUUUUUUUTTTTTTTTTT
2+
UUUUUUUUUUUUUUUUUHHDDDDDDDDDDDLLLLLLLLLLLXLSSSSSSSBBBBBBBBBBBHHHHHHHHHHHHHHHHHHHHHHZZZZMMMMMMMMMMMMMVVVVVVVVVVVVVVVVHHHHHUUUUUUUTTTTTTTTTTTT
3+
UUUUUUUUUUUUUUUUUUHDDDDDDDDDDDLLLLLLLLLLLLFLLSSSSSBBBBBBBBBBBBHHHVVHHHHHHHHHHHHHHBHZZMMMMMMMMMMMMMMMDVVVVVVVVVVVVVVVWWHHHUUHUTTTTTTTTTTTTTTT
4+
UUUUUUUUUUUUUUUUDDDDDTDDDDDDLLLLLLLLLLLLLLLLFFSSSBBBBBBBBBBBBBBVVVHHHHHHHHHHHHHHHHHZZZMMMMMMMMMMMMMDDVVVVVVVVVVVVVVVHHHHHHHHUUTTTTTTTTTTTTTT
5+
UUUUUUUUUUUUUUUDDDDDDDDDDDDDDELLLLLLLLLLLLLLFFFSFBBBBBBBBBBBBVVVVVVVHHHHHHHHHHHZHHHZDZMMMMMMMMMMDDDDDDVVVVVVVVVVVVFHHHHHHHHHUUTTTTTTTTTTTTTT
6+
UUUUUUUUUUUUUUUDDDDDDDDDDDDDDEELLLLLLLLLLLLLFFFFFBBBBBBBBBBBBBVVVVVVHHHHHHHHHHZZHHXDDDDDMMMMMMMMMDDDDDDDVVVVVVVVVVHHHHHHHHHHUUUTTTTTTTTGGTTT
7+
UUUUUUUUUUUDUDUDDDDDDDDDDGGDDEEELLLLLLLLLLLFFFFFFFFFBBBBBBBBBBVVVVVVHVHHHHHHHHXXXXXDDDDMMMMMMMMMMDDDDDDVVNVVVVVVVVHHHHHHHHHHUUUTTTTTTTTTGGTT
8+
UUUUUUUUDDUDDDDDDDYDYDDDGGGGGEELLLLLLLLLLLFFFFFFFFFBBBBBBBBBBBVVVVVVVVVVHHHHHHHXXXXXXXDXXMMMMYYMYDDADDDLVVVVVVVVVHHHHHHHHHHHHUUTTGTGTTTTGGTT
9+
UUUUDDUDDDUDDDDDDDYYYYZZGGGGGEEEELLLLLLLLLFFFFFFFFBBBBBBBBBBQQVVVVVVVVVVHHHHHHHXXXXXXXXXMMMYYYYYYYYYDDDDTVVVVVVVVVHHHHHHHHHHHUUUGGGGTTGGGGTT
10+
UNUUUDUUDDDDDDDDDYYYYYYZZGGGGEEEELLLLLLFFEFFFFFFFFFFFBFSSBBBBVVVVVVVVVVVVHHHHHHXXXXXXXXXMMMMMYYYYYYYYDDDDVVVVVVVVVVHHHHHHHHHUUUUUUGGGGGGGGGG
11+
DUUUDDDDDDDDDDYYYYYYYYYZZGGGGGGLLLLLLLLLFFFFFFFFFFFFFFFSSSSBBBVVVVVVVVVVVVVHHHHXXXXXXXXXMMMYBYYYYYYYYDQQVVVVVVVJVVVHLHHHHBHHUUUUUUGGGGGGGGGG
12+
DDDDDDDDDDDDDDYYYYYYYZZZZSSSGGGLLJLLLLLLFFFFFFFFFFFFFFFFFSSSSSSSSSVVVVVVVVHHHXXXXXXXXXXMMMMYYYYYYYYYYYYYYYVVVSVJVZZHZSSHHHUUUUUUUGGGGGGGGGGG
13+
DDDDDDDDDDMDDYYYYYYYYYSSSSSSGGGGGJLLLJJJJJFFFFFFFFFFFFFFFSSSSSSSSSVVVVVVVVVVHVXXXXXXXXMMMMYYYYYYYYYYYYYYYYVVVSZZZZZZZSSSHHBUUUUUUUGGGGGGGGGG
14+
DDDCDDDDMMMMDYYYYYYYYSSSSSZSGGGGGOOOOOOOOOOFFFFFFFFFFFFCFFFSSSSSSSVVVVVVVVVVVVXXXXXXXMMMMYYYYYYYYYYYYYYYYYVVSSZZZZZZZSSSSHBBBUUUUUUGGGGGGGGG
15+
CCDCCCCDMMMMMZYFFFYSSSSSSZZGGRRRGOOOOOOOOOOOOOOOOOFFFFFFFFFSSSSSSSSVVVVVVVVVVVXXXXXXMMMMMMMMYYYYYYYYYYYYYYYYYSSZZZZZZSSSSBBBBBUUUUUUGGGGGGGG
16+
CCCCCCCDMMMMMMFFFFSSSSSSSZZRGRRJJOOOOOOOOOOOOOOOOOFFFFFKKSSSSSSSSSPVVVVVVVVVFVVXXXXXMMMMMMMYYYYYYYYYYYYYYYYYSSSZZZZZSSSBBBBBBUUUUUUGGGGGGGGG
17+
CCCCCCCMMMMMMMMFFSSSSSSSYYYRRRRRJOOOOOOOOOOOOOOOOOKKKFKKKSSSSSSSSVVVVVVVVVVVFFVVXXWWMMMMMMMYPPIIYYYYYYYYYYSSSSSSSSSSSSSSBBBBBUUUUUUGGGGGGGGG
18+
CCCCCCQMMMMMMMMMMSSSSSSSYOOOOOOOOOOOOOOOOOOOOOOOOOFKKKKKKSSSDSSDDDDVHHHVVVVVFFFXXXWWWMMMMQMMPPIIIYYYYYYYSSSSSSSSSSSSSSSSSBBBBUUUUUUUGGGGGGGG
19+
CCCCCMMMMMMMMMMMMYYSSYYYYOOOOOOOOOOOOOOOOOOOOOOOOOQQKKDDDDDDDDDDDDDHHHHVVVVYYFYZXXWWMMEEMMMMPPIIIIIIYYYSSSSSSSSSMMSSSSSSSSSSBBUUUUUUUUGGGGGG
20+
CCCCCMMMMMMMMMMMMMSSSSYYYOOOOOOOOOOOOOOOOOOOOOOOOOQQQKKLLLLDDDDDDDHHHHHHYVYYYYYYXWWWMEEEMPPPPPPIIIIFYYYSSSSSSSMMMMSSSSSSSSSSBBBUUUUUUUUGJGGG
21+
CCCCCMRMMMMMMMMMMWWWWWYYYOOOOOOOOOOOOOOOOOOOOOOOOOQQQKKLKLLLDDDDDDHHHHHYYYYYYYZZJWWWWCCCMPPPPPIIIIIFISYSSSSSMMMMMMSSSSSSSSSSBBBUUUUUUUGGJJGG
22+
CCCCCMMMMMMMMMMMWWWWWWWWYOOOOOOOOOOOOOOOOOOOOOOOOOQQQKLLLLLDDDLDDDDHHHYYYYYYJJJJJJJWCCCCCPPIIIIIIIIIISSSJJJSMMMMMMSSSSSSSSSSBUUUUNNNNNNGJJJG
23+
CCCCCCMMMMMMMMWWWWWWWWYYYOOOOOOOOOOOOOOOOOOOOOOOOOQNNKLLLLLIDLLDDHHHHHYYYYYYYJJJJCCCCCCCCPIIIIIIIIIISSSSJJJMMMMMMMSSSSSSSSSSUUUUUNNNNWNNNJJJ
24+
CCQCCCMMMMMMMMWWWWWWWWWYYOOOOOOOOOOOOOOOOOOOOQQNNNNNNLLLLLLLLLLLDDHHHHXYYJYYJJJJJJCCCCCCCIIIIUUIIISSSSSJJJMMMMMMMMMMMMMMMBNNUUNNNNNNNNNNNJNN
25+
QQQCCCCCMMYMMWWWWWWWWYYYYOOOOOOOOOOOOOOOOOOOOQQNNNNNNLLLLLLLLLLLHHHHMXXYYJJJJJJJJJJZCCCCCIIIUUIIISSJJJJJJJJMMMMMMMMMMMMLLLNNNUNNNNNNNNNNNNNB
26+
OQQQCCCCMMMCMWWWWWWWWYYYYYYYYYYYOOOOOOOOOOOOOQQNNNNNNLLLLLLLLLLHHHHHMXXPXXXJJJJJJJJIICCCIIIIIUIJIJSJJJJJJJMMMMMMMMMMLLLLLLLLNNNNNNNNNNNNNNNN
27+
OOQCCCCCMCCCCWWWWWWWWWYYYYYYYYYYYYYOOOOOOOOOOQNNNNNNNLLLLLLLJJJJHHMMMMXXXXXJJJJJJIIQIIIIIIIIIJIJJJJJJJJJJJMMTTMGMMMMLLLLLLLLLNNNNNNNNNNNNNNN
28+
OQQQQQCCCCCCCCCWWWWWWWYYYYYYYYYYYYSOOOOOOOOOOQNNNNNNNNLLLLLLJJJJHMMMMXXXXXXXXJDDDDDDDDIIIIIIJJJJJJJJJJJJJJJJJTMGGGLLLLLLLLLLLLLLNNNNNNNNNNNN
29+
QQQQQQQCCCCCCCWWWWWWWYYYYYYYYYYYYYGOOOOOOOOOCCMNNWWNNNLLLLLLJJJJJMMMMMXXXXXXXXDDDDDDDDIIIIIJJJJJJJJJJJJJJJJJTTTGGGVLLLLLLLLLLLLLNNNNNNNNNNNN
30+
QQQQQCCCCCCCCCWWWWWWWYYYYYYYYYGGYYGOOOOOOOOOCCWNNWWWNNLLLLLJJJJJJJMMMMMXXXXXXXDDDDDDDDIIIIIIJJJJJJJJJJJJJJTTTTTGGGVVVLLLLLLLLLLLNNNNNNNNNOON
31+
QQQQQCCCCCCCCCCCVVWVVYYYYYYYYGGGGGGGSCCCCCCCCWWWWWWWRRAAALLJJJJMJJMMMMMXXXXHXXDDDDDDDDZZIIIIJJJQJJJJJJJJJJTTTTTGHPVVLLLLLLLLLLLNNNNNNNNNOOOO
32+
QQQQQCCVECMMMMVVVVVVVVYYYYYYGGGGGGGSSCCCCCCCWWWWWWWWWAAAAAJJJJJMJMMMMMMMMXXMXXDDDDDDDDZZIIIIBJJJJJJJJJJJJJTTTTTTTPPPPLLLLLLLLLZNNNNNNNNOOOOO
33+
QQQQQCCCEEVVVVVVVVVVVVVVHYGGGGGUUGGGGCCCCCCCWWWWWWWWWAAAAAJJJJJMMMMMMMMMMMXMMMDDDDDDDDZZZJIILJJJPJJJJJJJJJTTTTTTPPPPPLLLLLLLLLZZZZNNNNNOOOOO
34+
RQQQQQCCEEEEVVVVVVVVVVVVVXYGYGGUUGGGCCCCCCCCWWWWWWWWWWAAAJJJJJJJMMMMMMMMMMMMMMTZZDDDZZZZZJIILLLLJJJJJJJJJTTTTTFFFPPPPLLLLLLLLLZZZNNNNNNOIOOO
35+
RRRRRRREEEEENNVVVVVVVVVVVXYYYYGYUUCCCCCCCCCCWWWWWWWWWSAAAAJJJJMMMMMMMMMMMEMMMMMMUDDDZZZZZZLLLKLLJJJJJJJZJJTTTFFFFTPPLLLLLLLLLLZZZNNNNNNOIIOO
36+
ZZRRRRRREEENNNNNVVVVVVVVVVYYYYYYYKKCCCCCCCCCWCWWWWWWWWAAAAJJJJMMMMMMIIMEEEEEMMMMMDDDZZZZZZZLLLLLLJLLLLJZTTTTFFFFFFLLLLLLLLLLLLLZZNNNOOOOIIII
37+
ZZZRRRRRENENNNNNVVVVVVVVVVYYYYYYYYYBCCCCCCZZZZZDWWWWWWAAAAJJJJJIMMIIIIMEEEEJJMDDDDDDZZZZZZZLLLLLLLLLLLJTTTLTFFWFFFFFFLLLLLLLLLZZZZZZIIOOIIII
38+
ZZRRRNNNNNNNNNNNNVVVVVVVVVYYYYYYYYYYEECCCCZZZZZDDDDLDWWJAAJJJJIIIMIIIIMEEEEEDDDDDDDDDDDZZZZLLLLLLLLLLLJLLTLLFFFFFFFFFLLLLLLLLLZZZZZZZIIIIIII
39+
ZZZZRNNNNNNNNNNNVVVVVVVVVVYYYYYYYYYYYYCCCCZZZZZDDDDLDJJJJJJJJJIUIIIIIMMEEEEEDDDDDDDDDDDZZZZLLLLLLLLLLLLLLLLLFFFFFFFFFLFLLLLLZLZZZZZZZIIIIIII
40+
ZZZZNNNNNNNNNNNNVVVVVVVVVVYYYYYYYYYYQQCCCCZZZZZDDDDDDDJJJJJIIIIIIIIIHIMMEEEEDDDDDDDDDDDZZZZLLLLLLLLLLLLLLLLOFFFFFFFFFFFLZLLZZZZZZZZZZZIIIIII
41+
ZZZZZZNNNNNNNNNVVVVVVVVVVVYYYYYYYYYYYYNNCCZZZZZDDDDDDDDJIIIIIIIIVVVVIIIMMEEEDDDDDDDDDDDJJZLLLLLLLLLLVVVVVLOOFFFFFFFFFFFZZZZZZZZZZZZZIIIIIIII
42+
ZZZZZNNNNNNNNNNVVVVRRVVVVVYYYYYYYYYHDNNNNNZZZZZDDDDDDDDJJIIIIIIIIIIIIIIMMMMMDDDDDDDDDDDJIZLLLLLLLLLVVVVVVVVVFFFFFFFFFFFZZZZZZDDDZZZZZZZEIIII
43+
ZZZZZNENNNNNNNNNVVVRRRVVVVVYYYYHHHHHHNNNNODDDDDDDDDDDDDJIIIIIIIIIIIIIIIIMMMMDDDDDDDDDDIIILLLLLLLLLVVVVVVVVVVVFFFFFFFFFFIIDDZZDDXDZZZZZEEENII
44+
ZZZZZNNNNNNNNNNNVVRRRRVYVVYYHHHHHHHHHNNNNNDDDDDDDDDDDBBIIIIIIIIIVVVIVVVMMMMMJJJJIIIIIIIIIILLLLVVVVVVVVVVVVVVVFFFFFFIFFFIIDDDZDDXDZZZZZEEENII
45+
ZZZZZZZNNNNNRRRRRVRRRYYYYYYYYHHHHHHHHHNNNNNCCDDDDDDDDBIIIIRIIIIVVVVVVVVVMMMRRRRJJIIIIIIIIILLLIVVVVVVVVVVVVVVVVFFFFFIIIIIEDDDDDDDDDDDZZZEENNN
46+
ZZZZZZZNNNNNNNNORRRRYYYYYYYYHHHHHHHHHHNNNNNNNKDDEDDDDBBBIIIIIIIVVVVVVVVQMMRRRRRRIIIIIIIIIIIIIIIIIIVVVVVVVVVVVVFFHIIIIIIIEDDDDDDDDDWDZZEEEENN
47+
ZZZZZZZNFNNNNOOOOORRYYYYYYYYHHHHHHHHHHNNNNNNNNTTFDDDDJJBIIIIIIIVVVQQVVQQQQRRRRRRIIIIIIIIIIIIIIIIVIVVVVVVVVVVVVVHHHHIIDIIDDXDDDDDDDDDDZEEEEEN
48+
ZZZZZZZNNNNNNUUOOOOOOYYYYYYYYHHHHHHHHHHNNNNNNNTFFFFDDJJBJJIIVIIIIVQQQQQQQDRRRRSRRIIIIIIIIIIIIIIIVVVVVVVVVVVVVVVHHHYIDDDIDDXXDDDDDDDDEEEEEEEE
49+
ZZZZZZNNNNNNNUUOOOOOOOOYYYYYYHHHHHHHHHHNNNNNNNFFFFFDDJJJJJJIVIIVVVQQQQQQQQRRRRRPPPPIQIIIIIIIIIIIVVVVVVVVVVVVVVHHHYYLYDDDDDDDDDDDDDEEEEEEEEEE
50+
ZZZZZZUUUUNNUUUUOOOOPPOYYYXYIIHHHHHHHHHNNNNUUFFFFFFDAJJJJNJJVIVVVVQQQQQQQQNRRRRPPPPQQILQQIIIIIIIVIIVVVVVVVVVVVYHYYYLYDDDDDDDDDDEEEEEEEEEEEEE
51+
ZZZZZUUUUUUUUUUOOOOPPPPYYYXYIIIHHHOHXXXNNNNNNJJFJFFJJJJJJJJJVVVVVVVQQQQQQRRRRRRPPPPQQQQQQQIIIIIIIIIVIVVVVVVVVVYYYYYYYDDDDDDDDDEEEEEEEEEEEEEE
52+
ZZZZZUUUUUUUUUUOUUUUUPYYYYYYYIIHHHHHXXXXXNXXXJJFJJFJJJJJJJJJJJVVVVVQQQQQRRRRRRRPPPQQQQQQQQEEEIIIIIIIIIIVVVVVVVYYYYYYYYDDDDDUUEEEEEEEEEEEEEEE
53+
ZZZZZZUUUUUUUUUUUUUUUPPPYYYYIIXHHHHHHXXXXXXXXXXXXFFJJVVVVJJJJJJVVVVQQQQQRRRRRRRRRPQQQQQQQEEEEEEEEIIIIHIKIVBBGGYYYYYYYDDDDDDUUUEEEEEEEEEEEXEE
54+
ZZZZZZUUUUUUUUUUUUUUUPPPPYYYXXXXXXXXXXXXXXXXXXXXDDJJJVVVVJJJJJJVVVVVVRRRRRRRRPPPPPQQQQQQEEEEEBEEEEIIIHIIIVBGGGYYYYYYYDDUUUUUUUUUEZEEEEEEEEEE
55+
ZZZZZUUUUUUUUUUUUUUUUPPPPYYYXXXXXXXXXXXXXXXXVVVXDDJJJVVVVJJJJJVVVVVVVRRRRRRRRRPPPPQQQQEEEEEEEEEEEEEIIHHJJGGGGGGGYYYYYYDDUUUUUUZUEZEEEEEEEEEE
56+
ZZZUUYUUUUUUUUUUUUUUUPPPPPYYWXXXXXXXXXXXXXXXVVVXPPVVVVVVVJJJJJJVVFVVVRRRRRRRRRPPPPKQKKKEEEEEEEEEEVVVHHHHJGGGGGGGYYYYYDDDDUUUUZZZZZEEEEEEEEEQ
57+
ZZZZUUUUUUUKKUUUUUUUPPPPPPPYWXXXXXXXXXXXXYYXVVVPPPVVVVVVVJJJJJJJJFVVVRRRRRNEEEKPKKKKKKKEEEEEEEEEEEEHHHHHHYYYGGGGYYYYYDDDDZZZZZZZZZEEEEEUEEEE
58+
ZZZZZUUUUUUKKUUUUUUUPPPPPPPXXXXXXXXXXXXYYYYVVVVVVVVVVVVVVJJJJJJJFFFFVRRRRKNNKKKKKKKKKKKKEEEEEEEEEEHHHHHHHYYYGGGGGGGGGYDDDZZZZZZZZZZZZZZUEEEE
59+
ZZZZZDUULLKKKUKKUUUPPPPPPPPXXXXXXXXXXXXYYYYVVVVVVVVVVVVVVYYJJJJJFFFFFRRRRRNNKKKKKKKKKEEKEEEEEEEEEEEHHQHHHYYYGGGGGGGGGDDDDZZZZZZZZZZZZZZZZQQQ
60+
XZZZZDKKKKKKKKKKFXXXXPPPPPPPXXXXXXXXYYYYYYYVVVVVVVVVVVVVVYJJJJJFFFFFRRFFFFFSSKKKKKKKKEEEEEEEEEEEEEQQQQHHHYYYGGGGGGGGGDDDZZZZZZZZZZZZZZZQQQQQ
61+
XZZZZKKKKKKKKKKKKXXXXPPPPPPPXXXXXXXXYYMYYYYVVVVVVVVVVVVPPPQJJJSFFFFFFFFFFFJSJJJJKKKKKKKKEEEEEEEEQQQQQQQHYYYYGGGGGGGGGDDDZZZZZTTTTTZZZZZQQQQQ
62+
XZWWKKKKKKKKKKKKKXXXXXPPPPPPMMXMMXXXXXMYYYYRRYPPPPVVVVVVVVQQJSSFGOFFFFFFFFJSJJJJKKKKKKKKKEKEEEEEQQQQQQQQEBYYGGGGGGGGGDEDZZZZZTTTTTZZZDDZQQQQ
63+
XXKWKKKKKKKKKKKKKKXXXXPPPPPPMMSMMMMMXMMXYYYYYYXPPPVVVVVVVVQQJOSSOOOFFFFFFFJJJJJJKKKKKKKKKEKKQEEEPQQQQQEQEEEEGGGGGGGGGDEEZZZZZTTTTTZZZZZZQQQQ
64+
KKKKKKKKKKKKKKKKKWXXXXXXPPPPMMMMMMMMMMMXXYXXYYXPPPVVVVVVVVQQQOOOOOFFFFFFFFFJJJJJJKKJKKKKKKKKKKKCPPPPQQEEEEEEGGGGGGGGGEEEZZZZZTTTTTZZZAZZQQQQ
65+
KKKKKKKKKKKKKKKKKKXXXXPPPPPMMMMMMMMMMMMXXXXXXXXXPPPPPPPPPQQQQOOOOOOOOFFFFJJJJJJJJJJJKKKKKKKKKKKCCCPPQQEEEEEEGGGGGGGGGDEEEEZZZTTTTTZTTTTTQQQQ
66+
FFKKKKKKKKKKKKKKKKXXXXPPPPPMKMMMMMMMMMMMMXXXTXXXXPPPPPPPQQQQOOOOOOOOOFFFJJLJJJJJJJJJJJKKKKKKKKPPPPPPQQEEEEEEGGGGGGGGGEEEEEZZITTTTTTTTTTTQWWQ
67+
KKKKKKKKKKKKKKKKKKKXXXXPPPPMKMMMMMMMMMMMXXXXTTXXXXXPPPPPQQQOOOOOOOOOUJJJJJJJJJJJJJJJJJKKKKKKKPPPPPPPEEEEEEEEGGGGGGGGGEDDEEZZZTTTTTTTTTTTWWWQ
68+
KKKKKKKKKKKKKKKKAAAAAAPPPKPKKMMMMMMMMMMMXXXXTTTXXXXXPPPPQQQOOOOOOOOOOJJJJJJJJJJJJJJJJKKKKKKKKPPPPPPPPEEEEEEEEEEGGGGGGDDDEEEIITTTTTTTTTTTWWWQ
69+
KKKKKKKKKKKKKLKAAAAAAAPPKKKKKMMMMMMMMMMMMTTTTTTXTTXXPPPQQQQQOOOOOOOOOJSSJJJJJJJJJJJKKKKKKKKKKKKPPPPPPZEVEEEEEEEGGGGGGDDDEEDIITTTTTTTTTTTWWWQ
70+
KKKKKKKKKKKLLLLLAAAAAAPKKKKKKMMMMMMMMMTMTTTTTTTTTTTXPXPQQQQQQOVOOOOOOOJJJJJJJJJTJJJPPDKKKKKKKKKPPPPPPZQQEEEEEEEGGGGGGDDDDDDIITTTTTTTTTWWWWWW
71+
KKKKKKKKKKKLLLLAAAAAAAKKKKKKKKKKMMOMMMTTTTTTTTTTTXXXXXPQQQQQQQQZOOOOTTTTJJJJJJJJJJJPPPKKKKKKKKPPPPPPPQQQEEEEEEEGGGGGGZDDZZZVITTTTTTTTTWWWWWW
72+
KKKKKKKKKKLLLLAAAAAAAKKKKKKKKKKKKMMMMMTTTTTTTTTTTTTXXXQQQQQQQQQQSOOTTTTTTTJTJJJJJJJJPPPPPKKKKPPPPPPPOOQQHEEEEEEGGGGGGZZZZZJIITTTTTTTTTWWWWWW
73+
KKKKKKKKKKKZZLAAAAAAAAKKKKKKKKKKKKKTTTTTTTTTTTTTTTTXUUQQQQQQQQQQTTTTTTTTTTTTJJJJJPPPPPPPPPKKKKKKKKOOOQQQHEEEEEEGGGGGGZZZZZJIITTTTTTTTTWWWWWW
74+
KKKKKKKKKZLZZZPPZAAAAAKKGKKKKKKKKKKKTTTTTTTTTTTTOTTTUUUQQQQQQQQQTTTTTTTTTTTTJPJPPPPPPPPPPKKKKKKKKOOOJOOOGGGGGGGGGGGGGZZZZZZIIIIIIIIWWWWWWWWW
75+
KKKKKKKKZZZZZZZZZZZAAAAKGKKKKKKKKKKKVTTTTNTTTTTTOTTUUUUUQQQQQQQQUTTTTTTTTTTTJPPPPPPPPPPPPPPKKOKOOOOOOCOOGGGGGGGGGGZZZZZZZZZIIQIIIWWWWWWWWWWW
76+
KKKKKKKKZZZZZZZZZZZZAKKKKKKKKKKKKVVVVTTTNNNNTTCCCCTUUUUUJJQQQQQUUTTTTTTTTTTTTPPPPPPPPPYPPPPOKOOOOOOOOOOOGGGGGGGGGGZZZZZZZZYYIWIIWWWWWWWWWWWV
77+
KKKKKKKZZZZZZZZZZZAAAKKKKKKKKKKKKKKKVNNTNNNNNNCCLCCCUUUUJJJJQQUUTTTTTTTTTTTTTPPPPPPPYYYKKKOOOOOOOOOOOOODGGGGGGGGGGZZZZZZZYYYYWWWWWWWWWWWWWWV
78+
KKKKZZZZZZZZZZZZZZZAAKOKKKKKKKVVVVVVVVNNNNNNNNCCCCCUUUUUUCCJQQQUTTWTTTTTTTTTTTPPPPPPPYYKKKKOOOOOOOOOOOODGGGGGGGGGGZZZZZZYYYYYWWWWWWWWWWWWWWW
79+
ZZZZZZZZZZZZZZZZZZAAAAKKKKKKKKVVVVVVBNNNNNNJNNCCCCUUUUCCCCCCRUUUUTWWTGTGGTTTTPPPPPPPPYYYKKOOOOOOOOOOOOODGGGGGGGGGGZZZZUUYYYYWWGGWWWWWWWWWWWW
80+
ZZZZZZZZZZZZZZZZAAAAAAKKKAKKKVVVBBBVBBNNNNNJNNCCCCCUCCCCCCCCRRRRRTWWWGGGTTTTPPPPPPPYYYYYOOOOOOOOOOOOOOOOGGGGGGGGGGZZZZUUYYYUUUUGWWWWWWWWGGGW
81+
EZZZZZZZZZZZZZZZZAAAAAAAAAAGBVVVBBBBBBNNNNNNNCCCCCCCCCQCCCCCQQQRTTWWRGGGGGTTPPPPPPPPYYYYYOOOOOOOOOOOOGGGGGGGGGGGGGZZZZUUUUUUUFFWWWWWWWWWGGGG
82+
EEEEESSSZZZZZRRRRRAAAAAAAAAPBBVVBBBBBBCCGGGGGGCCCCCCCQQCCCCQQQRRRRRRRGGGGTTPPPPPPPPKYYYYYPPOOOOOOOOOOGGGGGGGGUUUUUUUUUUUUUUUUUFFWWWWWETWWTTT
83+
EEEEESSSGGGZZRRRRRRRRAAAAAPPBBBBBBBBBBBCGGGGGGCCCCCCQQGGGGGGQRRRRRRRGGGGGMTMMPPPPPPKKYYYYPPOOOOOOOOOOGGGGGGGGUUUUUUUUUUUUUUUUUFWWFFFEETTTTTT
84+
EESEESSSGGSZZRRRRRRRRRRAAAPPBBBBBBBBBBBGGGGGGGGGGGGGGGGGGGGGGRRRRRRRGGGGGMMMMMPPMMPYYYYYYPPPOOOOOOOOOGGGGGGGGUUUUVVUUUUUUUUUVFFFWWFFEEEWTTTT
85+
SSSSSSSSSGSCCRRRRRRRRRQAAAVPBBBBBBBBBBHGGGGGGGGGGGGGGGGGGGGGGRRRRRRGGGGGGGGMMMPMMMMMMYMMMSSPPOROOROORGGGGGGGUUUGVVVUUUUUUUUUVVFFFFFEEEWWTTTT
86+
SSSSSSSSSSSSCRRRRRRRRRQQAAPPABBBBBBBHBHGGGGGGGGGGGGGGGGGGGGGGRRRGGGGGGGGGGGMMMMMMMMMMMMSSSSPSRROOROOOGGGGGGGUGGGGVVUUUUUUUUCVVVFFFFEFFTTTTTT
87+
SLLSSSSSSSSSRRRRRRRRRRRAAPPPBBPHBBBBHHHHGGGGGGGGGGGGGGGGGGGGGRRRFFGGGGGGGGMMMMMMMMMMMMMSSSSSSRRRRROORGGGGGGGUGGVVVVUUUUUUUVVVVVFVFFFFFFFTTTT
88+
SSSSSSSSSSSSSRRRRRRRRRHHPPPPPPPHBBHHHHHHGGGGGGGGGGGGGGQQQQQJJJJRFFGGGGGGGCMMMKMMMMMMMMMSSSSSSRRRRRRRRGGGGGGGGGVVVVVVLLUUUVVVVVVVVFFFFFFCTTTT
89+
VSSSSSSSSSSSSRRRRRRXXRHHHPPPPPPPPHHHHHHHGGGGGGGGGGGGGQQQLQQJJJJRRFFGGGGGGCCCKKMMMMMMMSSSSSSSSSRRRRRRRGGGGGGGGGRVVVIITTTTVVVVVVVVVVVFCCFCCECC
90+
SSSSSSSSSSSSSRRRRRRRXRHHHPPPPPPPPHHHHHHHGGGGGGGGGGGGGQQVMMJJMJMMMFFFFFFFGECKKKKMMMMMMMMMSSSSSSSSSRRRRGGGGGGGAGGVFTTITTTVVVVVVVVVVLCCCNCCCCCC
91+
SSSSSSSSSSSSSRRRRRRRRRHHPPPPPPPPIIHHHHHHHHHIGGGGGGGGGQMMMMJJMMMMFFFFFFFFGCCKKKKKMMMMMMMMMMMSSSHHHHRRRRGGGGAAAGGGFTTTTTTVVVVVVVVVVVVCCCCCCCCC
92+
SSSSSSSSSSSSRRRRRRRRXXPPPPPPPPPPHHHHHHHHHTIIGGGGGGGGGMMMMMMJMMMMMFFFFFFFCCCCKKKKMMMMMMMMMMMMSHHHHHHRRRGGGGGGGGGGTTTTTTTVTVVVVVVCCCCCCCCCCYCC
93+
SSSSSSSSSSHSRRRRRRRRXXPPDPPPPPPPHHHHHHHHHTIIGGGGGGGGGMMMMMMMMMMMMMFFFFFFCCBKKKKKMMMMMMMMMMMXXXHHHHHRHHYYGGGGGGGGTTTTTTTTTVVVVVVVCCCCCCCCCYCB
94+
VSSSSSSSSSSRRRRRRRRBBBMPPPPPPPPPEHHHHHHHHHIIIIIIIIIIMMMMMMMMMMMMMMFFFFFCCCCCCCKKKKKMMMMMMMMXXHHHHHRRHHYYGGGGGGGGTTTTTTTTHVVVVVVCCCCCCCCCCCBB
95+
SSSSSSSSSSSRRRRRRRBBBBMMPPPPPPPMHHHHHHHHHHYDDIIYYIIIIMMMMMMMMMMFFFFFFFFFCCCCCKKKKKKMMMMMMMXXXXHHHHHHHYYYGGGGGGGGTTTTTZZZVVVVVVVCCCCCCCCCCBBB
96+
NNNNNSSSSSSRRRRRRRBBBBMPPPPPPPPMHHHHPPHHHHYDYYIYYYMMMMMMMMMMMMFFFFFFFFFFCBBBBBBBBBBMMMMMHMMXXXHHHHHHHHHHHGGGGGGGTTTGGZZZVVVVVCCCCCCCCCCCCBBB
97+
NNNNNNNSRRRRRRRRRRRRBBMPPPPPPPMMMHHPPPPPHYYYYYIYYYYYYYMMMMMMMMFFFFFFFFFFKBBBBBBBBBBKMMMMBDDBXXBBHHHHHHHHHGGGGGGGGGGGGGZZVVVVVVVOOCCCCCCCCBBB
98+
NNNNNNNSRRRRRRRRRRRRRBMMPPPPPPMMMHHPPPPPPYYYYYYYYYYYYMMMMMMMMFFFFFFFFFFKKBBBBBBBBBBKKMMKBBBBBBBBHHHHHHHHHGGGGLGGGGGGGGGVVVVVVOOOOOCCCCCBCBBB
99+
NNNNNNNSSRRRRRRRRRRRRMMMMMMMMMMMMMHCCCPPYYLYYYYYYYYYYMMMMMMMMIIFFFFFFFKKKBBBBBBBBBBKKKKKBBBBBBBBYHHHHHHGHGGGGLLGGGGGZGGOVVVOOOOONNCCCCCBBBBB
100+
NNINNNNSSRRRRRRRRRRRRMRRMMMMMMMMMMCCCCBBBBBYYYYYYYYYMMMMMMMMMFIFFFFFFFFBBBBBBBBBBBBKKKKKBBBBBBBBBHHHHHJGGGLLLLLGGGGGGGGOVVOOOOOBBBBCCCCCBXBX
101+
IIIINNNNRRRRRRRRRRRRRRRRMMMMMMMMMMCCCJBBBBBBYYYYYYYYYMMMMMMFFFFFFFFFFFBBBBBBBBBBBBBKKKKKOOOBBBBBBHBHHHJJLLLLLLLLGGGGGGOOOOOOOOOBBBBCCBBBBXXX
102+
IIIIIIRRRRRRRRRRRRRRRRRRMMMMMMMMMCCCCCCCBBBBYYYYYYYYYMWWWWWFFFFFFFFFFFFBBBBBBBBBBBBKKKKOOOBBBBBBBCBHHHJJLLLLLLLGGGGGOOOOOOOOOBBBBBBBBBBBBBXX
103+
IIIIIIIIRIIRRRRRRRRRRRRMMMMMMMMMMMCCCCCCBBBBBBBYYYYYYMWWWWWWWFFFFFBBBBBBBBBBBBBBBBBKKKKKBBBBBBBBBBBBJJJLLLLLLLGGGGGGGOOOOOOOBBBBBBBBBBBBBBXX
104+
IIIIIIIIIIIRRRRRRRRRRMMMMMMMMMMMMMMCCBCCBBBBBBBYYYYYYMWWWWWTTGFFFFFFBBBBBBBBBBBBBBBKKKKKBBBBBBBBBBBBBJLLLLLLLLGGGGUGGGOOOOOOOBBBBBBBBBBBBBXX
105+
IIIIIIIIIIIRRRRRRRMMRMMMMMMMMMMMUUMMCBBBBBBBBBBYYYYYJJWWWWWTTTFGFFBBBBBBBBBBBBKHHHKKKKKKBBBBBBBBBBBBBJLLLLLJJJRGGUUGGGOOOOOOOOBBBBBBBBBBBBXX
106+
IIIIIIIOOIIIRRMRRMMMMMMMMMMMMMMMUUUCCUUUBBBBBBBBYJJYJJJJWTTTTTFGKRKKBBBBBBBBBBBTHHHHHHHHBBBBBBBBBBBBJJLQQJLJJJUUUUUOOGOOORORRBBBBBBBBBBBEEEE
107+
IIIIIIOOOIIIRRMMMMLLMMLLLLMMMMUUUUUUUUUUUBBBBBJOJJJJSJJWWWTTTTFKKKKBBBBBBBBBBTTTHHHHHHBBBBBBBBBBBBBBJJJQJJJJJFFUUUUUOOOOORRRRRBBBBBBBBCCEEEE
108+
TIIIIIOOOOIIIMMMMMLLLLLLLMMIIUUUUUUUUUUUUUBBBBJJJJJJJJJWXTTTTTKKKKKKKKBBBBBBBTTTTTTHHHHBBBBBBBBBBBBBVVJQJJJJJJFUUUUUOUUORRRRRRBBBBBBBBCCCECE
109+
IIIJJIOOOIIIIIIMMLLLLLLLLLLIIIIUIUUUUUUUUUBBDDJJJJJJJJJJXTTTTTKKKKKKKBBBBTTTTTTTTTTTHHBBBBBBBBBVVBBBVVVJJJJJJJUUUUUUUUUORRRRRRBBRBBBBBCCCECE
110+
IIIJJJOOOIIIIIIMMMCLLLLLLLLHIIIIIUUUUUUUUUDDDDJJJJJJJJXXXTTTKKKKKKKKKBBBBTTTTTTTTTTHHHHHHHBBBBBVVBBVVVVVVVJJJJPUUUUUPUUORRRRRRRRRBBBBCCCCECC
111+
PPJJJOOOOIIIIIIMMMRRULLLLLLHIIIIIIUUUUUUUUDDDJJJJJJJJJXXXTTKKKKKKKKKKBBBTTTTTTTTTTTTHHHHHHBBBBBBVVVVVVVVVVJJJJPUUUUUPUUORRRRRRRRRBBCCCCCCCCC
112+
PPPPJOOIIIIIIIIMMMRRRLLLLLHHIIIIIIIIUUUUUUUUJJJJJJJJJJXIIIKKKKKKKKKKKBBBTTTTTTTTTTYTHHHHHHHBBBVVVVVVVVVVVVJJPPPPPUPPPURRRRRRRRRRRTBBBCCCCCCG
113+
PPPPOOIIIIVVVIIRRRRRRHHHHHHIIIIIIUUUUUUUUUUDJJJJJJJJJJJOIIKKKKKKKKNKKBBTTTTTTTTTTTTTHQQQHHHBVVVVVVVVVVVVVVVJPPPPPUPPUUUUURRRRRRRMTBBBTTCCCCC
114+
PPVVVVVVVVVVIIRRRRRRRRHRHHHIIIIIIUYYYYUYUUUDDJJJJJJJJJJJIIKKKKKKKKNNNNNTTTTTTTTTTTTTQQQQHHHPVVVVVVVVVVVVVVVPPPPPPPPPUUUUUURRRRRXTTTTBTTCCCCC
115+
PVVVVVVVVVVVVRRRRRRRRRHRRHHHIIIHIYYYEEUUUUZMDDDJJJJJJJJJIIIIIIIKKNNNNNTTTTTTTTTTTTTTTQQQPPHPPPPPVVVVVVVVVEEEEPPPPPPJJXXXURRRRRRXXTTTTTTGTCCC
116+
PPPYVVVVVVVVRRRRRRRRRRRRHHHHHIHHIEEYEEEEEMMMMMJJJJJJIJIIIIIIIIINNQQNNNNNTTTTTTTTTTTTTQQQPPPPPGPPPVVVVVVVVVEEEEPPPFFSJJXFURRRRRVRXTTGTTTTTTKC
117+
PPPVVVVVVVVVVTRRRRRRRRRRRRRHHHHHHHEEEEEEEMMMMYMJJJJJIIIIIIIIIILNNNNNNNNTTTTTTTTTTTTTTEQQPPPPPPPPVVVVVVVEEEEEEEEEPFFFJJFFFFRRRRRRRCCTTTTTTTKK
118+
PPVVVVVVVVVVVVVRRRRRRRRRRRRHHHHHHHEEEEEEMMMMMMMMJJJJIIIIIIIIIILLNNNNNNNTTTTTTTTTTTTTTPPPPPPPPPPPVVVVVVEEEEEEEEPPPFFFQQFFIRRRRRRRRRCTTTTTTKKK
119+
PVVVVVVVVVVVVVVVRRRRRRRHRHHHHHHHHHHEEHEEEMMMMMMMMJJJIIIIIIIILLLLNNNNNNNNNTTTTTYTYTTTTTPPPPPNNNPPPPVVVVVEEEEEEEEEPFFFQFFFIIIRRRRRRKTTTTTTTTKK
120+
PPVVVVVVVVVVVVVRRRRRRERHHHHHHHHHHHHHHHEEEMMMMMMMMMMJJIIIIIIIILLLLNNNNNNNNOTYYTYYYTPVVPPPPPPNVNNNNNVVVVVEEEEEEEEEPPFFFFFFFFIIIIIRIKITTTTTTTVV
121+
PPVPVVVVVVVVVVWRRREEBERHHHHHHHHHHHHMHHEEMMMMMMMMMMMIJIIIIIILLLLGLGNNNNNOOOOOYYYYYPPPPPPPPPPNNNNNNNNNNVVEEEEEEEEFFFFFFFFFFIIIIIIIIIITTTVVVVVV
122+
PPPVVVVVVVVVVVVRREEEEEHHHHHHHHHHHHHMMMMMMMMMMMMMMMLIIIIIIIIIIGGGGGGNNNNOOOOOYYYYYPPPPPPPPPNNNNNNNNNNVVVVVEEEEEEEFFFFFFFFFIIIIIIIIIIMVVVVVVVV
123+
PPPVVVVVVVVVOVVRREEEEEEEEHEHHHHHHHMMMMMMMMMMMMMLLLLIIIIIIIIIIGGGGGNNNNNOOOOOYYYYYYPPPPPNPPNYNNNNNNNNNNVVVEEEEEEEFFFFFFFJJJIIIIIIIIVVVVVVVVVV
124+
PPPPVPPVVVVVOVVHREEEEEEEEEEHHHHHHHMMMMMMMMMMMLLLLLSLLLIIIIIIIGGGGGGQQOOOOOOOYYYYYYYPPPPNNNNYNNNNNNNNNVVVEEEEEEEEFFFFFFFFFJIIIIIIIIIIIVVVVVVV
125+
PPPPVPPVPPVOOVVHEEEEEEEEEEEEEHHHHHHHHHMMMMMMMLLLLLLLLJLILIYLLGGGGGQQQQOOOOOOOYYYYYYYYPPNNNNNNNNNNNVVVVVVVEEEYEEEFFFFFFFJJJIIIIIICCYIIIVVVVVV
126+
PPPPPPPPPPPOOOOESEEEEEEEEEEEEEIIHHIHHHMMMMMMLLLLLLLLLLLLLLLLLLGGGQQQQOOOOOOOOYYYYYYYYYNNNNNNNNNNNNVVVVVVVEEEYYYYFFFFFFJJJJIIIIIICCYYIIVVVVVV
127+
PPPPPPPPPPPPPOOEEEEEEEEEEEEEEIAIIIIHHHIYYMMMMMLLLLLLLLLLLLLLLLGGGQQQOOOOOOYOOYYYYYYYYYYYYYYYNNNDDNJVVVVVVEEYYGYTTTTFFJJJJJIIIIICCCCIIIIIVVVV
128+
PPPCPPPCCCCPPPOEQEEEEEEEEEEEIIIIIIIIIIIIIIMMMMLLLLLLLLLLLLLLLLLGGQRQQQOOQYYOYYYYYYYYYYYYYYZYNNNNDVVVVVVVVVGGYGTTTTTFFFJJJJJIIICCCIIIIIIIIVVV
129+
PPCCCCCCCCCCOOOOCEEECCEEEEBBOOIIIIIIIIIIVVMVVVVVVVVLLLLLLLLLLMGGGRRRQQOQQYYYYYYYYYYYYZZZZZZYNNNDDVVVVVVVVVGGGGGGTTTTFTTJJJJIICCCIIINIIIIIVVV
130+
PPCCCCCCCCCOOOOOCECCCCCCCNBBBBIIIIIIIIIIIVVVVVVVVVLLLLLLLLMMMMGGMMRCCQQQQQQQQYYYYYYYYZZZZZZZNDDDDDDDDDVVVGGGGGGGTTTTTTTJJJJJJCCCICINIYIYYYYV
131+
PPCCCCCCCCCCCOOCCECCCCCCQBBBBBIIIIIIIIIIVVVVVVVVVVLLLLLLLLLMMMMMMMRCCQQQQQCCCRYYYYAZZZZZZZZZZDDDDDDDDDVOOGGGGGTGGTTTTTJJJJJJCCCCCCIYYYYYYYYY
132+
PPCCCCCCCCCCOOOCCCCCCCCCCBBBBIIIIIIIIIIIVVVVVVVVVVLLLLLLLLLMMMMMMMCCCCCCCCCCRRYYRZZZZZZZZZZZZZDDDDDQQDQOQLGGGGGGTTTTTTJJJJJJJJCCYYYYYYYYYYYY
133+
PPCCCCCCCCCCOOCCCCCCCCCCBBBBBIIIIIIIIIIYYYYYVVVVVVVLLLLLLMMMMMMMCCCCCCCCCCCRRRRYRZZZZZZZZZZZZDDBDQQQQQQQQQQQGGGGTTTTTTTJJJJJCCCCYYYYYYYYYJYY
134+
PPPPCCCCCCCCCCCCCCCCCCCCCBBBBIIIIIIIIIICYYYYVVJVVVLLLLLLMMMMMMMMCCCCCCCCCCCRRRRRRRZFLLLZZZZZDDDBBBQQQQQQQQQQGGGGTTTTTTTTTJJJCCCCYYYYYYYYYYYY
135+
PPPPCCCCCCCCCCCCCCCCCCCCCBBBBBBIIIIPIIIIYYYYVJJJVVVLYYYLMRMMMMMMMDCCCCCCCCRRRRRRRRLLLLLLZZZZDDDBBBBBQQQQQQGGGGGTTTTTTTTTTJJJCCCCCUYYYYYYYYYY
136+
PPPPPPPCCCCCCLLLLCCCCCCCCCCBBBIIIIPPIIIIIIIYVJJJJJJJYYYYYMMMMMMMCCCCCCCCCCRCCCRRRRLLLLLZZZZZZBBBBBBBQQQQQGGGGGGTTTTTTTTTTTJJJCCPCYYYYYYYYYYY
137+
PEPEEPPPCLLLLLLLLCCCCCCCCCCCCIIIPPPPIIIIIIVVVJJJJJJJYYYYYYMMMMMMCCCCCCCCCCCCCRRRRLLLLLAAZZBBBBBBBBBBQQQQQQQQQGGGQTTTTTTTTTTRRCCPPPYYYYYYYYHY
138+
PEEEEEELLLLLLLLLLCCCCCCCCCCIIIIIPPPPPPPVIVVVVVVJJJJYYYYYYYYMMMMMMCCCCCCCCCCCCCRRLLLLLLLALLLLBBBBBBBBBQQQQQQQQQQQQTTTTTTTTTTCCCCCPPPYYYYYYYYD
139+
PEEEEEELLLLLLLLCCCCCCCCCCCCCCIIIPPPPPPPVVVVVVVJJJJYYYYYYYYMMMMMCCCCCCCCCCCCCCRRRRRLLLLLLLLLLBBBBBBBBBBBBBQQQQQQQQQTTTTTTTTTTUCZCPPPYYYYYYDDD
140+
EEEEEEELLLLLLLLCCCCCCCCCCCCCCIIPPPPPPPPPVVVVVJJEJJYYYYYYYYMMMMMCCCCCCCCCCCCCCRRRRRLLLLLLLLLPBBBBBBBBBBBRQQQQQQQQQQTTTTTTTTTTTZZCCPPYYYYDDDDD

‎2024/js/day12.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { asLines } from './util.js';
2+
const garden = asLines('../input/12.txt').map(l => l.split(""));
3+
4+
const inSameRegion = ([x,y], region) => region[`${x}.${y}`] != undefined;
5+
const inAnyRegion = ([x, y], regions) => regions.some(r => inSameRegion([x, y], r));
6+
7+
const buildRegion = ([x, y], plant, region = {}) => {
8+
region[`${x}.${y}`] = 4; // initialize perimeter to 4
9+
const moves = [[0, 1], [0, -1], [1, 0], [-1, 0]];
10+
for (const [dx, dy] of moves) {
11+
const [nx, ny] = [x + dx, y + dy];
12+
if (nx < 0 || nx >= garden[0].length || ny < 0 || ny >= garden.length) continue; // outside
13+
if (garden[ny][nx] != plant) continue; // different plant
14+
region[`${x}.${y}`]--; // same plant, no perimeter needed
15+
if (inSameRegion([nx, ny], region)) continue; // already calculated
16+
buildRegion([nx, ny], plant, region);
17+
}
18+
return region;
19+
};
20+
21+
const compute = (garden) => {
22+
const regions = [];
23+
garden.forEach((_, y) => garden[y].forEach((_, x) => {
24+
if (inAnyRegion([x,y], regions)) return; // alredy in region
25+
const plant = garden[y][x];
26+
const region = buildRegion([x, y], plant);
27+
regions.push(region);
28+
}));
29+
return regions;
30+
};
31+
32+
const regions = compute(garden);
33+
const area = (region) => Object.entries(region).length;
34+
const perimeter = (region) => Object.values(region).reduce((a, b) => a + b);
35+
const price = regions.map(r => area(r) * perimeter(r)).reduce((a, b) => a + b);
36+
console.log(price);

0 commit comments

Comments
 (0)
Please sign in to comment.