Solved day 12
This commit is contained in:
5
.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
5
.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<component name="ProjectCodeStyleConfiguration">
|
||||||
|
<state>
|
||||||
|
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
|
||||||
|
</state>
|
||||||
|
</component>
|
||||||
140
input/day12.txt
Normal file
140
input/day12.txt
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
AAAAAAMMMMMMMMMMMMMMMMMMCCCCCCCCACAYYYYYYYYYYYYYYYYWWJWWIIIIIIIIIIIIIIIIIIIIIFVFMMMMMMMMMYRRYRRRRRNXXNAANIIIIIEEEEEEEEEEEEEEERRRRRRRRQQQQQCQ
|
||||||
|
AAAAAAAAMSMMMMMMMMMMMMMMMCCCCCCCCCYYYYYYYYYYYYYYYYYWWWWWWWIIIIIIIIIIIIIIIIIIFFFFFFMMMMMMMYYRYRRNNNNNNNNNNNNNIEEEEEEEEEEEEEEERRRRRRRFQQQQQQQQ
|
||||||
|
AAAAAAAFSSSMMMMMMMMMMMMXMCCCCCCCCCUCYYYYYYYYYYYYYYYWWWWWWWWIIIIIIIIIIIIIIIIIFFFFFFFMMMMYYYYYYYYNNNNNNNNNNNNIIIIEEEEEEEEEEEEERRRRRRRQQQQQQQQQ
|
||||||
|
AAAAAASSSSSSMMMMMMMMMMMXXXCCCCCCCCCCYYYYYYYYYYYYYYYYWWWWWWWIIIIIIIIIIIIIIIIFFFFFFFIMMMYYYYYYYYNNNNNNNNNNNNNNIIIIIEEEEEEEEEEEERRRRRRQQQQQQQQQ
|
||||||
|
AAAAASSSSSSSSMMMMMMMMMXXXXXCCCCCCPCCYYYYYYYYYYYYYYYYWWWWWWWWIPPIIIIIIHHHIHIFFFFFFFIMMMYYYYYYYYNNNNNNNNNNNNNNNNNIEEEEEEEEEEEERRRRRRROQQQQQQQQ
|
||||||
|
AAASSSSSSSSSMMMMMMMMMXXXXXXCCCCCCPPYYYYYYYYYYYYYYYYWWWWWWWWWIPPIIIIIHHHHHHIFFFFIIXIIMMYYYYYYYYYYNNNNNNNNNNNNNNNNERREEEEEEEEWWRRRRRRQQQQQQQQQ
|
||||||
|
AAAVSSSSSSSMMMMMMMMMMMXXXXXCCCCCVCYYYYYYYYYYYYYYYYWWWWWWSWWWWPPIIIIHHHHHHHHHFFFIIIIIIIIIYYYYYYYYNNNHNNNNNNNNNNNNRREEEEEEEEEEERUROORQQQQQQQQB
|
||||||
|
AAAAKKSSSSSSMMMMMMMMMMXXOXCCCCCCCCYYYYYYYYYYYYYYWWWZWWWWWWWPPPPPIPHHHHHHHHHHFFFFIIIIIIIRYYYYYYYNNNNNNNNNNGNNNNRRRRREEEEEEEEEEEUUUUQQQQQQQQQQ
|
||||||
|
AAAKKKKKSSSSMMMQQQMMMXOOOOCCCCCCCCCYYYYZZYZYYYYYYZZZZWPWPPWPPPPPPPPHHHHHHHHFFFFFFIIIIIIIIYYYYYYYYYNUNNNNNGNNNNNRRREEEEEEEEEENEUUUUQQQQQUQXXX
|
||||||
|
AAAKKKDDQQQQQQQQQQQQMXOOOOOOOCCCCCSYYOOZZZZZYZYYZZZZZPPPPPPPPPPQQPHHHHHHHHHFFFFFFIIIIIIIIIIYYYYYYNNNNNNWWWNNNNNRRRRREEEEEEEGNNWUUUQQQUUUUUXX
|
||||||
|
HHHKKDDDDDQQQQQQSSSQSXOOOOOOCCCCCSSSYYOZZZZZZZYYZZZZPPPPPPPPPPQQQVEEEFHHHHHFFFFIIIIIIIIIIIYYYYYYYNYNNNNWWWNNNNNZRRRRREEENNNNNNNUUUUUUUUUUUUX
|
||||||
|
HHHHHDDDBDQQQQQQSSSSSOOOOOOOOOCCSSSSSZZZZZZZZZZZZZZZPPPPPPPPPPPQQQEEEEBHHHFFFFFFIIIIIIIIIIYYIYIYYYYYYYWWWWWWWNXZZZZZRREENNNNNNNNUUUUUUUUUUUU
|
||||||
|
HHDDDDDDDDQDQQQQQSSSSOOOOOOOOOOOOOZZZZZZZZZZZZZZZZZZZPPPPPPPPPPQQQQEEEHHHFFFFFFFIIIIIIIIIIIIIYIYYYYYYYYWWWWWWWZZZZZZZRRENNNNNNNNUUUUUUUUUUUU
|
||||||
|
HHDDDDDDDDDDQQQQSSSOOOOOOOOOOOOOOOTZZZZZZZZZZZZZZZZZZPPPPPPPPPQQQQQEEEEFFFFFFFFFIIIIIIIIIIIIIIIYYYYYYYYYWWWWWZZZZZZZZZCDDNNNNNNNUUUUUUUUUUUU
|
||||||
|
HHDDDDDDDDDQQQQQSSSSOSOOOOOOOOOOOOOZAZZZZZZZZZZZZZZZZZPPPPPPPPQQQQQQEEEEFFFFFFFFIIIIIIIIIIIIIIIYYYYYKKKKKKKWWZZZZZZZZTCDDDNNNNNNNUUUUUUUUUUU
|
||||||
|
HHHHKQQQQQDQQQQSSSSSSSSSOOOOOOOOOAOAAAZZZZLZZZLZZZZZZZPWPPWWPWWQQQQQEEEEFFFFFFFFIIIIIIIEWIITTTIYYYYYCCCKKKWWZZZZZZZZZTCCDNNNNNOUUUUUUUUUUUUU
|
||||||
|
HHHHKQQQQQQQQQQQSUSSSSUSOOOOOOOOOAAAAAZZZLLLLZLLLZZZZZPWWPWWWWWQQQQEEEEEFFFFFFEEECEEIIIEEEEEETTYTGYYYKCCKKWWWZZZZZZZZTCCNNNNNNOOUUUUUUUUUUUZ
|
||||||
|
HHHKKKQQQQQQQQQQQUSSSUUUOOOOOOUAAAAAAZZZZZLLLLLLLZZZWWWWWWWWWWWQQQQEEEEEEFFFFEEEEEEEEIEEEEEEETTTTGGGTKKKKKWWWWZZZZZZZCCCCCCCNNNUUUUUUUUUUUZZ
|
||||||
|
HKKKKQQKQQQHHQQQQUUUUUUOOOUOXUUUUAAAAAZZZZLLLLLLLZZWWWWWWWWWWWWWQQQEEEEEEFFFFEEEEEEEEIEEEEEETTTTTGGGTKKQKQQQQWZZZZZZZCCCCCCCNNNNUUUUUUUUUWZZ
|
||||||
|
KBKKKKQKQQQHHQQQUUUUUUUUUOUUUUUUAAAAAAAAAALLLLLLLZZWWWWWWWWWWWWWQQQEEEEEEFFFFEEEEEEEEEEEEEEEEEETGGGGQQQQQQQQWWWZZZZZFCCCCCCNNNNUUUUUUUUUWWWW
|
||||||
|
KKKKKKKKKQQHHHHQUUUUUUUUUUUUUUUUUUUUAAAALLLLLLLLLZZJWWWWWWWWMWWFFFFEEEEEEFFEFEEEEEEEEXEEEEEEETTTGTTGGQQQQQQQWWWWZZZZCCCCCCCNNNNUUUUUUUCUWWWW
|
||||||
|
KKKKKKKKQQKHHHHQQUUUUUUUUUUUUUUUUUUAAAAALLLLLLLLLLJJWLLWWWWWWWWFFFFEEVVVEEEEEEEEEEEEEEEEEEEEETTTTTTTGZQQQQQVQWWWWWECCCCCCCXXNNNXXUUUUUCUCWWW
|
||||||
|
KKKKKKKKKKKHHHHHHUUUUCCUUUUUUUUUUUUAAAAAAUUUULLLLLLJJWWWWWWWFFFFFFFVVVVEEEEEEEEEEEEEEEEEETTETTTTTTTTQQQQQQQQQXWWWCCCCCCCCXXXXXXXXUUUUUCCCCWW
|
||||||
|
KKKKKKKKKKKKHHHHHHUUUUCCCUUUUUUUUUUUAAAAAUUULLLLLLLLLCWWWWWCCCCCFFVVVVVVEVEEEEEEEEEEEEEEETTTTTTTQQQQQQQQQQQQQQQWWCCCCCCCCCXXXXXXXXUUUUTTTWWW
|
||||||
|
KKKKKKKKKKKKHHHHHHHHCCCCCCUUUUUUUUUUAAAAUUUUUUULLLLCCCCCCCCCCCCZZZVVVVVVVVVEEEEBEEEEEEEEEEETTTTTQQQQQQQQQQQQQQZWWZZCCCCCCCCCXXXXUUUUUTTTTWWT
|
||||||
|
KKKKKKKKKKKKHHHHHHHCCCCCCUUUUUUUUUTTTTAUUUUUUUULUULCCCCCCCCCCCCZZZVVVVVVVVVEEEEBBEEEEEEEEEEETTTTQQQQQQQQQQQQQQZWZZZZCCCCCCCVVVXUUUUUTTTTTTTT
|
||||||
|
KKKKKKKKKKKHHHHHHHHCCCCCCUUUUUTUTUTTTTTUUUUUUUUUUUQQQCCCCCCCCCZZZZVZVVVVVVVVVVEBBBEEEEEEEEETTXXQQQQQQQQQQQQQQZZZZZZZZZCCCCCVVVVUUUUUUTTTTTTT
|
||||||
|
KKKKKKKKKKKHHHHHHHHCCCCUUUUUTTTTTTTTTTTTTUUUUUUUUQQQQCCCCCCCCCZZZZZZVVVVVVVVVVVBBBBBBEEEEETTTXXXXXXQQQQQQQQQZZZZZZZZZZZCCVVVVVVVVUUUUTTTTTTT
|
||||||
|
KKKKKKKKGKHHHHHHHHHHZZCUUUUUTTTTTTTTTTTTUUUUUUUUQQQQQCCCOOOOOCZZZZZZVVVVVVVVVBBBBBBBBEEEEETXXXXXXXXQQQQQQQQQQZZZZZZZZDDDCVVVVVVVVVUUUTTTTTTT
|
||||||
|
KKKKKKKKKHHHHHHHHHCCCCCCUUUUTTTTTTTTTTTTUUUUUUUUQQQCCCCCOOOOOZZZZZZZZVVVVBVVVVBBBBBBBNENEETTXXXXXXQQQQQQQQQQZZZZZZZDZDDDDVVVVVVVUUUUUUUUTTTT
|
||||||
|
KKKKKKKKHHHHHHHHHHHBCCCBBBBUBTTTTTTTTTTTTUUUUUUUQQQQQCCCOOOOOZOOOOOOOZEEVVTBBBBBBBBBNNNNNTTTXXXXXXQQQQQQQQQQNZZQZZZDDDDDDVVVVVPVUUUUUUUTTTTT
|
||||||
|
KKKKKKEEHHHHHHHHHHBBBBBBBBBBBTTTTTTTTTTTUUUUUUUUQQQCCCCCOOOOOOOOOOOOOZEEUUBBBBBBBBBBNNNNTTTTTXXXXCQQQQKKQQQQZZZQZZZDDDDDDVVVVVPUUUUUUUUTTTTT
|
||||||
|
PPKKKKEEHHHHHHHHHHBIIBBBBBBBBTTTTTTTTTUTUUUUUUUUOOOOOOOOOOOOOOOOOOOOOOOEUBBBBBBBBBBBBNNTMTTTTXXXCCCCKGKKKKKKZZZZZZDDDDDDJVGGPPPPPPUUUUUUTTTT
|
||||||
|
HPPKEEEEHHHHHHHHIIBIIIIIBBBBBBTTTTTTTUUUUUUUUUUUOOOOOOOOOOOOOOOOOOOOOOOEBBBBBBBBBBBBBCCTTTTTTCCCCCCKKKKKKKKZHHHZZZDDDDDDPGGGPPPPPPUUUUUTTTTT
|
||||||
|
HPEEEEEEEHHHHHHHIIIIIIIIIBBBBBTTTTTUUBBBBUUUUUUUOOOOOOOOOOOOOOOOOOOOOOOYYBBBBBBBBBBBBBCTCCCCCCCCCCCKKKKKKKKKHHHZZZDDDOOPPPPPPPPPPPUUUTTTTTTT
|
||||||
|
SSSEEEEEEHHHHHHHIIIIIIIIBBBBBBTTTTTUUUBBBUUUUUUUOOOOOOOOOOOOOOOOOOOOOOODDBBBBBBBBBVVBCCCCCCCCCCCCCCKHHHHKKKZHHHZZEOOOOOOOPPPPPPPPUUUUTTTTTTT
|
||||||
|
SSSEEEEEEEEHHIIIIIIIIIIIIIIIIBBBTBTUBUBBBUUUUUUUOOOOOOOOOOOOONNZZZOOOOODQBBBBBBBBBVVKVVVVCCCCCCCCCCCHHHHKKKKHHHTZZOOOOOOOMMMPBPPPUAAATTTTTTT
|
||||||
|
SSSSSSSEEEEEIIIIIIIIIIIIIIIIBBBBBBBBBBBBBHHHHHHHOOOOOOOOOOCNNNNNZZOOOOODDDBBBBBBBVVVVVVVVCCCCCCCCCCKHHHHKKKKHHHHHHHHHHHOMMMPPPPAPQQQQTTTTTTT
|
||||||
|
SSSOSSSSEEEIIIIIIIIIIIIIIISIBSSBBBBBBBBSSSHHHHHHOOOOOOOOOOCNNNNNNNZVDDDDDDDABBBBBAVVVVVVCCCCCCCCCCCCHHHHKKKKHHHHHHHHHHHMMMMMPPAAPQQQZZZZZZZZ
|
||||||
|
SSSSSSVVEEEIIIIIIIDIIIIIISSSSSSSBBBBBBBBHHHHHHHHOOOOOOOOOONNNNNNNNZVVDDDDDDABBBBBBUUVVVVVVCCCCCCCCCKHHHHKKKHHHHHHHHHHHHMMMMMPAAAAQQQZZZZZZZZ
|
||||||
|
SSSSESEEEEEEIIIIDDDIIICICCSSSSSMMSBBBSFHHHHHHHHHOOOOOOOOOONNNNVVVVVVDDDDDDDDBBBBBBUUVVVVVVCCCCCCCCCKHHHHKKKHHHHHHHHHHHHMMMMMAAAAAQQQZZZZZZZZ
|
||||||
|
SSSEEEEEEEMMIDDDDDDDDDCCCSSSSSSSSSSSSSFHHHHHHHHHOOOOOOOOOOKKVVVVVVVVVDDTTTTYBBUUUUUUVVVVVVCVCCCCKKKKHHHHKKKHHHHHHHHHMMMDDDDAAAAAAQQQZZZZZZZZ
|
||||||
|
SSEEEEEEEMMDDDDDDDDDDDCCCSSSSSSSSSSSSSSHHHHHHHHHHHHHHHDDEEKVVVVVVVVVVDTTTTTYYBUUUUUUUVVVVVVVVCCKKKKKHHHHKKKHHHHHHHHHMMMDDDDDDAAAAQZZZZZZZZZZ
|
||||||
|
SSEEEEEEEEMDDDDDDDDDDDDDDSSSSSSSSSSSSSHHHHHHHBHHHHHHHHFEEEKVVVVVVVVVDDKKTTTYEUUUUUEEEEVEEEVCCCCCCKKRHHHHHHHHHHHHHHHHDDDDDDDDDDDAAZZZZZZZZZZZ
|
||||||
|
EEEEEEEEEEMDDDDDDDDDDDDDSSSSSSSSSSSSSSSSHHHHHHHHHHHHHHWWWWWWWVVVVVVVVKKTTTPEEEEUEEEEEEEEECCCCCCCCCCCHHHHHHHHHHTTTTBDZDDDDDDDDDRAAZZZZZZZZZZZ
|
||||||
|
CCEEEEZEEMMMMMMDDDDDDDDRSSSSSSSSSSSSSSSSSRHHHHHHHHHHFFWWWWWWWVVVVVVVVVKKTTEEEEEEEEEEEEEEEVCDDCCCCCCCRRHHHHHHHHTTTTTDDDDDDDDDDRRAAZZZZZZZZZZZ
|
||||||
|
CCECCEZZMMMMCMDDDDDDDDDRRRWSSSSSSSSPSSDSDDHHHHHHHHHHQQWWWWWWWWWWVVVVPTTTTTEEEEEEEEEEEEEEEVVDDCCCCCCCCRHHHHHHHHTTTTDDDDDDDDDZZZZZZZZZZZZZZZWW
|
||||||
|
CCCCCCMMMMCCCDDDDDDDDDJJJWWWWSSSSSSSSSDDDDHHHIIHHHHHQFWWWWWWWWWWVVVVVVTTTTTEEEEEEEEEEEEUEDDDDDDCCCCMXXHHHHHHHHTTTTDDDDDDDDDZZZZZZZZZZZZZZZWW
|
||||||
|
CCCCCCMMMMZCCDDDDDDDDUJJJWWWWSSSSSSSSDDDDHHHYDIIHIFFFFWWWWWWWWWWVVVVMTTTTTTTEEEEEEEEEEEEEDDDDCCCCCXXXXHHHHHHHHTTTTTDDDDDDDDZZZZZZZZZZZZKKWWW
|
||||||
|
CCZZZZDDDDZCCDDDDDDDDDJJJWXWWWSSSSSSSDDDDDHDDDIIIIIFCFWWWWWWWWWWVVVVMTTTTTTTEEEEEEEEEEEEZDDDDCCCXXXXXXHHHHHHHHTTTTTDDDDDDDDZZZZZZZZZZZZKKKWW
|
||||||
|
ZZZZZZZDDZZCDDDDDDDDDUJJJWWWWLSSSSSHDDDDDDDDDDDDIIFFFFWWWWWWWVVVVVVVVTTTTTTTTEEEEEEEEEEEZDDDDDXXXXXXXXHHHHHHHHTTTTTTDDDDDDDZZZZZZZZZZZZKKKKK
|
||||||
|
ZZZZZZZZZZZCDDDDDDDPMMJJJWOOLLBLSSSSDDDDDDDDDDDDDFFFFFWWWWWWWVVVVVVVHHTHTTTTTEEEEEEEEEEDDDDLLLLXXXXXXXXXXXXZXXTTTTTDDDDDDDDZZZZZZZZZZZZKKKKK
|
||||||
|
ZZZZZZZZZZZBBDDDDDDMMMJJJHLLLLLLLLSDDDDDDDDDDDDDDFFFFFFLWWWWAVVVVVAAAHHHHTTTTEEEEEEEEELDDDDLLLLLXXXXXXXXXXXXXTTTTTTTDDDDDDDZZZZZZZZZZZZKKKKK
|
||||||
|
ZZZZZZZZZZRRRDDDDDCMMMMMMLLLLLLLLLLDDDDDDDDDDDDDDFQFIFLLWWWWAVAVAAAAAHHHHHTTTEEEEEEEEELLLLLLLLLLLXXXXXXXNXXXXTTTTTTTDDDDDDDZZZZZZZZKKKKKKKKK
|
||||||
|
ZZZZZZZZZZZRRRRDDDCMMMMMMLLLLLLLLLLLDDDDDDDDDDDDCCCQAAAAWWWWWWWWAAAAAAAAHTTTTTEEEEEEEELLLLLLLLLLXXXXXXXXNXXXTTTTTTTTDTDDDDQQQZZZZZZKKKKKKKKM
|
||||||
|
JJJJJZZZZZRRRRRRMMMMMMMMMMELLLLLLLLLLLDDDDDDDDWWWWWWWWAAAWWWWWWWAAAAAAAAHHHHCTCEEGEEEEOLLLLLLLLLXXXXXXXXXTTTTTTTTTTTTTTQQQQQQZZZZZZKKKKKKKKM
|
||||||
|
JJJJJZZJZZRRRRRRMMMMMMMAAEELLLLLLLLLLDDDDDDDDDWWWWWWWWAAAWWWWWWWAAOAAAAAHHHHCCCGGGGGEEOLLLLLLLLLLLXXXXFXXAKTTATTTTTTTTTQQQQQQZZZZZZKMKKKMKKM
|
||||||
|
JJJJJJJJVRRRRRRMMMMMMMMMAALLLLLLLLLLLLLDDDDFCCWWWWWWWWAAAWWWWWWWAOOOOAAOHHHHCCCGCGCCCCCLLLLLLLLLLLXXXXXXAAAAAAAAAATTTTTTQQQQQQQQMKMMMMMKMMMM
|
||||||
|
XJJJJJJVVVRRRRRRMMMMMMMMAALLLLLLLLLLLLLDDDCCCCWWWWWWWWWWWWWWWWWWOOOOOOOOHHHHCCCCCCCCCCLLLLLLLLLLLLAAXXXXAAAAAAACAATTTTTQQQQQQQQQMMMMMMMMMMMM
|
||||||
|
XXXXJJVVVVRRRRRMMMMMMMAMAAALLLLLLLLLLLLWDDDCCCWWWWWWWWWWWWWWWWWWOOOOOOOHHCHHCCCCCCCCCCCLLLLLLLLAAAAAAAAAAAAAAAAAAATTTTTQQQQQQMQMMMMMMMMMMMMM
|
||||||
|
XXXJJVVVVVVVRRRMMMMMMMAAAAAAAALLLSLLLLWWDDRCCCWWWWWWWWWWWWWWWWWWOOOOOOOHHCCCCCCCCCCCCCCCLLLLLLLAAAAAAAAAAAAAAAAAAATTTTTQQQQQQMMMMMMMMMMMMMMM
|
||||||
|
XXXXXVVVVVVVVVVVRVVMMAAAAAAAALLLLSLLLLLLLQCCCCWWWWWWWWWWWWWWWWWWOOOOOGOOCCCCCCCCCCCCCMMLLLLLLAAAAAAAAAAAAAAAAAAAAAAAATVQQQQQMMMMMMMMMMMMMMMM
|
||||||
|
XXXXXVVVVVVVVVVVVVVMAAAAAAAAAASSLSLLLLLLQQXCCCWWWWWWWWWWWWWWWWWWOOOOOOOOOOCCCCCCCCCCCCLLLLLLGAAAAAAAAAAAAAAAAAAAAAAAAVVVQQVMMVVMMMMMMMMMYYMM
|
||||||
|
XXXXXVVVVVVVVVVVVVVMAAAAAAAAAAASSSFFFFLLQQQQHCWWWWWWWWWWWWWWWWWWFFFFFFFFOOOCCCCCCCCCCCXLLXXXAAAAAAAAAAAAAAAAAAAAAAAAAVVVQVVVVVVMMMMMMMMMYYYM
|
||||||
|
XXXXXXXVVVVVVVVVVVVVOOAAAAAAASSSSSFFNNLSQQQQQCWWWWWWWWWWWWWWWWWWFFFFFFFFOOVCCCCCCCCCCXXXXXXXXAAAAAAAAAAAAAAAAAAAAVVACIVVQVVVVVVVVMMVMWWYYYYM
|
||||||
|
XXXXXXXVVVVVVVVVVVVOOOAAAAAAASSSSSSFNNNNNQQQQQQQQQQWWWWWWWWWWWWWFFFFFFFFOOVCCCCCCCCCCXXXLLXXXAAAAAAAAAAAAAAAAAADCVCCCVVVVVVVVVVVVVVVMWWWYMMM
|
||||||
|
XXXXXXVVVVVVVVVVVVVVOOAAAAAASSSSSSSSNNNNLLQQQQQQQQQQQQFFFWWWWWWWFFFFFFFFVOVCCCCCCCCXXXXLLLLXXAAAAAAAAAAAAAAAADDDCCCCVVVVVVVVVVVVVVVVVWWWWMMM
|
||||||
|
XXXXXXVVVVVNNVZVXXXXXXRRRAAAISSSSSSSSNNNNNQHNQQQQQQQQQQQQQQFFAFFFFFFFFFFVVVVCCCCCCCXXXXLLLLLLLKKAAAAAAXAAAAAADDDCCCCVVVVVVVVVVVVVVVVEEWWWWMM
|
||||||
|
XXXXXXTTVVVVVTXXXXXXXXXXRRRASSSSSSSSSSNNNNNNNQQQQQQQQQQQQQQQQQFFFFFFFFFFVVVVCVCCCCXXJJJLLLLFWKKWWWAAAXXXAAAADDCCCCCCCCVCVVVVVVVVVVVVEWWWWWWM
|
||||||
|
XXXXXXTTTTTTTTXXXXXXXXXRRRRRRRSSSSNNNNNNNUNNNNQQQQQQQQQQQQQQQHFFFFFFFFFFVVVVVVVVCCCXJJJJJLLFWWWWWWAAXXXXXXAAADCCCCCCCCCCVVVVVVVVVVVVEXWWWWWW
|
||||||
|
XXXXXTTTTTTTTTXXXXXXXXXRRRRRRRSSSSNNNNNNNNNNNJQQQQQQQQQQQQQQHHFFFFFFFFFFFFFFTVTVVCJJJJJJJJJFWWWWWAAJXXXXXXXACCCCCCCCCCCVVVVVVVVVVVVVVXXWWWWW
|
||||||
|
YXXXTTTTTTTTTTTXXXXXWXRRRRRRRSSSNSNNNNNNNNNNNJJJQQQQQQQQZQQQQQFFFFFFFFFFFFFFTTTTVVVJVJJJJJJWWWWWWWAWXXXXXXXUUUCCCCCCCCCVUVVVVVVVVVVXXXWWWWWW
|
||||||
|
YXXXTTTTTTTPTTTXXXXXXRRRRRRRRRNNNNNNNNNNNNNVVVJVVVQQQQQQQQQQVQFFFFFFFFFFFFFFTTTTVVVVVVJJJJJJWWWWWWWWWXXXXXUUUUUCCCCCCCCVVVVVVGVOVXXXXXXXWWWW
|
||||||
|
YXTTTTPPPTPPPPXXXXXXXRRRRRRRRRRNNNNNNNQNNNYVVVJVVVVVQQQQQQQQQQHHWWWWWBFFFFFFTTTTVBBBVJJJJPJWWWWWWWWWWXXXXXXXUUUWCCCCCCCCVCCVGGVOXXXXXXXXWWWW
|
||||||
|
YTTTTTPPPPPPPPNXUXXXXRRRRRRRRRRNNNNQQQQNNVVVVVVVVVQQQQQQQQQQQQHWWFFFFFFFFFFFTTTBVVBBBOOJJJWWWWWWWWWXXXXXXXXHUUWWWCCCCCCCCCCCGGVOXXXXXXXXXGGG
|
||||||
|
YTTTTTPPPPPPPPPXUUXXXPRRRRRRRRRNNNNQQQQQVVVVVVVVVVQQQQQQQQQQQQHRRFFFFFFFFFFFBBBBBBBBOOWWWWWWWWWWWWWWWWWXXXXXUUWPBCCCCCCCCCCCGGGVXVXXXXXGGGGG
|
||||||
|
TTTTTTPPPPPPPPPXUUXXXPPPPRRRRRRQQFNNQQQQQVVVVVVVVVQQQQQQQQQQQQQQWFFFFFFFFFGGBBBBBBBOOOOWWWWWWWWWWWWWWWWWXXXPPPPPBCCCCCCCCCCCGGVVVVXXXXXGGGGG
|
||||||
|
MTTTTTTPPPPPPUUUUUPXPPPPPRRRRRRQQQQQQQQQQQVVVVVVVDQQQQQQQQQQQQQAAFFFFFFFFFGGGBBBBBBWWWWWWWWWWWWWWWWWWWWWTTTBBPPBBBCCCCCLCCCCGVVVVUXXXGGGGGGG
|
||||||
|
MMTTTTTPYPPPPUUUUUPPPPPPPPRRRRQQQQQQQQQQQQVVVVVDDDQRQQGPPAAAAAQAAFFFFFFFFFBGBBBBBBWWWWWWWWWWWWWWWWWWWWWWTTUUBBBBBBCCCBBBCCCCCVVVUUGGGGGGGGGG
|
||||||
|
MTTTTTTPYPPPPUUUUPPPPPPPPPPPRRQQQQQQQQQQQQQVJVVPPPRRQGGPPAAAAQQAAFFFFFFFFFBBBBBEUBBWWWWWWWWWWWWWWUUUWWUTTTUJBBBBBBBBBBBBBBDCVVVUUUUUUGUUUQQG
|
||||||
|
MTTTTTTPPPPPUUUUPPPPOOPRPPRRRRRQQQQQQQQQQQQQQQPPPPRRQQGPPPPPAAAAAAAAAAAAABBBBEEEUBWWWWWWWWWWWEWEWUUUWUUUUTUUUUBBBBBBBBBBBBBIVVVVUUUUUUUUUQQQ
|
||||||
|
RRRTTTPPPPPPPUUUUUPPPOPRRRRRRRJQQQQQQQQQQQQQPPPPPPRRRGGGPPPAAAAAAAAAAAAAAEBBCEEEUEEEFWWRRRWRREEEEBUUUUUUUUUUUUBBBBBBBBBBBBBBVVVUUUUUUUUUEQQS
|
||||||
|
ZZRTZZPPPZZZUUUZUUPOOORRRRJRRJJQQQUQQQQQQQQQQQPPPPPPPPGGPPPAPAAAAAAAWAXAAAAAAEEEEEEUBWWWWRRRREEEEBUUUUUUUUUPUUBBBBBBBBBBBBBBVVVUUUUUUUUUUQQS
|
||||||
|
ZZRTZPPPZZMZUUZZZZPEORRRRRJJRJJQQQUUQQQQQXQQQQPPXXXXPPPPPPPPPPAAAAAAWAAAAAAAAAEEEEEEBWWRRRRREEEEUUUUUUUUUUUUUUUBBBBBBBBBBBBBVVVUUYUUUUUUUQQQ
|
||||||
|
ZZZZZZZZZZZUUZZZZZEEEERJJJJJJJJJUUUUUQQXXXXQQQXXXXXXPPPPPPPPPPPPAAAAAAAAAAAAAAAEEEEEBBBBRRREEEEEUUUUUUUUUUUUUUUUBBBBBBBBBBBBVVVVUUUUUUUYYQQQ
|
||||||
|
ZZZZZZZZZZZZZZZZZZEZGEJJJJJJJJJJUJUUUUEXXXXXXXXXXXXXPXPPPPPPPAPAAAAAAAAAAAAAAAEEEEEEBBBEEEREEEEEUEUUUUUUUUUUUUUUBBBBBBBBBBBBVVUUUUUUUUUUYQQQ
|
||||||
|
ZZZZZZZZZZZZZZZZZZZZJJJJJJJJJJJJJJEUUUEEXXDDDDXXXXXXXXPPPPPPPAAAAAAAAAAAAAAAEEEEEEEEBBBEEEEEEEEEEEUUUUUUUUUUUUMUBBBBBBBBBBBBVVVVUUUUUUUUYQQQ
|
||||||
|
TZZZZZZZZZZBBBZZAAAAJJJJJJJJJJJJJEEEEEEXXDDDDDDDDXXTXTTPPPPPPPAAAAAAAAAAAAAAAEEEEEEEEBBBEEEEEEEEEEUUUUUUUUUUUUMBBBBBBBBBBBBBVVVVVUUUUUUUQQQQ
|
||||||
|
TZZZZZZZZZMMBBBZZAAALJJJJJJJJJJJJEEEEEEDXDDDDDDBBTTTTTBPPPPEPEEEAAAASAAAAAAAAEEEEEEEEBBEEEEEEEEEUUUUUUUUUUUUUUUBBBBBBBBBBBBBVVVVUUUUPUUZZZZZ
|
||||||
|
TTTZZZZZZZZBBZZZZAAAJJJJJJJJJJJJLLEEEEEDDDDDDDDBBBBTTCBCPPPEEEEEAASSSSQQAAAAAEEEEQEBBBBBBEEEEEEEUUUUUUUUUUUUUUUBBBBBBBBBBBBBZVWUUUUUUZZZZZZZ
|
||||||
|
TTTTZZZBBBLBBZZZAAAAAADJJJJJHHJJLEEEEEEDDDDDDDDDBBBBBCBCPPEEEEEEESSSSSSSGAAAAEEEEBBBBBBBBBBEEEEEUUUUUUUUUUUUSBBBBBBBBBBBBBBBUVUUUUUZZZZZRRZZ
|
||||||
|
TTBZZDBBBBBBBBBZDAAAADAJRRJJHHHHLHOHEDDDDDDDDDDBBBBBBCCCPPPEEEEEESSQSSSAAAAAWEEOBBBBBBBBBBBEEEEEUUUUUUUUUUUUSBBBBBBBBBBBBTTTUUUUUUUUZZZZZRZZ
|
||||||
|
TTBBBBBBBBBBBBWAAAAAAAAARRRHHHHHHHHHFDDDDDDHHDHHBBBBBCCYEEEEEEEEESSSHHHHAAAAWAOOBBBBBBBBBBEEEEEEUUUUUUUUUUUUSBBBBBBBBBBBTTTTUUUUUUUCUZUUURUZ
|
||||||
|
TTBBBBBBBBBBBBWAAAAAAAAARHHHHHHHHHHHFHDDDDHHHHHHHHHCCCCYEEEEEEEEEHSSHHHAAAHAAABBBBBBBBBBBEEEOOEEEEEQUUUUUUULSBBBBBBBBBBBTTTTTUUUUUUUUUBURRUU
|
||||||
|
TTTTBBBBBBBBBBBBOAAAAAAAAHHHHHHHHQQHHHHHHHHHHHHHHHHCCCCCCCCEEEEEHHHHHHHHAAHHHYBBBBBBBBBBXXXEXOEEEEEQUUUUUUUBBBBBBBBBBBBBTTTTTUUUUUUUUUUUUUUU
|
||||||
|
TTTBBBBBBBBBBBBBBAAAAAAAAHHHHHHHHHQHHHHHHHHHHHHHHHHICCCCCHHEHHEEHHHHHHHHHAVVVVVVVVVBBBBBBXXXXXXEEVVHHHHLLLLBBBBBTTTTTTTTTTTUUUUUUUUUUUUUUUUU
|
||||||
|
TQHHBBBBBBBBBBBBBAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHBBVCCCCCCHHHHHHHHHHHIHHHHHVVVVVVVVVBBBBBXXXXXXXXVVHHHHHLLLLBBBBBTTTTTTTTTTTTUUUUUUUUUUUUUUUU
|
||||||
|
TQQHBBBBBBBBBBBBBAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHBCCCCCCCCCHHHHHHHHHHHHHHHHVVVVVVVVVBBBBBXXXXXXXXVVHHHHLLLLLBBBBBTTTTTTTTTTTTTTUUUUUUUUUUUUUU
|
||||||
|
QQQHHBBBBBBBBBBBVAAAAAHAAAHHHHHHHHHHHHHHHHHHHHHHBCCCCCCCCEEHHHHHHHHHHHHVVVVVVVVVVVVBBBBXXXXXXXXXVVVHELLLLLLBBBBBTTTTTTTTTTTTTTUUUUUUUUUUUUUU
|
||||||
|
QQQHHBBHBBBBBBBBVAAAYAHHHHHHHHHHHHHHHHHHHHHHHHHBBBCCCCCCCEEEEEEHHHHHHHHVVVVVVVVVVVVBBBBXXXXXXXXHVHHHHLLLLLLBBBBBBBTTCCCCTTTTTTTVVUUUUVUUUUEE
|
||||||
|
QQHHHHHHBHBBBBBBBKAOYAHHHHHHHHHHHHHTHHHHHHHHHSBBBBCCCBCCEEEEEEEHHHHHHHHVVVVVVVVVVVVBBVYXXXXXXXHHHCHHHLLLLLLLLBBBBBTTCCCCTTTTTTTTVVVVVVEUUEEE
|
||||||
|
QQHHHHHHHHBBBBBKKKOOYAHHHHHHHHIIIIHHHHHHHHHHHSBBBBVCAECCEEEEEDDDDHHHHHHVVVVVVVVVVVVBBYYXXYXXXXXHHHHHHHHLLLLLLBBBBBCCCCCCTTTTTTTTVVVVVVEEEEEE
|
||||||
|
QQHKKHHHHHHIBBKKKKOOYYHHHHHHHHIIIIHHHHHHHHHHHLBBBBBXEEEEEEEDDDDDHHHHHHHVVVVVVVVVVVVHYYYYYYXXXXHHHHHHHHHHHLLCCBBBBBCCCCCCCCCCCCCCCCVVTVVVVVEE
|
||||||
|
QQQHKHHHHHHHKKKKKOOOYYHHHHHHIIIIIICCCCCHHHHHLLBBBBTEEEEEEEEDDDDDHHHHHHHVVVVVVVVVVVVHYYYYYYYHHHHHHHHHHHYYLLLNCBBBBBCCCCCCCCCCCCCCCCVVVVVVVVEV
|
||||||
|
QQQHHHHHHHHHKKKKOOOOOHHIIIIIIIIIIIICCCCCCCLLLLLLLBTTELEEEEEDDDDDHDDHHHHVVVVVVVVVVVVRYYYYYYYHHHHHHHHHHHYYLLCCCBBBBBCCCCCCCCNNNNCCCCVVVVVVVVEV
|
||||||
|
QQQHHHHHHHHKKKKKKKKOOOOEIIIIIIIIIIITTCCCCLLLLLLLLLLTTEEEEDDDDDDDDDDHHHHHHHHHRVVVRRRRYYYYYYHHHHHHHHHHYYYYYYCCCBBBBBCCCCCCCCNNNNCCCCVVVVVVVVVV
|
||||||
|
QQHHHHHHHHHHHKKKKKOOOOEEIIIIIIIIIIITTTTTCCLLLLLLLLTTTTTTEDDDDDDDDDDHHHHBBBBRRVVVRRRRRYYYYYHYHHHHHHHHHHYYYYCCCCCCCCCCCCCCCCNNNNCCCCRVVVVVVVVV
|
||||||
|
QQQHHHHHHHHKKKKKKKOOOOIIIIIIIIIIIITTTTTCCCLLLLLLPLTTTTTTDDDDDDDDDDDDDBBBBBBBRVVVRRRRYYYYYYYYHHHHHHHHHHHYYYYCCCCCCCCCCCCCCCNNNNCCCCRRVRVVVVVV
|
||||||
|
QQQHHHHHHHKKKKKKKKOOOOVIIIIIIIIIIITTTCTCTLLLTTLLLLTTTTTTDDDDDDDDDDDDDBBBBBBBRVVVRXXYYYYYYYYYYYHHHHHHHHYYYYYCCCCCCCCCCCCCCCNNNNCCCCRRRRVVVVVV
|
||||||
|
QQQQQHHHHHKKFFKKKFOOFFFFIIIIIIIIIITTTCCCTLTTTTLLTTTTTTTTTTTDDDDDDNNDBBBBBBBBRVVVVVVYYYYYUUUUYYYYHHYYYYYYYYYYCZCCCCCCCCCCCCNNNNCCCCYYRRVVVVVV
|
||||||
|
QQQQQQHKHKKKFFFFFFXFFFFNDDIIIIIIIITTTCCCTTTTTTTTTTTTTQQTTTTDDDDDDNMMBBBBBBBBBVVVVVVVVVYYYUUUUYYYHYYYYYYYYYCYCCCCCCCYYCCCCCCCCCCCCCRRRRVVVVVV
|
||||||
|
QQQQQQQKKKKFFFFFFFFFFFFFFDDIIIIIITTTTTCCTTTTTTTTTTTTTQQTTTTDDMDMDDMMBTBTTTBTBVVVVVVVVVYYUUUUUYYYYYYYYYYYYCCCCJCCCCCYYYYHDDDDCCCCCCRRRRRVVVVV
|
||||||
|
QQQQQQQKKKFFFFFFFFFFFFFUFDDIIIIQQQTTTTCTTTTTTTTTTTTQQQTTTTQQMMMMMMMMMTBBTTBTTBVVVVVVVVYWUUUUUYYYYPYYYYYYCCCCCCCCCCCCYHHHHDDRRRRRRRRRRVVVVVVV
|
||||||
|
QQQQQQQQKQQQFFFFFFFFFFFFFDDIIIIQTTTDTDDTTTTTTTTTTTTQQQQQQQQMMMMMMMMTTTTTTTTTTBXVVVVVVVWWUUUUTPPPPPPPPPYCCCKCCCCCCCCCCCHHCRRRRRRRRRRRDVVVVVVV
|
||||||
|
QQQQQQQQQQQFFFFFFFFFFFFFFDDDIIIQQQTDDDDWTTTTTTTTTTTTQQQQQQQQMMMMMMMTTTTTTTTTVTXVVVVVVVWWUUUUUPPPPPZPPYYCCKKCCCCCCCCCCCCHCRRRRRRRRRRRRVVVVVZV
|
||||||
|
QQQQQQQQQRFFFFFFFFFFFFFFDDDIIIQQQQTDDWWWTUTTTTTVVVTTQQQQQQQQMMMMMMMTTTTTTTTTTTXXVVVVVVWWWWWUWWWPPPPPPPPKKKKKCCCCCCCCCCCCCURRRRRRRRRRRRVVVZZZ
|
||||||
|
QQQQQPQQOFFFFFFFFFFFFFDDDDDDNQNQQQDDDWWWWUTTTTVVVVVQQQQQQQMMMMMMMTTTTTTTTTTTTRXXXXWWWWWWWWWWWWPPPPPPPPKKKKKKCCCCCCCCCCCCCCRRRRRRRRRRRIZZZZII
|
||||||
|
QQQPPPQQOPFFFFFFFFFFEEDDDDDDNNNNQQQQQWWWWUUTTTZVVVVVQQQQQQMMMMMMMMTKTTTTTTTTXXXXXXLWWWWWWWWWWWPPPPPPPPKKKKKCCCCCCCCCCCCCCXXRRRRRRRRRRIIIZIII
|
||||||
|
QQQQPPPPPPFFFFFFFFFEEEEEEDDDDNNQQQQQQWWWUUUTTVVVVVVRRGQQQMMMMMMMMMMKTTWTTTTTCXXXXXWWWWWWWWWWWPPPPPPPPKKKKKCCCNNCCCCCCCCCCCRRVRRRRRRHHIIIIIII
|
||||||
|
QQQPPPPPPPFFFFFFFFEEEEEEEDDNNNNQQQQQWWWWWWUTUUVVVVVRRRRMMMMMMMMMMMMTTTWTTTTTTTXXXXWWWWWWWWWWPPPPPPPPKKKKKKCCCCCCCCCCCCCCCKKMMMRRRRRIIIIIIIII
|
||||||
|
QQQPPPPPPPWFFFFFFFFFEEEEEDDDNNNQQQWWWWWWWUUUUUUVVVVRRRRMXMMMMMMMMMMMWWWWWTTTTTXXXWWWWWWWWWWWWWPPPPPPKKKKKCCCCCCDCCCCCCKCCKMMMMRRRMRRIIIIIIII
|
||||||
|
MMMPPPPPPPPHHHFFFFFFEEEGEDDDNNNNQQWYWWWWUUUUUUUVVVVRRRRRMMMMMMMMMMMMMWWWTTTTTTXDTTWWWWWWWWWWWWWWWKKKKKKKKCCCCCCCCCCCCCCCKKKMMMMMMMMMIMMMIIII
|
||||||
|
MMPPPPPPPPPHHHHFFFFEEEEEEDDDNNNQQQQWWWWWUDDDUUVVFFVRRRRRMMMMMMMMMMMMMWWWWTTTTTTTTTTWWWWWWWWWWWWAWAAKAAKKCCCCCCCCCCCCCCCKKKKMKKMMMMMMMMMMMIII
|
||||||
|
MMMMPPPPPPPPHHHEEELLEEEEDDDDNNNQJJQQQWWWDDDDUUVVEEERRRRRRMMMMMMMMMMMMWWWWWITVVTTTRRRRWWWWWWWWWWAAAAKAKKKKCCCCCCCCCCCCKKKKKKKKKMMMMMMMMMMEFII
|
||||||
|
MMMMMPPPPPEEHHEEEEEEMDEDDDDDDJJJJJQQWWWWDDDDDUVGEEERRRRRMMMMMMMMMMMMMWWWWWWTWWRRRRRRWWWWWWWWWWWAAAAAAKAKCCCCCCCCCCCCCKKKKKKKKMMMMWMMMMMMMFIF
|
||||||
|
MMMMMMMPPPPEEHEEEEEEDDDDDDOJJJJJJJQWWWWTDTTDDDTEEEERRRWWMMMMMMMMMWWMWWWWWWWWWWRRRRRWWWWWWWNWWWWWAAAAAAAACCCCCCCCCCCCKKKKKKKKKMMMMWWWMMPPFFFF
|
||||||
|
KMMMMMMPPPEEEEEEEEEEEEEEDDDJJJJJJJJTTWTTTTTTTTTEEEEERRWWWWWWWWMWWWWWWWWWWWWWYYYRRRRWWWNNNNNNWWWWAAAAAAACCCCCCCCCCCCDDDDDKKKKKKMWMWWWMFFFFFFF
|
||||||
|
KKMMMMPPPPEEEEEEEEEEEEEESDSJJJJJJJJJTTTTTTTTTTTEEEEEBBWWWWWNNWWWWWWWWWWUUWWYYYYYRRRXXXNNNNNNAAAAAAAAARURCCCCCCCCDQDDDDDDDKKKKKWWWWWWTFFFFFFF
|
||||||
|
KKWWMWWPPPPLLEEEEEEEEEEESSSJJJJJJJJJTTTTTTTTTTTEEEEEEEANNSNNNWWWWWWWWWWWUIIYYYWYYRYEXXNNNNAAAAAAAARRRRRRCCCCCCCDDDDDDDDDDKKKKWWWWWWWTFFFFFFF
|
||||||
|
KKWWWWWPPPPLLLEEEEEEEEEESSSJJJJJJJJJJTTTXXXTTXXEEEEEECNNNNNNNNNWWWWWWWWUUIIYYYYYYYYXXXXXNNAAAAAAAAAARRRRCCCCCCDDKDMDDDDDDKKKKWDWWWWQFFFFFFFF
|
||||||
|
KKKWWWWPPPPLLLEEEEEEEEEESSSJJJJJJJJJJTJJXWWXTXXEEEEEECCNNNNNNNNNWWWWWWUUUUUYYYYYYYXXXXNNNNNAAAAAAAAARRRRRRCCCCKKKDDDDDDDDDKKWWWWWWWWFFFFFFFF
|
||||||
|
KKKKWKWLLLLLLLEEEEEEEEEESJJJJJJJJJJJJJJWXXWXXXXCEXWWNNNNNNNNNNNNNUUUWUUUUUUUYYYYYYYXXXNNNNAAAAAAAAAAARRRRRRCCKKKKDDDDDDDDKKKWWWWWWWWWWFFFFFF
|
||||||
|
KKKKKKKCLLLLLLEEEEAEEEEEEJJJJJJJJJJJJJJXXXXXXXXXDXXNNNNNNNNNNNNUUUUUUUUUUYYYYYYYYYYXXNNNNAAAAAAAAAIARRRRRNCCCKKKDDDDDDDDDFFFWWWWWWWWWFFFFFFF
|
||||||
|
KKKKKCCCLLLLLLEEEEEFEEEENJJJJJJJJJJJJJJXXXXXXXXXDXGGTTNNNNNNNNUUUUUUUUUUUUYYYYYYYYYYYNNNNNIIAAAAAAIAIRRRRNKCKKKKDDDDDDDDDDDFWWWWWWWWWFFFFFFF
|
||||||
|
KKKKKKKCLLLLLLEEEFFFEEEEJJJJJJJJJJJJJJXXXXXXXXXXXXGTTTTNNNNNNUUUUUUUUUUUUYYYYYYYYYYYKYNNNNNIIIAIIIIIIIRRRNKKKKKDDDDDDDDDDDDWWWWWWWWWLWFFFFFF
|
||||||
|
KKKKKPLLLLLFFFEFFFFFFFKKJJJJJJJJJJJJXXXXXXXXXXXXXXXTTTTTNNNNNNUUUUUUUUUUUUYYYYYYYYYYYYNNNIIIIIAIIIIIIIIIKKKKKKKDDDDDDDDDDDDWWWWWWBWWWWWWFFFF
|
||||||
|
KKKKKPPLLLLLFFFFFFFFFFJJJJJJAJJJJJJXXXXXXXXXXXXXXRXTTTTTTNNNNNNUUUUUUUUUUUUYYYYYYYYYYNNNNNIIIIIIIIIIIIIIKKKKKDDDDDDDDDDDDDWWWWWWWWWWFWFWFFFF
|
||||||
|
KKKKKPPLLLPLFFFFFFFFFFFJJJJJJJJJJJXXXXXXXXXXXXXXXRTTTTTNNNNNNUUUUUUUUUUUUUUYYYYYYYYYYNNNNNNIMMIIIIIIIIIIKKAAKDDDDDDDDDDDDDWWWWWWWWFFFFFFFFFF
|
||||||
|
PKPPPPPPPPPPPFFFFFFFJJFJJJJJJJJJXJXXXXXXXXXXXXXXRRTTTTTTNNNNNUUUUUUUUUUUUUUYYYYYYYYYNNNNNNNNMIIIIIIIIIAAAAAAADDBBDDDDDDDDDDDWWWWFFFFFFFFFFFF
|
||||||
|
PPPPPPPPPPPPPFFFFFFJJJJJJJJJJJJJXXXXXXXXXXXXXXXXRRRTNNNNNNNNNUUUUUUUUUUUUUUYYYYYYYYYNNNNNNMMMMIIIIIIIIIAAAAAAADBDDDDDDDDDDDDDWWFFFFFFFFFFFFF
|
||||||
4
input/day12_example1.txt
Normal file
4
input/day12_example1.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
AAAA
|
||||||
|
BBCD
|
||||||
|
BBCC
|
||||||
|
EEEC
|
||||||
5
input/day12_example2.txt
Normal file
5
input/day12_example2.txt
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
OOOOO
|
||||||
|
OXOXO
|
||||||
|
OOOOO
|
||||||
|
OXOXO
|
||||||
|
OOOOO
|
||||||
10
input/day12_example3.txt
Normal file
10
input/day12_example3.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
RRRRIICCFF
|
||||||
|
RRRRIICCCF
|
||||||
|
VVRRRCCFFF
|
||||||
|
VVRCCCJFFF
|
||||||
|
VVVVCJJCFE
|
||||||
|
VVIVCCJJEE
|
||||||
|
VVIIICJJEE
|
||||||
|
MIIIIIJJEE
|
||||||
|
MIIISIJEEE
|
||||||
|
MMMISSJEEE
|
||||||
189
src/day12.rs
Normal file
189
src/day12.rs
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
use crate::day_solver::DaySolver;
|
||||||
|
#[cfg(test)]
|
||||||
|
use crate::util::read_file;
|
||||||
|
use crate::util::{Coord, Grid};
|
||||||
|
use itertools::Itertools;
|
||||||
|
use std::collections::HashSet;
|
||||||
|
|
||||||
|
pub struct Day12 {
|
||||||
|
garden: Grid<char>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, PartialEq, Copy, Clone)]
|
||||||
|
enum Side {
|
||||||
|
N,
|
||||||
|
E,
|
||||||
|
S,
|
||||||
|
W,
|
||||||
|
}
|
||||||
|
|
||||||
|
const SIDES: [Side;4] = [Side::N, Side::E, Side::S, Side::W];
|
||||||
|
|
||||||
|
struct Fence {
|
||||||
|
side: Side,
|
||||||
|
pos: Coord<usize>,
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Area {
|
||||||
|
patches: Vec<Coord<usize>>,
|
||||||
|
fences: Vec<Fence>
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Day12 {
|
||||||
|
pub fn create(input: String) -> Self {
|
||||||
|
Day12 {
|
||||||
|
garden: Grid::parse(input, None),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn calc_area(&self, start_x: usize, start_y: usize, visited: &mut Grid<bool>) -> Area {
|
||||||
|
let plant = self.garden.get(start_x, start_y);
|
||||||
|
let mut to_check = vec![Coord::new(start_x, start_y)];
|
||||||
|
visited.set(start_x, start_y, true);
|
||||||
|
let mut in_patch: HashSet<Coord<usize>> = HashSet::new();
|
||||||
|
in_patch.insert(Coord::new(start_x, start_y));
|
||||||
|
|
||||||
|
let mut fences = Vec::with_capacity(32);
|
||||||
|
|
||||||
|
while let Some(cur) = to_check.pop() {
|
||||||
|
for side in SIDES {
|
||||||
|
if let Some(f) = self.check_neighbor(visited, plant, &mut to_check, &mut in_patch, cur, side) { fences.push(f) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Area {
|
||||||
|
patches: in_patch.into_iter().collect(),
|
||||||
|
fences
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn check_neighbor(
|
||||||
|
&self,
|
||||||
|
visited: &mut Grid<bool>,
|
||||||
|
plant: &char,
|
||||||
|
to_check: &mut Vec<Coord<usize>>,
|
||||||
|
in_patch: &mut HashSet<Coord<usize>>,
|
||||||
|
cur: Coord<usize>,
|
||||||
|
side: Side,
|
||||||
|
) -> Option<Fence> {
|
||||||
|
let neighbor = match side {
|
||||||
|
Side::N => cur.north(),
|
||||||
|
Side::E => cur.east(),
|
||||||
|
Side::S => cur.south(),
|
||||||
|
Side::W => cur.west()
|
||||||
|
};
|
||||||
|
if let Some(n) = neighbor {
|
||||||
|
if self.garden.in_bounds(n.x, n.y) && self.garden.get(n.x, n.y) == plant {
|
||||||
|
if !visited.get(n.x, n.y) {
|
||||||
|
to_check.push(n);
|
||||||
|
in_patch.insert(n);
|
||||||
|
visited.set(n.x, n.y, true);
|
||||||
|
}
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Some(Fence { side, pos: cur })
|
||||||
|
}
|
||||||
|
|
||||||
|
fn calc_total_price(&self) -> usize {
|
||||||
|
let mut visited = Grid {
|
||||||
|
data: self.garden.data.iter().map(|_| false).collect(),
|
||||||
|
width: self.garden.width,
|
||||||
|
default: Some(true),
|
||||||
|
};
|
||||||
|
let mut sum = 0;
|
||||||
|
|
||||||
|
for y in 0..self.garden.height() {
|
||||||
|
for x in 0..self.garden.width {
|
||||||
|
if *visited.get(x, y) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
let area = self.calc_area(x, y, &mut visited);
|
||||||
|
sum += area.patches.len() * area.fences.len();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sum
|
||||||
|
}
|
||||||
|
|
||||||
|
fn count_side(fences: &Vec<Fence>, side: Side) -> usize {
|
||||||
|
let cur_side_fences = fences.iter()
|
||||||
|
.filter(|f| f.side == side)
|
||||||
|
.sorted_by(|a, b| {
|
||||||
|
match side {
|
||||||
|
Side::W | Side::E => a.pos.x.cmp(&b.pos.x).then(a.pos.y.cmp(&b.pos.y)),
|
||||||
|
Side::N | Side::S => a.pos.y.cmp(&b.pos.y).then(a.pos.x.cmp(&b.pos.x)),
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
let mut sides = 0;
|
||||||
|
let start_fence = Fence { side: side.to_owned(), pos: Coord::new(usize::MAX, usize::MAX) };
|
||||||
|
let mut last_fence = &start_fence;
|
||||||
|
for fence in cur_side_fences {
|
||||||
|
if !match side {
|
||||||
|
Side::W | Side::E => last_fence.pos.x == fence.pos.x && fence.pos.y == last_fence.pos.y + 1,
|
||||||
|
Side::N | Side::S => last_fence.pos.y == fence.pos.y && fence.pos.x == last_fence.pos.x + 1,
|
||||||
|
} {
|
||||||
|
sides += 1
|
||||||
|
}
|
||||||
|
last_fence = fence;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
}
|
||||||
|
|
||||||
|
fn calc_modern_total_price(&self) -> usize {
|
||||||
|
let mut visited = Grid {
|
||||||
|
data: self.garden.data.iter().map(|_| false).collect(),
|
||||||
|
width: self.garden.width,
|
||||||
|
default: Some(true),
|
||||||
|
};
|
||||||
|
let mut sum = 0;
|
||||||
|
|
||||||
|
for y in 0..self.garden.height() {
|
||||||
|
for x in 0..self.garden.width {
|
||||||
|
if *visited.get(x, y) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
let area = self.calc_area(x, y, &mut visited);
|
||||||
|
// Now we need to find full "sides"
|
||||||
|
let sides = SIDES.iter().map(|s| Self::count_side(&area.fences, s.to_owned())).sum::<usize>();
|
||||||
|
sum += area.patches.len() * sides
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sum
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl DaySolver for Day12 {
|
||||||
|
fn solve_part1(&mut self) -> String {
|
||||||
|
self.calc_total_price().to_string()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn solve_part2(&mut self) -> String {
|
||||||
|
self.calc_modern_total_price().to_string()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_part1_example1() {
|
||||||
|
let mut day = Day12::create(read_file("input/day12_example1.txt"));
|
||||||
|
assert_eq!("140", day.solve_part1());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_part1_example2() {
|
||||||
|
let mut day = Day12::create(read_file("input/day12_example2.txt"));
|
||||||
|
assert_eq!("772", day.solve_part1());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_part1_example3() {
|
||||||
|
let mut day = Day12::create(read_file("input/day12_example3.txt"));
|
||||||
|
assert_eq!("1930", day.solve_part1());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_part2() {
|
||||||
|
let mut day = Day12::create(read_file("input/day12_example1.txt"));
|
||||||
|
assert_eq!("80", day.solve_part2());
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ extern crate core;
|
|||||||
use std::time::Instant;
|
use std::time::Instant;
|
||||||
use crate::day10::Day10;
|
use crate::day10::Day10;
|
||||||
use crate::day11::Day11;
|
use crate::day11::Day11;
|
||||||
|
use crate::day12::Day12;
|
||||||
use crate::day1::Day1;
|
use crate::day1::Day1;
|
||||||
use crate::day2::Day2;
|
use crate::day2::Day2;
|
||||||
use crate::day3::Day3;
|
use crate::day3::Day3;
|
||||||
@@ -28,6 +29,7 @@ mod day8;
|
|||||||
mod day9;
|
mod day9;
|
||||||
mod day10;
|
mod day10;
|
||||||
mod day11;
|
mod day11;
|
||||||
|
mod day12;
|
||||||
|
|
||||||
const DEFAULT_BENCHMARK_AMOUNT: u32 = 100;
|
const DEFAULT_BENCHMARK_AMOUNT: u32 = 100;
|
||||||
|
|
||||||
@@ -110,7 +112,7 @@ fn build_day_solver(day: u8, input: String) -> Option<Box<dyn DaySolver>> {
|
|||||||
9 => Some(Box::new(Day9::create(input))),
|
9 => Some(Box::new(Day9::create(input))),
|
||||||
10 => Some(Box::new(Day10::create(input))),
|
10 => Some(Box::new(Day10::create(input))),
|
||||||
11 => Some(Box::new(Day11::create(input))),
|
11 => Some(Box::new(Day11::create(input))),
|
||||||
// 12 => Some(Box::new(Day12::create(input))),
|
12 => Some(Box::new(Day12::create(input))),
|
||||||
_ => None
|
_ => None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user