- commit
- 378bcf2c8977e8eacfa7b74af062343c6e4fdbef
- parent
- bce59773e45df8012ff7ed4fd588f1c1214dfa07
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2024-12-12 18:59
2024-12-12
Diffstat
| A | 2024/12/input.txt | 140 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | 2024/12/solution.rs | 100 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | 2024/12/test1.txt | 4 | ++++ |
| A | 2024/12/test2.txt | 5 | +++++ |
| A | 2024/12/test3.txt | 10 | ++++++++++ |
| A | 2024/12/test4.txt | 5 | +++++ |
| A | 2024/12/test5.txt | 6 | ++++++ |
7 files changed, 270 insertions, 0 deletions
diff --git a/2024/12/input.txt b/2024/12/input.txt
@@ -0,0 +1,140 @@ -1 1 UUUKKKKZZZZZZEEEEEEEEEEEEEEEOOOOOOOOOOOOOOHHHHYYYYYYYYYYYYYEYYOOMNNMUUUUUUUUUYGYYYYYGGGGGZSSSSSSSSOOOOOOOOOOOOOOOODDDDDDDDDDAAAAAAJJJJJJJJJJ -1 2 UUKKKKKZZZZZZEEEEEEEEEEEEEEEOOOOOOOOOOOOOOOHHHYYYYYYYYYYYYYYYYOOMMMMUUUUUUUUUYYYYYYYGGGGZZZSSSSSSSOOOOOOOOOOOOOOOWDDDDDDDDDAAAAAAAJJJJJJJJJJ -1 3 UUKKKKKKKZZZZZEEEEEJEEEEEEEOOOOOOOOOOOOOOOHHYYYYYYYYYYYYYYYYYYMMMMMMMUUUUUUUUYYYYYYYYZZZZZZZSSSSSSOOOOOOOOOOOOOOODDDDDDDDDAAAAAAAHJJJHJJJJJJ -1 4 UUKKKKKKKKKZZZEEEEJJEEEETTEOOOOOOOOOOOOOOOHHYYYYYYYYYYYYYYYKYYYMMMMMUUUUUUUUUUUYYYYYYDDZZZZZZSSSSSOCOOOOOOOOOOOOOTDDFFFDDUAAAAAAHHHJHHJJJJJJ -1 5 KKKKKKKKKKKKZEEEEEJEEJEETTTOOOOOOOOOOOOPORYHYYYYYYYYYYYYYQKKKKMMMMMMMUUUUUUUUUUYYYYYDDZZZZZZZZSSOOOOOOOOOOOOOOOOOODDFFFFAAAAAAAHHHHJHHHJJJJJ -1 6 KKKKKKKKKKKKZZEEEJJJJJJJTTTOOOOOOOOOOOPPPYYYYYYYYYYYYYKYUKKKKMMMMMMMMMUDDDUDDDDDDDYDDZZZZZZZZZSSOOOOKOOOOOOOFOOOOOOFFFFFAAAAAHHHHHHHHHJJJJJJ -1 7 KKKKKKKKKKZZZZEEEEJJJJJJTTTOOOOOOOOOOOOPPPPPPPPPYYYYYYKKKKKKXXMMMMMMMMUDDDDDDDDDDDDDDZZZZZZZZSSSSOOOOOOOOOOOFOOOOOFFFFFAAGAAHHHHHHHHHHHJJJJJ -1 8 NNKKKKKKKZZZZZEEZJJJJJJJJTOOOOOOOOOOOOOPPPPPPPPPPPYYYKKKKKKKKMMMMMMMMMUDDDDDDDDDDDDNZZJJJZZZZZZZZOOOOOTTOOOOFFFAOOFFFFFAGGGAGHHHHHHHHHJJJJJJ -1 9 NNKKKKKKYZZZZZZZZJJJJJJJJJJOOOOOOOOOGGXPPPPPPPPPPYYYYKKKKKKKMMMMMMMMMUUDDDDDDDDDDDMMMMJJJZZZZOOOOOOOOOETOOFFFFFFFFFFFFVVVGGGGHHHHHHHHHHHJJJJ -1 10 NNNNKKKKYZZZZZZZJJJJJJJJJJJMDDOOOOOOOXXPPPPPPPPPPPPPYYKKKKKKKOMMMMMMMUUDDDDDDDDDDDDMMMMJJZZOOOOOOOOODDTTTTTFFFFFFFFFFFVVGGGGHHHHHHHHHJJJJJJJ -1 11 NNNNNNKYYYZYZZZJJJJJJJJJJJMMMDDOODXXXXXXPPPPPPPKKKKKKKKKKKKGGGMMMMMMUUDDDDDDDDDDDDDMMMQQJJZOOOOOOOOONDTTTTTTFFFFFFFFFFVVGGGGHHGHHHHJJJJJJJJJ -1 12 NNNNNNNYYYYYZZZZZJJJJJJJJJMMDDDDDDXXXXXXXXPPPPPKKKKKKKKKKKGGGGUMUUUMUUUDDDDDDDDDDDDBBBQQAAAAOOOOOONNNDDTTTTTFFFFFFFFFNNNNNNNNGGGHKHJJJJJJJJJ -1 13 NNNNNNYYYYYYYZZZJJJJJJJJJJMDDDDDDDXXXXXXXXXXXPPKKKKKKKKKKKKUGUUUUUUUUDDDDDCCDDCCDCDBBQQQAAAAQQOONNNNNDDTTTDTFFFFFNNNNNNNNNNNNGGGGYHYJYYJJJYY -1 14 NNNNNNYYYYYYZZYZZJJJJJJJJJDDDDDDDDDDXXXXXXXXXXXKKKKKKKKKKKKUUUUUUUUUDDDDDCCCCCCCCCCQQQQQAAAAAAONNNNNNDDTDDDDFFFFNNNNNNNNNNNNNGGGGYNYYYYYYYYY -1 15 NNNNNYYYYYYYYYYYJJJJJJJJJDDDDDDDDDDQXXXXXXXXXXXXKKKKKKKKKKKKKUUUUUUUUDDDDDCCCCCCCCCCCQQQAAAAAAOONNNNNDDDDDDDDDDFNNNNNNNNNNNNNGGGGYNYYYYYYYYY -1 16 NNNNYYYYYYYYYYSYYJJJJDDDDDDDDDDDDDDQQXXXXXXXXXXXXXKKKKKKKKKKUUUUUUUUUTTTTCCCCCCCCCCCCQQQQQQAAAQOONNNDDDDDDDDDDDDNNNNNNNNNNNNNGGGYYNNYYYYYYYY -1 17 NNNNNNYYYYYYYYYYYJJJJJJDDDDDDDDDDDDQQXXXXXXXXXXXXKKKKKKKKKKKKMLLLLULLLTCCCCCCCCCCCCCCCQQQQQAAAQQOONNDDDDDDDEDDDDNNNNNNNNNNNNNGGGYYYYYYYYYYYY -1 18 NNNNNYYYYYYYYYYYYJJJJJDDDDDDDDDDIIDQXXXXXXXXXXXXXKKDKKKUKKKKKMMMLLLLLLLCCUUUUCCCCCCQQQQQQQQAAAQOOOONNDDDEEEEEDNNNNNNNNNNNNNNNGGGYYYMYYYYYYYY -1 19 NNNNNYYYYYYYYYYYYJJJDDDDDDDDDDDDDDDDXXXXXXXXXXXXXDDDDKKKKKKKKEEELLLLLLLLELCCCCCQCCCCQQQQQQQQZZZOODDDDDDEEEEEEXNNNNNNNNNNNNNNNSGGYYMMYYYYYYYY -1 20 NNNNNNYYYYYYYYYYYYZZZZDDDDDDDDDDDDDDDXFFXXXFFXFXXFFFDKKKEEEEKEEELLLLLLLLLLJJJJCCCCCCQQQQQQQQZZZZDDDDDDEEEEEEEENNNNNNNNNNXXXGGSSSSMMYYYYYYYYY -1 21 NNNNNNNNYYYYYYYYYZZZZZDZDZDDDDDDDDDFFFFFXFFFFXFFFFFFFKEEEEEEEEEEEELLLLLLLLJJJJJQQQQQQQQQQQQQZZZZZZDDDDEEEEEEEENNNNNNNNNNXXXGGGSSSMMYYYYYYYYY -1 22 NNNNNNNYYYYYYYYYYZZZZZZZZZZZDDDDDDDFFFFFFFFFFFFFFFFFKKEEEEEEEEEEEEEELLLLLLJJJJJJQQQQQQQQQQZZZZZZZZZZZLLLEEELEENNNNNNNNNNXGGGSSKSSSMYYYYYYYYY -1 23 NNNNNNNNYYYYYYHHZZZZZZZZZZZZDDDHBBDDFFFFFFFFFFFFFFFFFKEEEEEEEEEEEEEEELLLLLJJJJJJQQQQZQQQQQQZZZZZZZZLLLLLLLELEENNNNNNNNNNNNNGSSKSSSMMYYYYYYYY -1 24 NNNNNNNNNYYYRHHHZZZZZZZZZZZDDDDHBBBBBFFFFFFFFFFFFFFFFEEEEEEEEEEEEEELLLLLJCCJJJJJJQQQZQQQQQZSZZZZZZZLLLLLLLLLEENNNNNNNNNNNNNSSSSSSSMMYYYYYYYY -1 25 NNNNNNNNYYTTHHHHHHHHZZZZSSZZZDPBBBBBBBFFFFFFFFFFFFKKEEEEEEEEEEEEEEEELLLLJJJJJJJJQQZZZQQQQQZZZZZZZZZZLLLLLLLLEYNNNNNNNNNNNNSSSSSSSMMYYYYYYYYY -1 26 NNNNNNNNNNTTHHHHHHHZHZZZSSSSZDPBBBBBBBAAFFFFFFFFFFFFEEEEBBEBBEEEEEEELLLLLJJJJJJZZZZZQQQQQQQZZZZZZZZZLLLLLLRLEYNNNNNNNNNNNNASSSSSSMMMYAYYYYYS -1 27 NNNNNNNNNNTTHHHHHHHHHHHZSSYSSDPBBBBBBBBAAFFFMFFFMFIIIEEEEBBBBEBEEEELLLLLLJJJJJJZZZZZQQQQQZZZZZZZZZZYZLLLRRRYYYQNNNNNNNNNNQQQSSSSSMMMSSSYYYSS -1 28 NNNNNNNNNNNHHHHHHHHHHHHZHSSSSPPPBBBBOBBAFFFFMMMMMFIIIEEEBBBBBBBEELLLLLLLLJJJJZJZZZZZZZZZZHYZZZZZZZZZZZLLRRYYYYYNNNNNNNNNNQSSSSSSSSSSSSSYYYSS -1 29 LNNNNNNWWWNWHHHHHHHHHHHHHSSSSPPPBBJBOBBBMFFFMMMMFFIIIEEEBBBBBBBBBBLLLLJJJJJJJZZZZZZZZZZZHHHZZZZZZZZZLLLLYYYYYYYYQQQQQQQQQQQSSSSSSSGSSSSSSYSS -1 30 LLLNNNNWWWWWHWHHHHHHHHHHHSKKKKKKKJJJMMMMMMFMMMMMEFIIYPEBBBBBBBBBBBBLLLLJJJJJZZZZZZZZZZZZHHZZZZZZZZZYYYYYYYYYYYQQQQQQQQQQQQSSSSSSSSSSSSSSSSSS -1 31 LLLLWWNWWWWHHWHHHHHHHHHHSSKKKKKKJJJJMMMMMMMMMMMMMMIYYYYYBBBBBBBBBBBLLLLJJJJLLZZZZZZZZZZXXXZZZQQVVZZYYYYYYYYYYYQQQQQQQQQQQSSSSSSSSSSSSSSSSSSS -1 32 LLLLWWWWWWWHWWHHHHHHHHSHSSKKKKKKJJJJJMMMMMMMMMMMMMYYYXBBBBBBBJJBBBFFLLAJJJJTLZZZZZZZZZZUUULQQQQVYYYYYYYYYYYYYYYQQQQQQQQSSSSSTSSSSSSSSSSSSSSS -1 33 LLLLLWWWWNWWWWSHHHHHHSSSSSKBKKKKKKJJMMMMMMMMMMMMMMMMMXBBBBBBBJJBBBBFBAATTDDTTZZZZZZZZZZUUUUQQQVVYYYYYYYYYYYYYYYYQQQQQQQQSSQSTTSSSSSSSSSSSSSS -1 34 LLLLLLWWWNNWNSSSHSHSSSSSSSKKKKKKKDMMMMMMMMMMMMMMXXXXXXXBBXBBJJJBBBBBBTTTTTTTTZZZZZZZZUUUUUUUUQVYYYYYYYYYYYYYYYYYQQQQQQQQQQQQFTSSSSSSSSSSSSSS -1 35 LLLLLLWWWNNNNSSSSSSSSSSSKKKKKKKKKKMZZMMMMMMMMMMMXXXXXXXXXXBJJJBBBBBBYTTTTTTTTVZZZNZZZUUUUUUUUVVVVYYYYYYYYYNYYYNSSSQQQQQQQQQFFTFSSSSSSSSSSSSS -1 36 LXXGWWWWNNNNNSSSSSSSSSSSKKKKKKKPFOFFZZMMMMMMMMMMMXXXXXXXXXBBBBBBBBYYYTTTTTTTVVNZNNNZZZUUUUUUUVVVYYYYYYYYYYNNNNNNSSQQQQQQFQFFFFFSSSSSSSSSSSSS -1 37 XXXGWWWNNNNNNNNSSSSSSSSSKKKKSFFFFFFFFFMMMMMMMMMMMMXXXXXXXXBBBBBBCBFYTTTTTTDDNNNNNNJZZZIUUUUUUWWWHYYYYYYYNNNNNNNNNSSQQGQFFFFFFFFSSSSFSSSSSSSS -1 38 AXXGWWWWYYNNNNNNSSSSSZSSKSKSSSFFFFFFFFMMMMMMMMMMMXXXXXXXFFFFFFFBFFFTTTTTTTNDNNNNNNJJZZUUUUUUWWWWWWYYYYYYNNNNNNNNNQQQQGQQQQFFFFFSSSSFSSSSSSSS -1 39 AXGGGSSYYYNNNNNNNSSSSZZSSSSSSFFFFFFFFFFMMMMUMMMMMMNXXXXFKFFFFFFFFFFPTTTTTTNNNNNNNJJJZJUUUUUWWWWWWWYYYYYNNNNNNNNNNQQQQQQQQQQQFFFFSSSFFSSSSSUU -1 40 SSSSSSTNNNNNNNZNNZSSSZZSSSSSSFFFFFFFFFFFMMUUAANNMNNFFFXFFFFFFFFFFFFTTTTNNNNNNNNNJJJJJJUQUUUMMWWWWWWWWYYNNNNNNNQQNNNQQQQQQQQQQQFFFFUUFSUSUUUU -1 41 SSSSSSTNNNNNNNZNNZZZZZZZSSSFFFFFFFFFFFFFMUUUAANNNNTFFFFFFFFFFFFFFFFQQTTTQNNNNNNNJJJJJJJMMMMMMMWWWWWWWYFNNNNNNNNQQQQQQQQQQQQQQQFFFFUUUFUUUUUU -1 42 SSSSSNNNNNNNNNZNNZZZZZZZSSSFFFFFFFFFFWFFMUUUUAAAAATTTFFFFFFFFFFFFFFQQQQQQQQQQQNNJJJJJQQMMMMMMMWWWWWWWFFFYNNNNNNQFQQQQQQQQQQQQQQFFFFUUUUUUUUU -1 43 PSSSSSSNNNNNNNZZNZZZZZZZZZSFFFFFFFFFFFFFFUUUUUAAAATTTZZZFFFFFFFFFFFFQQQQQQQQQNNJJJJQQQMMMMMMMMWWWWWFWWFFYNNNNNNFFQQQQQQQQQQQQQFFFUUUUUUUUUUU -1 44 SSSSSNNNNNNNNNNZZZZZZZZZZRRFFFFFFFFFUFFFFUUUUAAAATTTTZZZZFFFFFFFFFFFQQQQQQQQQWNNJJJQQQMMMMMMMMWWWWWFWWWFNNNNFFFFFQFFFQQQQQQQFFFUUUUUUUUUUUUU -1 45 SSSSSSNNCCCCCCCCCCZZZZZZRRFFFFFFFFFFUUUUUUUUUAAAATTTTZZZZFFFFFFFFFFFQQQQQQQQQJJOOOOOOOMMMMMMMMWWWWWFFFFFNNFFFFFFFFFFFQQQQQQQQFFFUUUUUUUUUUUU -1 46 SSSSSSSFCCCCCCCCCCCZZZZZRRFFFFFFFFFFUUUUUUUUUAAATTTTTTZZZFFFFFFFFFQQQQQQQQQRJJJOOOOOOOJMMLLLMMMMMWFFFFFFFNFFFFFFFFFFGFFUCQQAQFHFUUUUUUUUUUUU -1 47 SSSSSSSSCCCCCCCCCCCZZZZZRRFFFFFFFFFFUUUUUUUUUAAAAZZTZZZZZFFFFFFFQQQQQXQQJJJJJJJOOOOOOOJLLLOOOOLMMWWJFFFFFFFFFFFFFFFFFFUUCCQAAHHHUUUUUUUUUUUU -1 48 ESSSSSSECCCCCCCCCCCZZZZZRFFFFFFFRFFUUUUUUUUUUAAAAAZZZVVVVFFFAFFFFQQQQXQQQJJJJJJOOOOOOOLLLLOOOOLMMJJJFFFFFFFFFFFFFFFFFUUUCCCHAAHHUUUUUUUUUUUU -1 49 EESSSCCCCCCCCCCCCCCZZZZRRRRRFFRFRRFUUUUUUUUUUUAAAUZZZVVVVVVFFVVVFQQQXXXQQQAJJJJOOOOOOOLLLLOOOOLMMJJJJJFFFFFFFFFFXFFFFUUUHHHHHHHHHHCUHUHUUUUU -1 50 EEEEECCCCCCCCCCCCCCZRRRRRRRRFFRRRRRUUUUUUUUUUUUUUUZZXXXVVVVVVVVVVQQQQXXXQQQQQTTOOOOOOOLLLNOOOOJJJJJJJJJFFFFFFMMFFFFFFUUUHHHHHHHHHHHHHHHHHUUU -1 51 CCCCCCCCCCCCCCCCCCCZRRRRRRRRFFRRRUUUUUUUUUUUUUUUUZZZXXXXXVVVVVVVVVVQXXXXQQQQQTTOOOOOOOLENNOOOOZZZJJJJJFFFFFFFMMFFFFFFUUUHHHHHHHHHHHHHHHHUUUU -1 52 CCCCCCCCCCCEECCCCCCZRRRRRRRRRRRRRRUUUUUUUUUUUUUUUUXXXXXXXVVVVVVVVVVVXXXOOOOOOOOOOOOOOOOOOOOOOOZZZJJJJJJJFJJJMMMMFFFFUUUHHHHHHHHHHHHHHHUUUUUU -1 53 CCCCCCCCCCCCCCCCCCCRRRRRRRRRRRRHHRHUUUHHHUUUUUUCUXXXXXXXVVVVVVVVVVVVVTTOOOOOOOOOOOOOOOOOOOOOOOZZZZJJJJJJJJMMMMMUUFUUUUUUUHHHHHHHHHUUUUUUUUUU -1 54 EEEEECCCCCCCCCCCCCCRRRRRRRRRHRRHHHHHHHHHHUUUUUUCCXXXXXXXXVVVVVVKKKKVVTTOOOOOOOOOOOOOOOOOOOOOOOZZJJJJJJJJJJMMMMMUUUUUUUUUUHHHHHHHHHHUUUUUUUUU -1 55 EEPPPCCCCCCCCCCRZRZRRRRRRRRHHHHHHHHHHHHHHHHUUUCCCCXXXXXXXVVVVVVKKKKKKTTOOOOOOOOOTTTTTOOOOOOOOOZZJJIIJJJJMJMMMMMMMUUUUUUUUHHHHHHHHHTTTUUUUUUU -1 56 RPPPPCCCCCCCCCCRRRRRRRRRRRRRHHHHHHHHHHHHHUUUCUCFFXXXXXXXXVVVVVVVKKKKKTTOOOOOOOOOTTTTNOOOOOOOZZZZIIIJJJMMMMMMMMMMUUUUUUUUHHHHHHHHHTTWTTWWWUUU -1 57 PPPPPCCCCCCCCCCARRRRRRRRRRRRROHHHHHHHHHHHHHHFFCFFQQXXXXXVVVVVVVKKKKKKKTTTTTTTTTTTTTNNOOOOOOOEZZZIIIIJMMMMMMMMMMMMUUUUUCCCCHHHHHHHHHWWWWWWWWU -1 58 PPPPPPPPEECCCCCARRRRRRRRRRRRROHHHHHHHHHHHHFFFFFFFFQQXXVXVVVVVKKKKKKKKKKTTPTPPTTTTTTNNOOOOOOOEZEIIIIIISSMMMMMMMMMMUUUUCCCKCMHHHHHHRWWWWWWWDDD -1 59 PPPPPPPPJJCCCCCUZZZRRURRRRRRRRHHHHHHHHHHHHFFFFFFFFFFFVVVVVVVVKKKKKKKKKKKKPPPPPPTTTTTNTOOOOOOEEEIIIIIIIIMMMMMMMMMMMMMCCCCCCHHHHHHHWWWWWWWWWDD -1 60 PPPPPPRJJJCCCCCUZZRRUURRRURUUUUHHHHHHHHHHFFFFFFFFFFFFVVVVVVVTTDKKKKKKKKKKUPPPPPPPTTTTTOOOOOOEEIIIIIIIIIMMMMMMMMMMCCCCCCCCCHYYYHHHWWWWWWWWDDD -1 61 PPPPPPRRJUCCCCCUZZZUURRRRUUUUUUHHHHHHHHHKFFFFFFFFFFFVVVVVVVTTTKKKKKKKKKKKKKPPPPPPPPTKKOOOOOOEEIIIISIIIIZMMMMMMMMMCCCCCCCCCYYYYYYHWWWWWWWWWDD -1 62 PRRPRRRRRRUUUUZZZZZUUUUUUUUUUUUUHHJHHHHHFFFFFFFFFFFVVVVVVVVTTTTKTTKKKKKKKXXPPPPPPPPCCKOOOOOOEIIIIISUUIUMMMMMVMMTMCCCCCCCCDYYYYYYWWWWNWWWWWDD -1 63 ERRRRRRRRUUUUUUUZZUUUUUUUUUUUUUUHSSSHHHHFFFFFFFFFFFVVVVVVVVTTTTTTTKKKKKKKXXPPPPPPPPKKKOOOOOOESISISSUUUUUMMMMMMMTMCCCCCCCCCCCCCCDDWWDWWWWWDDD -1 64 EERRRRRRJUUUUUUUZZZZUUUUUUUUUUUSSSSSSHHFFFFFFFFRFFFVVVVVZTTTTTTTTTKKKKKKXXXPPPPPPPPKKKKBEEESSSSSSSSSUUUUMMMMMMMTDCCCCCCCCCCCCCCDDDDDDDDDDDDD -1 65 EERRRRRRRUUUUUUUZZZZZUUUUUUUUUUSSSSGSHHHFFFFFFFFFFVVVVVVZTTTTTTTTTKKKKKKKXXPPPPPPPXKKKKBBEEESSSSSSSSSSUUUUMMMMMMDCCCCCCCCCCCCCCDDDDDDDDDDDDD -1 66 EERRRRRRRRUUUUUUUZZUUUUUUUUUUUUSSSSGGGGHDFFFFFFFFFMMVVVRTTTTTTTTTTKRRKKKXXXXPMPPPPXXKBBBQDEVSNSSSSSSSUUUUUUUUUUJDDDDDDCCCCCCCCCHHDDDDDDDDDDD -1 67 ERRRRRRRRRUUUAAAAAZZUUTUWUUUUUUUSSGGGGFFFFFFFFFFFFVVVVRRRRRRTDTTTTTRTXXXXXXXXPPPPXXQMQBQQQVVSSSSSSSSSUUUUUUUUUUDDDDDDDCCCCCCCCCHHHDDDDDDDDDD -1 68 EERRRRRRRRRUAAAAAAAAAATTWWUUUUUUSSGGGGGFFFFFFFFFFRRRVVRRRRRRRTTTTTTTTXEXXXXXXXXXXXXQQQQQQQQVSSSSSSSSSUUUUUUUUUUDDDDDDDCCCCCCCCCHHDDDDDDDDDDD -1 69 VVARRRRURRUUUAAAAAAAAWWWWWWUUUUUSFGGGGGFFFFFFFFFFRRRRRRRRRRRTTTTTTTTTEEXXXXXXXXXXXQQQQQQQQQSSSSSSSSSUUUUUUUUUUUDDDDDDDCCCCCCCCCHHHDDDDDDDDDD -1 70 VVVKRRUUUUUUUAAJAAAAAWWWWWWUUUUUFFGGGGFFFFFFFFFFJRRRRRRRRRRRRRRTTTTEEEEXXXJXXXXXXXQQQQQQQQQRRSSSSSSSUUUUUUUUUUUUDDDDDDCCCCCCCCCHHHHDDDDDDDDD -1 71 VDVKRRUUUUUUUAAAAAAAWWWWWWZUUUUFFFFGGGFFGFFFTTFJJJRFRRRRRRRRRRSTTTEEEEEEJJJJJXJXXXXQQQQQQQSSSSSSSSSUUUUUUUUUUUUUUDDDDCCCCCCCCCCHHUUHDDDDDDDD -1 72 VDVVRUUUUUUUUAUAWAAAWWWWWWWWUUFFFFFFGGGGGFGGGJJJJJRRRRRRRRRREEEEEEEEEEEJJJJJJJJXXXXQQQQQQQQQSSSSSSSSUUUUUUUUUUUUGDDDDCCCCCCCCCCHHHHHDDDDDDDD -1 73 VVVVUUUUUUUUUUUWWAAAWWWWWWWWUUUUFFFFFFGGGGGGGGJJJJRRRRRRRREEEEEEEEEEEEEJJJJJJJJXXXXQQQQQQQQQQSSSSSSSSUUUUAUUUUUGGGDDDCCCCCCHHHHHHHHHDHDDDDDD -1 74 VVVVUUUVUDUUDDDDWWAWWWWWWWWWUUUFFFFFZZFGGGGGGGGJJJRRRRRRRRREEEEEEEEEEEEJJJJJJJJJJJQQQYYYYYZQQSSSSSSUUUUAUAUUUUGGGGDDDCCCCCCHHHHHHHHHHHDDDDDD -1 75 VVVVUVUVUDDDDDDDWWWWWWWWWWWWUUUFFFFFZFFGFFGGGGGJJJJRRRRRRRRESEEEEEEEEEEJJJJJJJJJJJJJJYYYYYYYYSSSSSSUSUAAAAAUUUGGEGDDDCCCCCCHHHHHHHHHHHDDDDDD -1 76 VVVVVVVVDDDDDDDDWWWWWWWWWWWWUUFFFFFFFFFFFFFGGGGGJJJJRRRRRRREEEEEEEEEEEEEJJJJJJJJJJJJJYYYYYYYYYSSSSSSSUAAAAAUUGGGGGDDDCCCCCCHHHHHHHHHHHHHDDDD -1 77 VVVVVVDVDDDDDDDDWWWWWKKKWWWWWGTFFFFFFFFFFFFFFFGJJJJJRRRRREEEEEEEEEEEEEEJJJJJJJJJJJJJJJYYYYYYYYYYSCSCSUAAAAUUGGGGGGGGDCCCCCCHHHHHHHHHHHHHPDDD -1 78 VVVVVVVDDDDDDDDDWWKWWKKKWWWWWGFFFFFFFFFFFFFFFFJJJJJJHLHRRQEEEEEEEEEEEEEJJJJJJJJJJJJJJYYYYYYYYYYYYCCCCKKKAAUUUUGGGGDDDCCCCCCHHPKHHHHHHHHHHDVD -1 79 VVVVMVVMDDDDDDDDKKKKKKKKKKWKGGGFFFFFFFFFFFFFGFJJJJJHHHHRRQEEEEEEEEEEEEJJJJJJJJJJJJXJJYYYYYYYYYYYYCCCCKKKDUUUUUGGGGGDDDCCCCPPYPPHHHQHQQVHHDDD -1 80 VVVMMVMMMDDDDDDDDKKKKKKKKKKKKGGFFFFFFFZZZZVGGGJJJJJHHHHHZHEEPEEEMMEMMJJJJJJJJJJJJJJJJYYYYYYYYYYCCCCCCCKKDDCUUUGGGGGDDDCCCCPPPPPPQFQQQVVVDDID -1 81 VMMMMMMMMDDDDDDDDKKKKKKKKKKKGGGGGGGFFFVVVVVGGGJJJJHHHHHHHHHEPEEEIMMMMYYYJJJJJJJJJQJJJYYYYYYYYYYYCCCCCCKKCCCUUUUGYGGDDDCCCCPPPPPPQFQQQQVQIIII -1 82 VMMMMMMNDDDDDDDDKKKKKKKKKKKKKGGGGGGFZZVVVVVVBGJJJHHHHHHHHHHHPPPEMMMQMMMMPJJJXJJJJJJWWYYYYYYYYYYYYCCCCCCKCCCCCCCYYGYDNNNNNNPPPPPOQQQQQQQQIIII -1 83 MMMMNNNNDDDDDDDDDNKKKKKKKKKKKKGGGGGGGVVVVVVVBBBBBBHHHHHHHHHHPPMMMMMMMMMMMMMJJHHHHHJJWYYYYYYYYYYYYCCCCICCCCCCCCCYYYYLNNNOOPPPPPOOQQQQQQQQQQII -1 84 MMMMMNNNNNDDDDDDDDKKKKKKKKKKKKGGGGGGGPUVVVVBBBBBBBBHHHHHHHHHHMMMMMMMMMMMMMMJHHHHHHHHHYYYYYYYYYYYCCCCIICCCCCCCCLLLLLLNNNOOKXXKKQQQQQQQQQQQIII -1 85 MMMNNNNNNNNDDDDDDKKKKKKKKKKKKKGGGGGRRUUVVVBBBBBBBBBHHHHHHHHHMMMMMMMMMMMMMMUUUUUUUUKHKYYYYYYYYYTYCIIIIICCCCCCCCLLLILOOOOOOXXOXKKKQQQQQQQQQIII -1 86 MMNNNNNNNNNNDDDDDKDJKKKKKKKEKGGGGGUUUUUQVVBBBBBBBBBBHHHHHHHHHMMMMMMMMMMMUUUUUUUUUUKKKYYYYYYYTTTTIILIIIIICCCCCILOOILOOOOOQXXXXXXQQQQQQQQQIIII -1 87 MMNNNNNNNNNDDDDDDDDDYKKKPKPZZZGGGUUUUUUBBVBKBBBBBBBBHHHHHHHHHHEMMMMMMMMMMUUUUUUUUUKKKYYYYTTTTTTTIIIIIIIIICCIIIIOOOLOOOOOQQXXXXXXQQQQQQQIIIII -1 88 MMNNNNNNNNNNDDDDDDDDDEKPPPPZZGGGGUUUUUUUBBBBBBBBBBBBHHHHHHHHEEEDDDDDDDMMMUUUUUUUQUKKKQYYYTTTTTTIIIIIIIIIINCIOIOOOOOOOOOOQOXXXXXXMQRRQQQIIIII -1 89 NNNNNNNNNNDDDDDDDDDDDXPPPPPZZZGGUUUUUUUUUBBBBBBBBBOOHHHHHHHHHEEDDDDDDDMMMMUUUUUUQUKQRQFYTTTTTTTTTIIIIIIIIIIIOOOOOOOOOOOOOOOXXXXXQQXQQQQILIII -1 90 NNNNNNNNNRRRDDIDDDDDDXXXXXXZZZZZUUUUUUUUUBBBBBBBBBOHHHHHHHHDDDDDDDDDDDMMMMUUUUUUQQZQQQQYTYYTTTTTTTIIIIIIIIIIOOOOOOOOOOOOOOXXXXXXXXXXQQQQLLII -1 91 NNNNNNNNRRRRRRDZDDXXXXXXXXEZZZZZZXZUUUUUUUUBBBBOBOOOHHHHHHHDDDDDDDDDDDMMMUUUUUUUQQQQQQOYYYYYTTTTTTJJJJJJJJIIIIUIIOOOOOOOOOOXXXXXXLLLLQLLLLLU -1 92 MMMNNNNNNRRRRDDDDDXXXXXXXXEZZZZZZZZUUUUUUUUUUUUOOOOOHHHHHHHDDDDDDDDDDDMMUUUUUUUUQQQQQQOYYYYYYTYTIIJJJJJJJJIIIIIIIOOOOOOOOOOOXXXXLLLNLLLLLLLU -1 93 NNNNNNNNNRRRRRRLDOOOXXXXXXEZZZZZZZZQQUUUUUUUUUUUUVVVEEEHHHEDDDDDDDDDDDMUUUUUUUUUUUQQQQQYYYYYYYYTTTJJJJJJJJIIIIIIIOOOOOOOOXXXXXXXLLLLLLLLLLLU -1 94 PNNNNNNNRRRRRRRLOOOOOXXXXXZZZZZZZZZZQUUUUUUUUUUUUUVEEEEEHHEDDDDDDDDDDDMUUUUUUUQQQQQQQQQYYYYYYYYYTIJJJJJJJJIEIIIIIOKOOOGKKXXXXXXXXLLLLLLLLUUU -1 95 PNNNNNNNRRRRRODOOOOOOXXXXXIZZZZZZZZQQUJZUUUUUUUUUVVVVEEEEEEDDDDDDDDDDDUUUUUPUQQFFQQQQQQYYYYYYYYYYYJJJJJJJJIIIIIIOOKKKKKKKBBXXIXXXLLLLLLLLUUS -1 96 PZNNNNNRRRRRNOOROOOOOXXXXIIIIZZZZZZQQQZZUUUUUUUUUUVVVEEEEEEDDDDDGGGGUUUUUUUUUUUHHQHHQYYYYYYYYYYYYYJJJJJJJJJJWWWWIKKKKKKKNKXXXIXLLLLLLLLLLSUS -1 97 PZDNNNNZZZZZOOOOOOOOOOXXIIIIIZZZZZZQQZZZUUUUUUUUUUMBBEEEBBEDDDDDHHHHUUUUUUUUUUUHHHHHQYYYYYYYYYYYWWJJJJJJJJJJWWWWWKKKKKKKKKKXOXXGGGZLLLLLLSSS -1 98 ZZDDNNNZZZZZOOOOOOOOOOOXXIIIQZZZZZZQZZZZZZZZRUUUUUUBBBBBBEEDDDDDHHHHHHHGUUUUUHHHHHHHQYYYYYYYYYYYWWWWWIIIIJJJWWWWWKKKKKKKKKKOOXGGGGZLZZSSSSSS -1 99 ZZZZZZZZZZZZZOOOOOOOOOOTOOIIQZZZQQQQQQQZZZZZZZUUUWWBBBBBBEEEEEEHHHHHHUHHOOHHHHHHHHHHYYYYYYYYYYYYWWWWWIIIIJJJWWWWWKKKKKKKMMKOOOMGGZZZZZSSSSSS -1 100 GZZOZZZZZZZZOIOZOOOOYOOOOOOQQQQQQQQQQQZZZZZZZZUUUWBBBBOBBEEEHEEEHHHHXHUOOOOOHHHHHHHHYYYYYYYYYYYUXXWWWIIIIIJJWWWWWWKKKKKQQMMMMMMMZZZZZZSSSSSS -1 101 ZZZZZZZZZZZOOOOOAOOYYOMMMMQQQQQQQQQZZZZZZZZZZJJJWWWOOOOOBEHEHHHHHHHHHHHOOOOHHHHHHHHHHHYYYYYYYYYYXXXXXXXXXXJJWWWWWWWWKKQQMMMMMMMZZZZZZTSOSSSS -1 102 ZZZZZZZZZZZOOOOOOXOOOOMMMMMQQQQQQQQZKZZZZZZZJJJJJJWWOOOOEEHHHHHHHHOOHHOOOOOHHHHHHHHHHHYYDDYYYNYFXXXXXXXXXXJJWWWWWWNNRRNNNMMMMMMMZZZZZZSSSSSS -1 103 ZZZZZZZZZZPOOOORRMMJOMMMMMQQQQQQQQQQZZZZZZJZJJJJJJJWOOOOOHHHHHHHHHOOOOOOOOYHHHHHHHHHHHHDDDYYYYFFXXXXXXXXXXXXWWWWNWNNNNNNMMMMMMMZZZZZZUSSSHSS -1 104 ZZZZZZZZZZZDDDOOOMMMMMMQQQQQQQQQQQQQXXZZJJJJJJJJJJJWOOOOOHHHHHHHHHHHOOOOOOOHHHHHHHHHLHDDDDYYYWXXXXXXXXXXXXXXWWWWNNNNNNNNMMMMMMZZZZZZZZSHHHHH -1 105 ZZZZZZZZZZDDDDDMMMMMMMMQQMPPQQQQQQQFQQAAJJJJJJJJJJOOOOOOHHHHHHHHHHHHOOOOOOVHHHHHHHHHHDDDDDYWWWAXXAXXXXXXXXXXWWWWWNNNNNNLMMMMMMMZZZZZZPSHHHHH -1 106 ZZZZZZZZZDDDDDDDMMMMMMMMMMMMQQQQQQQQQAAAJJJJJJJJJJUUOOOOHHHHHHHHHHHHOOOOOOVHHHHHHHHHHHHDDDAAAAAAAAXXXXXXXXXXXXWWWNNNNNNLMMMMMMMZDZZZZSSSHHHH -1 107 ZZZZZZZZTZZZDDDMMMMMMMMMMMMTQQQQQQQQQAAAJJJJJUJJUUUUOOOOAHHHHHHHHHHHOOOOOOVVHHHHHHHHHEEEDDDAAAAAAAXXXXXXXXXXXXWWWWWNNNNWMMMMMMWDDDZZZZHHHHHH -1 108 ZZZZZZZZZZZZDDDMMMMMMMMMMMMMQQQQQQQQQNAAJJUUUUUUUUUUOOOHHHHHHHHHWWWWWWOOOOOOHHHHHHHEEEEEDAAAAAAAAAXXXXXXXDEXXXWWWWWWWWWWWMMFDDDDDDYZDDDDHHHH -1 109 ZZZZZZZZZZDDDDDMMMMMMMMMMMJRRQQQQQQQQNNNJUUUUUUTUUTOOOOHHHHHHHHHWWWWWWOOOOOHHHHEEEEEEEEEDDDAAAAAAAXXXXXXDDDWWWWWWWWWRWWWWFFFDDDDDDYDDDDHHHHH -1 110 ZZZZZZZZZZZDMMDMMMMJJJJJJMJRRRQQBBBBQCNNJJUUUUTTTTTOOOTHHHWHHHHHWWWWWWOOOOOHHEEEEEEEEEEEDDDAAAASAAXXXDXXDDWWWWWWWWWWRRWFFFFFFDDDDDDDDDDHHHHH -1 111 ZZZZZZZZZZZMMMMMMMMMKJJJJMJQQQQQBBBNNNNNNNUUUUTTTTTOBTTTHWWQHHHHWWWWWWOJJOJJEEEEEEEEEEEECCCAASASXXXXXDDDDDDWWDWWWWWRRRFFFFDFDDDDDDDDDDDDHHHH -1 112 ZZZZZZZZQQQQQEQMMMMJJJJJJJJJKBBBBBNNNNNNNNNUUUTTTTTBBBTTTQQQNHNHWWWWWWXXJJJJJJJJEEEEEEEEECCASSSSSSSXIDDDDDDDDDWWWRWWRRRFFFDDDDDDDDDDDDDAHHHH -1 113 ZZZZZZZZRQQQQQQZZZZJOJJJJJJJJJJBBBNNNNNNNNNTTTTTTTTTBBBTTQQQNNNWWWWWWWNXXXJJXXXXXEEEEEECCCCASSSSSSTTDNDDDDDDDDWWWRRWRRRRRFDDDDDDDDDDDDDAHHHH -1 114 ZZZZZZZRRQQQQQQZZZZJJJJJJBBBBBBBBBBBNNNNNNNTTTTTTTTTTTTTTTQQNNNWWWWWWWNXXXXXXXXXXXEECCCCCCCCCCCSSSDDDDDDDDDDDDDWRRRRRRRFFFDDDDDDDDDDDDDDTTHH -1 115 UUUZZUQQQQQQQQQZZZZJJJJJJBBBBBBBBMBNNNNNNNNTTTTTTTTTTTTTTQQQNNNWWWWWWWNNXXXXXXXXEEEEECCCCCCCCCCRSSDDDDDDDDDDDDDDRRRRRRRRRFDDDDDDDDDDDDTTTTTH -1 116 UUUUUUSQQQQQQQQZBZZJJJJJBBBBBBBBMMMNNNNNNNNTTTDDTTTTTTTTTTQQQNQWWWWWWWXXXXXMMMMMMMEEEERCCCCCCSRRKDDDDDDDDDDDDDDDRRRRRRRFFFFDDDDDDDDDDTTTTTTT -1 117 UUUUUSSQQQQQQQYBBZBBYYJBBBBBBBBMMMMNNNNNNNNDDDDTTTYTTTTTTTQQQQQQQQQQIIXXXXXMMMMMMMEEERRCCCCCCSRKKKGGDDDDDDDDDDRRRRRRRRRRRRFFDDDDDDDDDDTTTTTT -1 118 UUUUSSSQQQQQQQBBBBBBBBBBBBBBBBMMMMMMNNNNNDDDDDDDDDTTTTTTTTQQQQQQQQQIIIXXMMMMMMMMMMEERRRRCCCCSSSKKKGKDKVDDDDDDCCRRRRRRRRRRRRFDUDDDDDDDDTTTTTT -1 119 UUSSSSSQQQQQQQQBBEBBBBBBBBBBBBBMMMMMMMNNNTTTDDDSSSGGTSTTTQQQQQQQQQQIBBXXMMMMMMMMMMEERRRCCCSSSSSWKKKKKKVVDDDCDCCRRRRRRRRRRRFFFDDDNNNNDDDTTOOO -1 120 UUSSSSQQQQQQQQQQBBBBBBBBBBBJJMMMMMMMMMTTTTTTTDDDSSSSSSSTTSSSQQQQQQQIIXXXMMMMMMMMMMWERRRCCCSSSSSWKSKKKKVVVDVCCCCCRRRERRRRFFFFFFDNNNNNDDTTOOOO -1 121 SSSSSSQQQQQQQQQQBQQBBBBBBBBJJJJMMMMKMTTTTTTTTTDDSSSSSSSSSSSEEQQQQQIIIXXXMMMMMMMMMMWERERCCCCSSSSSKSKKKVVVVVVCCCCRRRRRRRRFFFFFFNNNNNNNNNOOOOOO -1 122 SSSSSSSSQQQQQQQQQQQBBBBBBBBJJJJMMMMMMMTTTTTTTTDDSSSSSSSSSSSEEEQQQIIIIIXXMMMMMMMMMMEEEECCCCSSSSSSSSSSKKVVVVVVVCRRRRRRJJRFFFFNNNNNNNNNNNHOOOOO -1 123 SSSSSSSSQQQQQQQQQQZBBBBBRRJJJJJJJJMMPPTTTSSSSSODSSSSSSSSSSSEEEQQQJEEIIXXMMMMMMMMMMEEEECCCCSSSSSSSSSKKKVVVVVVCCCCCRJJJJJFFFFFFFNNWNNNNNNNOOOP -1 124 SSSSSSSSQQQUUQQQQQQBRRRRRRJJJJJJJJJMPPTTSSSSSSOOOSSSSSSSSEEEEQQQQEEMMMMMMMMMMMMMMEEEECCCCSSSSSSSSSSKKVVVVVSVDDDDDAJJJJJFFFFFFNNNNNNNNNNHHHHP -1 125 SSSSSSSQQQUUUUUUQQQQRRRRRRJJJJVJVVJJPTTTTSSSSSOOSSSSSSSSSSEEEEEQEEEMMMMMMMMMMMMMEEEEEECEESESSSSSSKKKKKKVDDDSSDDDDDDJJJJFFFFFFMANNNNNNNHHHHHP -1 126 SSSSSSSQUUUUUUURRQRRRRRRRJJJJJVVVVVVTTTSSSSSOOOOOOSSSSSSSEEEEEEEEEEMMMMMMMMMMMMMEEEEEEEEEEESSSSSKKKKKKKDDDDDDDDDDDJJJJJFFMMFMMMDMMMMNNUHHHHH -1 127 SSSSSSSAAUUUUUURRRRRRRRRRJJJJJJVVVVVTTTTSSSSSOOOOOOKSSSSEEEEEEEEEEEMMMMMMMMMMMMMIEEEEEEEEEESYSKSSKKKKKKDDDDDDDDDDDJJJJFFFMMMMMMMMMMMHHHHHHHH -1 128 SSSSSSAAAUUURRRRRRRRRRRRJJJJJVVVVVVVSVTSSSSSOOOOOOOKKSSOOEEEEEEEEEEMMMMMMMMMMMMMIIYEEEYYEEESHHKSKKKKKKKKKDDDDDDDDGGGGGMMMMMMMMMMMMMMHHHHHHHH -1 129 SSSSSSSSAAAURERRRRRDDRRRRRRRJRVVVVVVVVVVSSSOOOOOOOOKKSOOOOOEEEEEEEEMMMMMMMMMMMMMIYYEEEYYEEEEHHHKKKKKKKKDDDDDDDDDDGGGGGMIMMMMMMMMMMMMHEHHHHHH -1 130 SSSSSSSEAAAAEEEERRRDDDRDDDRRRRVVVVVVVVVVVSOOOOOOOOKKKKKKKOOBBEEEEEEMMMMMMMMMMMMMYYYYYYYYEEEHHHHHKKKHKKDDDDDDDDDDDDGGGMMMMMMMMMMMMMMMMHHHHHHH -1 131 SSSSSSSEAEEAEEEEDDDDDDDDDRRRRRRVVVVVVVVVVVOOOOOOOOKKKKKKKBJBBEEEPEEMMMMMMMMIIYYYYYYYYYYYEEEHHHHHHHHHKKDDDDDDDDDDDDDDGGGGMMMMMMMMMMMMHHHHHHHH -1 132 SSSSESSEEEEEEEVVDDDDDDDDDDRRRRRVVVVVVVVVVVOOOOOOKKKKKKBBBBBBEEEPPPIIIIIIIIIIIYYYYYYYYJJJEEHHHHHHHHHHHHDDDDDDDDDDDDDGGGMMMMMMMMMMMMMRHHHHHHHH -1 133 SSEEEEEEEEEEEEDDDDDDDDDDDDDRVRVVVVVVVVVVVVMOMOMMMKKKBBBBBBBBEJEPPPIIIVIIIIIIIIYYYYYGYYYJJJHHHHHHHHHHHHDDDDDDDDDDDDDGCCCCMMMMMMMMMMMMHHHHHHHH -1 134 SSSSEEEEEEEEEEWDDDDDDDDDDDDVVVVVVVVVVVVVVVMMMMMMKKKBBBBBBBBBBJJJPPJJIIIJIIIIJJYYYYYYYJJJJJHHHHHFHHHHDDDDPDDDDDDDDDDGCCCCSMMMMMMMMMHHHHHHHHHH -1 135 SSSSEEEEEEEEEEWWDDDDDDDDDLDDYYYVVVVVVVVVVVMMMMMMKFHHBBBBBBBBZJJJJJXJIJJJJIIIJJYYYYYQYJJJJJJJZZZZZHHZZZDZDDDDZDDDCGGGCCCCSMMMMMMMMMHHHHHHHHHH -1 136 SSSSSEEEEEEEEDDDDDDDDDDDDDYYYYYYVVVVVVVVVVMMMMMFFFHFBBNBBBBBJJJJJJJJJJJJJIIJJJYYJYYYJJJJJJJJZZZZZZZZZZZZZZDZZDAACCCCCCCCMMMMMMMHMMHHHHHHHHHH -1 137 SSSSEEEEEEEEEEDDDDDDDDDDDYYYYYYVVVVVVVVXVVMMMMMMFFFFFBBBBBBJJJJJJJJJJJJJIIIJJJYJJJJJJJJJJJJJJZZZZZZZZZZZZZZZZZCCCCCCCCCCCMMMMMHHHHHHHHHHHHHH -1 138 SSSEEEEEEEEEEEVDDDDDDDDDDYYYYYYYYVVVVVVVVVMMMMMMMFFFFFFFFFBJJJJJJJJJVJJJJIIIIJJJJJJJJJJJJJJZZZZZZZZZZZZZZZZZZZCZZCCCCCCCCCCMHMHHHHHHHHHHHHHH -1 139 SSEEEEEEEWEEEEVVDDDDDDDYDYYYYYYYVVVVMMVVVMMMMMMMMMFFFFFFFFJJJJJJJJJJJJJJJJIIIJJJJJJJJJJJJJJJJZZZZZZZZZZZZZZZZZZZZCYCCCCCCCCCHHHHHHHHHHHHHHHH -1 140 SSSEEEEEEWWWEVVVVVDDDDYYYYYYYYYYYVEVVMMMMMMMMMMMMMMFFFFFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJZZZZZZZZZZZZZZZZZZZCYCCCCCCCCCCHHHHHHHHHHHHHHH
diff --git a/2024/12/solution.rs b/2024/12/solution.rs
@@ -0,0 +1,100 @@
-1 1 #[path = "../lib.rs"]
-1 2 mod lib;
-1 3
-1 4 #[derive(Debug, PartialEq, PartialOrd)]
-1 5 enum Dir {
-1 6 Up,
-1 7 Right,
-1 8 Down,
-1 9 Left,
-1 10 }
-1 11
-1 12 fn parse_input() -> Vec<Vec<u8>> {
-1 13 return lib::iter_input().map(|line| line.bytes().collect()).collect();
-1 14 }
-1 15
-1 16 fn count_sides(perimeter: &Vec<(usize, usize, Dir)>) -> usize {
-1 17 let mut count = 0;
-1 18 for dir in [Dir::Up, Dir::Right, Dir::Down, Dir::Left] {
-1 19 let mut edges: Vec<(usize, usize)> = perimeter.iter()
-1 20 .filter(|(_x, _y, d)| *d == dir)
-1 21 .map(|(x, y, d)| match d {
-1 22 Dir::Up => (*y, *x),
-1 23 Dir::Right => (*x, *y),
-1 24 Dir::Down => (*y, *x),
-1 25 Dir::Left => (*x, *y),
-1 26 }).collect();
-1 27 edges.sort();
-1 28 for i in 0..edges.len() {
-1 29 if i == 0 {
-1 30 count += 1;
-1 31 continue;
-1 32 }
-1 33 let (x1, y1) = edges[i - 1];
-1 34 let (x2, y2) = edges[i];
-1 35 if x2 != x1 || y2 != y1 + 1 {
-1 36 count += 1;
-1 37 }
-1 38 }
-1 39 }
-1 40 return count;
-1 41 }
-1 42
-1 43 fn main() {
-1 44 let map = parse_input();
-1 45 let h = map.len();
-1 46 let w = map[0].len();
-1 47
-1 48 let mut seen = vec![vec![false; w]; h];
-1 49 let mut sum1 = 0;
-1 50 let mut sum2 = 0;
-1 51
-1 52 for y0 in 0..map.len() {
-1 53 for x0 in 0..map[0].len() {
-1 54 if seen[y0][x0] {
-1 55 continue;
-1 56 }
-1 57
-1 58 let mut area = 0;
-1 59 let mut perimeter = vec![];
-1 60 let mut queue = vec![(x0, y0)];
-1 61
-1 62 while let Some((x, y)) = queue.pop() {
-1 63 if seen[y][x] {
-1 64 continue;
-1 65 }
-1 66
-1 67 area += 1;
-1 68
-1 69 if x > 0 && map[y][x - 1] == map[y][x] {
-1 70 queue.push((x - 1, y));
-1 71 } else {
-1 72 perimeter.push((x, y, Dir::Left));
-1 73 }
-1 74 if x + 1 < w && map[y][x + 1] == map[y][x] {
-1 75 queue.push((x + 1, y));
-1 76 } else {
-1 77 perimeter.push((x, y, Dir::Right));
-1 78 }
-1 79 if y > 0 && map[y - 1][x] == map[y][x] {
-1 80 queue.push((x, y - 1));
-1 81 } else {
-1 82 perimeter.push((x, y, Dir::Up));
-1 83 }
-1 84 if y + 1 < h && map[y + 1][x] == map[y][x] {
-1 85 queue.push((x, y + 1));
-1 86 } else {
-1 87 perimeter.push((x, y, Dir::Down));
-1 88 }
-1 89
-1 90 seen[y][x] = true;
-1 91 }
-1 92
-1 93 sum1 += area * perimeter.len();
-1 94 sum2 += area * count_sides(&perimeter);
-1 95 }
-1 96 }
-1 97
-1 98 println!("part1: {}", sum1);
-1 99 println!("part2: {}", sum2);
-1 100 }
diff --git a/2024/12/test1.txt b/2024/12/test1.txt
@@ -0,0 +1,4 @@ -1 1 AAAA -1 2 BBCD -1 3 BBCC -1 4 EEEC
diff --git a/2024/12/test2.txt b/2024/12/test2.txt
@@ -0,0 +1,5 @@ -1 1 OOOOO -1 2 OXOXO -1 3 OOOOO -1 4 OXOXO -1 5 OOOOO
diff --git a/2024/12/test3.txt b/2024/12/test3.txt
@@ -0,0 +1,10 @@ -1 1 RRRRIICCFF -1 2 RRRRIICCCF -1 3 VVRRRCCFFF -1 4 VVRCCCJFFF -1 5 VVVVCJJCFE -1 6 VVIVCCJJEE -1 7 VVIIICJJEE -1 8 MIIIIIJJEE -1 9 MIIISIJEEE -1 10 MMMISSJEEE
diff --git a/2024/12/test4.txt b/2024/12/test4.txt
@@ -0,0 +1,5 @@ -1 1 EEEEE -1 2 EXXXX -1 3 EEEEE -1 4 EXXXX -1 5 EEEEE
diff --git a/2024/12/test5.txt b/2024/12/test5.txt
@@ -0,0 +1,6 @@ -1 1 AAAAAA -1 2 AAABBA -1 3 AAABBA -1 4 ABBAAA -1 5 ABBAAA -1 6 AAAAAA