mirror of
https://github.com/Noratrieb/advent-of-code.git
synced 2026-01-17 02:55:01 +01:00
stuff
This commit is contained in:
parent
7f4d9bce74
commit
4da0b11cab
33 changed files with 2480 additions and 0 deletions
16
2024/day12/Cargo.toml
Normal file
16
2024/day12/Cargo.toml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
[package]
|
||||
name = "day12"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
nom.workspace = true
|
||||
helper.workspace = true
|
||||
divan.workspace = true
|
||||
rustc-hash = "2.1.0"
|
||||
|
||||
[[bench]]
|
||||
name = "benches"
|
||||
harness = false
|
||||
3
2024/day12/benches/benches.rs
Normal file
3
2024/day12/benches/benches.rs
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
fn main() {
|
||||
day12::bench();
|
||||
}
|
||||
140
2024/day12/input.txt
Normal file
140
2024/day12/input.txt
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
UUUKKKKZZZZZZEEEEEEEEEEEEEEEOOOOOOOOOOOOOOHHHHYYYYYYYYYYYYYEYYOOMNNMUUUUUUUUUYGYYYYYGGGGGZSSSSSSSSOOOOOOOOOOOOOOOODDDDDDDDDDAAAAAAJJJJJJJJJJ
|
||||
UUKKKKKZZZZZZEEEEEEEEEEEEEEEOOOOOOOOOOOOOOOHHHYYYYYYYYYYYYYYYYOOMMMMUUUUUUUUUYYYYYYYGGGGZZZSSSSSSSOOOOOOOOOOOOOOOWDDDDDDDDDAAAAAAAJJJJJJJJJJ
|
||||
UUKKKKKKKZZZZZEEEEEJEEEEEEEOOOOOOOOOOOOOOOHHYYYYYYYYYYYYYYYYYYMMMMMMMUUUUUUUUYYYYYYYYZZZZZZZSSSSSSOOOOOOOOOOOOOOODDDDDDDDDAAAAAAAHJJJHJJJJJJ
|
||||
UUKKKKKKKKKZZZEEEEJJEEEETTEOOOOOOOOOOOOOOOHHYYYYYYYYYYYYYYYKYYYMMMMMUUUUUUUUUUUYYYYYYDDZZZZZZSSSSSOCOOOOOOOOOOOOOTDDFFFDDUAAAAAAHHHJHHJJJJJJ
|
||||
KKKKKKKKKKKKZEEEEEJEEJEETTTOOOOOOOOOOOOPORYHYYYYYYYYYYYYYQKKKKMMMMMMMUUUUUUUUUUYYYYYDDZZZZZZZZSSOOOOOOOOOOOOOOOOOODDFFFFAAAAAAAHHHHJHHHJJJJJ
|
||||
KKKKKKKKKKKKZZEEEJJJJJJJTTTOOOOOOOOOOOPPPYYYYYYYYYYYYYKYUKKKKMMMMMMMMMUDDDUDDDDDDDYDDZZZZZZZZZSSOOOOKOOOOOOOFOOOOOOFFFFFAAAAAHHHHHHHHHJJJJJJ
|
||||
KKKKKKKKKKZZZZEEEEJJJJJJTTTOOOOOOOOOOOOPPPPPPPPPYYYYYYKKKKKKXXMMMMMMMMUDDDDDDDDDDDDDDZZZZZZZZSSSSOOOOOOOOOOOFOOOOOFFFFFAAGAAHHHHHHHHHHHJJJJJ
|
||||
NNKKKKKKKZZZZZEEZJJJJJJJJTOOOOOOOOOOOOOPPPPPPPPPPPYYYKKKKKKKKMMMMMMMMMUDDDDDDDDDDDDNZZJJJZZZZZZZZOOOOOTTOOOOFFFAOOFFFFFAGGGAGHHHHHHHHHJJJJJJ
|
||||
NNKKKKKKYZZZZZZZZJJJJJJJJJJOOOOOOOOOGGXPPPPPPPPPPYYYYKKKKKKKMMMMMMMMMUUDDDDDDDDDDDMMMMJJJZZZZOOOOOOOOOETOOFFFFFFFFFFFFVVVGGGGHHHHHHHHHHHJJJJ
|
||||
NNNNKKKKYZZZZZZZJJJJJJJJJJJMDDOOOOOOOXXPPPPPPPPPPPPPYYKKKKKKKOMMMMMMMUUDDDDDDDDDDDDMMMMJJZZOOOOOOOOODDTTTTTFFFFFFFFFFFVVGGGGHHHHHHHHHJJJJJJJ
|
||||
NNNNNNKYYYZYZZZJJJJJJJJJJJMMMDDOODXXXXXXPPPPPPPKKKKKKKKKKKKGGGMMMMMMUUDDDDDDDDDDDDDMMMQQJJZOOOOOOOOONDTTTTTTFFFFFFFFFFVVGGGGHHGHHHHJJJJJJJJJ
|
||||
NNNNNNNYYYYYZZZZZJJJJJJJJJMMDDDDDDXXXXXXXXPPPPPKKKKKKKKKKKGGGGUMUUUMUUUDDDDDDDDDDDDBBBQQAAAAOOOOOONNNDDTTTTTFFFFFFFFFNNNNNNNNGGGHKHJJJJJJJJJ
|
||||
NNNNNNYYYYYYYZZZJJJJJJJJJJMDDDDDDDXXXXXXXXXXXPPKKKKKKKKKKKKUGUUUUUUUUDDDDDCCDDCCDCDBBQQQAAAAQQOONNNNNDDTTTDTFFFFFNNNNNNNNNNNNGGGGYHYJYYJJJYY
|
||||
NNNNNNYYYYYYZZYZZJJJJJJJJJDDDDDDDDDDXXXXXXXXXXXKKKKKKKKKKKKUUUUUUUUUDDDDDCCCCCCCCCCQQQQQAAAAAAONNNNNNDDTDDDDFFFFNNNNNNNNNNNNNGGGGYNYYYYYYYYY
|
||||
NNNNNYYYYYYYYYYYJJJJJJJJJDDDDDDDDDDQXXXXXXXXXXXXKKKKKKKKKKKKKUUUUUUUUDDDDDCCCCCCCCCCCQQQAAAAAAOONNNNNDDDDDDDDDDFNNNNNNNNNNNNNGGGGYNYYYYYYYYY
|
||||
NNNNYYYYYYYYYYSYYJJJJDDDDDDDDDDDDDDQQXXXXXXXXXXXXXKKKKKKKKKKUUUUUUUUUTTTTCCCCCCCCCCCCQQQQQQAAAQOONNNDDDDDDDDDDDDNNNNNNNNNNNNNGGGYYNNYYYYYYYY
|
||||
NNNNNNYYYYYYYYYYYJJJJJJDDDDDDDDDDDDQQXXXXXXXXXXXXKKKKKKKKKKKKMLLLLULLLTCCCCCCCCCCCCCCCQQQQQAAAQQOONNDDDDDDDEDDDDNNNNNNNNNNNNNGGGYYYYYYYYYYYY
|
||||
NNNNNYYYYYYYYYYYYJJJJJDDDDDDDDDDIIDQXXXXXXXXXXXXXKKDKKKUKKKKKMMMLLLLLLLCCUUUUCCCCCCQQQQQQQQAAAQOOOONNDDDEEEEEDNNNNNNNNNNNNNNNGGGYYYMYYYYYYYY
|
||||
NNNNNYYYYYYYYYYYYJJJDDDDDDDDDDDDDDDDXXXXXXXXXXXXXDDDDKKKKKKKKEEELLLLLLLLELCCCCCQCCCCQQQQQQQQZZZOODDDDDDEEEEEEXNNNNNNNNNNNNNNNSGGYYMMYYYYYYYY
|
||||
NNNNNNYYYYYYYYYYYYZZZZDDDDDDDDDDDDDDDXFFXXXFFXFXXFFFDKKKEEEEKEEELLLLLLLLLLJJJJCCCCCCQQQQQQQQZZZZDDDDDDEEEEEEEENNNNNNNNNNXXXGGSSSSMMYYYYYYYYY
|
||||
NNNNNNNNYYYYYYYYYZZZZZDZDZDDDDDDDDDFFFFFXFFFFXFFFFFFFKEEEEEEEEEEEELLLLLLLLJJJJJQQQQQQQQQQQQQZZZZZZDDDDEEEEEEEENNNNNNNNNNXXXGGGSSSMMYYYYYYYYY
|
||||
NNNNNNNYYYYYYYYYYZZZZZZZZZZZDDDDDDDFFFFFFFFFFFFFFFFFKKEEEEEEEEEEEEEELLLLLLJJJJJJQQQQQQQQQQZZZZZZZZZZZLLLEEELEENNNNNNNNNNXGGGSSKSSSMYYYYYYYYY
|
||||
NNNNNNNNYYYYYYHHZZZZZZZZZZZZDDDHBBDDFFFFFFFFFFFFFFFFFKEEEEEEEEEEEEEEELLLLLJJJJJJQQQQZQQQQQQZZZZZZZZLLLLLLLELEENNNNNNNNNNNNNGSSKSSSMMYYYYYYYY
|
||||
NNNNNNNNNYYYRHHHZZZZZZZZZZZDDDDHBBBBBFFFFFFFFFFFFFFFFEEEEEEEEEEEEEELLLLLJCCJJJJJJQQQZQQQQQZSZZZZZZZLLLLLLLLLEENNNNNNNNNNNNNSSSSSSSMMYYYYYYYY
|
||||
NNNNNNNNYYTTHHHHHHHHZZZZSSZZZDPBBBBBBBFFFFFFFFFFFFKKEEEEEEEEEEEEEEEELLLLJJJJJJJJQQZZZQQQQQZZZZZZZZZZLLLLLLLLEYNNNNNNNNNNNNSSSSSSSMMYYYYYYYYY
|
||||
NNNNNNNNNNTTHHHHHHHZHZZZSSSSZDPBBBBBBBAAFFFFFFFFFFFFEEEEBBEBBEEEEEEELLLLLJJJJJJZZZZZQQQQQQQZZZZZZZZZLLLLLLRLEYNNNNNNNNNNNNASSSSSSMMMYAYYYYYS
|
||||
NNNNNNNNNNTTHHHHHHHHHHHZSSYSSDPBBBBBBBBAAFFFMFFFMFIIIEEEEBBBBEBEEEELLLLLLJJJJJJZZZZZQQQQQZZZZZZZZZZYZLLLRRRYYYQNNNNNNNNNNQQQSSSSSMMMSSSYYYSS
|
||||
NNNNNNNNNNNHHHHHHHHHHHHZHSSSSPPPBBBBOBBAFFFFMMMMMFIIIEEEBBBBBBBEELLLLLLLLJJJJZJZZZZZZZZZZHYZZZZZZZZZZZLLRRYYYYYNNNNNNNNNNQSSSSSSSSSSSSSYYYSS
|
||||
LNNNNNNWWWNWHHHHHHHHHHHHHSSSSPPPBBJBOBBBMFFFMMMMFFIIIEEEBBBBBBBBBBLLLLJJJJJJJZZZZZZZZZZZHHHZZZZZZZZZLLLLYYYYYYYYQQQQQQQQQQQSSSSSSSGSSSSSSYSS
|
||||
LLLNNNNWWWWWHWHHHHHHHHHHHSKKKKKKKJJJMMMMMMFMMMMMEFIIYPEBBBBBBBBBBBBLLLLJJJJJZZZZZZZZZZZZHHZZZZZZZZZYYYYYYYYYYYQQQQQQQQQQQQSSSSSSSSSSSSSSSSSS
|
||||
LLLLWWNWWWWHHWHHHHHHHHHHSSKKKKKKJJJJMMMMMMMMMMMMMMIYYYYYBBBBBBBBBBBLLLLJJJJLLZZZZZZZZZZXXXZZZQQVVZZYYYYYYYYYYYQQQQQQQQQQQSSSSSSSSSSSSSSSSSSS
|
||||
LLLLWWWWWWWHWWHHHHHHHHSHSSKKKKKKJJJJJMMMMMMMMMMMMMYYYXBBBBBBBJJBBBFFLLAJJJJTLZZZZZZZZZZUUULQQQQVYYYYYYYYYYYYYYYQQQQQQQQSSSSSTSSSSSSSSSSSSSSS
|
||||
LLLLLWWWWNWWWWSHHHHHHSSSSSKBKKKKKKJJMMMMMMMMMMMMMMMMMXBBBBBBBJJBBBBFBAATTDDTTZZZZZZZZZZUUUUQQQVVYYYYYYYYYYYYYYYYQQQQQQQQSSQSTTSSSSSSSSSSSSSS
|
||||
LLLLLLWWWNNWNSSSHSHSSSSSSSKKKKKKKDMMMMMMMMMMMMMMXXXXXXXBBXBBJJJBBBBBBTTTTTTTTZZZZZZZZUUUUUUUUQVYYYYYYYYYYYYYYYYYQQQQQQQQQQQQFTSSSSSSSSSSSSSS
|
||||
LLLLLLWWWNNNNSSSSSSSSSSSKKKKKKKKKKMZZMMMMMMMMMMMXXXXXXXXXXBJJJBBBBBBYTTTTTTTTVZZZNZZZUUUUUUUUVVVVYYYYYYYYYNYYYNSSSQQQQQQQQQFFTFSSSSSSSSSSSSS
|
||||
LXXGWWWWNNNNNSSSSSSSSSSSKKKKKKKPFOFFZZMMMMMMMMMMMXXXXXXXXXBBBBBBBBYYYTTTTTTTVVNZNNNZZZUUUUUUUVVVYYYYYYYYYYNNNNNNSSQQQQQQFQFFFFFSSSSSSSSSSSSS
|
||||
XXXGWWWNNNNNNNNSSSSSSSSSKKKKSFFFFFFFFFMMMMMMMMMMMMXXXXXXXXBBBBBBCBFYTTTTTTDDNNNNNNJZZZIUUUUUUWWWHYYYYYYYNNNNNNNNNSSQQGQFFFFFFFFSSSSFSSSSSSSS
|
||||
AXXGWWWWYYNNNNNNSSSSSZSSKSKSSSFFFFFFFFMMMMMMMMMMMXXXXXXXFFFFFFFBFFFTTTTTTTNDNNNNNNJJZZUUUUUUWWWWWWYYYYYYNNNNNNNNNQQQQGQQQQFFFFFSSSSFSSSSSSSS
|
||||
AXGGGSSYYYNNNNNNNSSSSZZSSSSSSFFFFFFFFFFMMMMUMMMMMMNXXXXFKFFFFFFFFFFPTTTTTTNNNNNNNJJJZJUUUUUWWWWWWWYYYYYNNNNNNNNNNQQQQQQQQQQQFFFFSSSFFSSSSSUU
|
||||
SSSSSSTNNNNNNNZNNZSSSZZSSSSSSFFFFFFFFFFFMMUUAANNMNNFFFXFFFFFFFFFFFFTTTTNNNNNNNNNJJJJJJUQUUUMMWWWWWWWWYYNNNNNNNQQNNNQQQQQQQQQQQFFFFUUFSUSUUUU
|
||||
SSSSSSTNNNNNNNZNNZZZZZZZSSSFFFFFFFFFFFFFMUUUAANNNNTFFFFFFFFFFFFFFFFQQTTTQNNNNNNNJJJJJJJMMMMMMMWWWWWWWYFNNNNNNNNQQQQQQQQQQQQQQQFFFFUUUFUUUUUU
|
||||
SSSSSNNNNNNNNNZNNZZZZZZZSSSFFFFFFFFFFWFFMUUUUAAAAATTTFFFFFFFFFFFFFFQQQQQQQQQQQNNJJJJJQQMMMMMMMWWWWWWWFFFYNNNNNNQFQQQQQQQQQQQQQQFFFFUUUUUUUUU
|
||||
PSSSSSSNNNNNNNZZNZZZZZZZZZSFFFFFFFFFFFFFFUUUUUAAAATTTZZZFFFFFFFFFFFFQQQQQQQQQNNJJJJQQQMMMMMMMMWWWWWFWWFFYNNNNNNFFQQQQQQQQQQQQQFFFUUUUUUUUUUU
|
||||
SSSSSNNNNNNNNNNZZZZZZZZZZRRFFFFFFFFFUFFFFUUUUAAAATTTTZZZZFFFFFFFFFFFQQQQQQQQQWNNJJJQQQMMMMMMMMWWWWWFWWWFNNNNFFFFFQFFFQQQQQQQFFFUUUUUUUUUUUUU
|
||||
SSSSSSNNCCCCCCCCCCZZZZZZRRFFFFFFFFFFUUUUUUUUUAAAATTTTZZZZFFFFFFFFFFFQQQQQQQQQJJOOOOOOOMMMMMMMMWWWWWFFFFFNNFFFFFFFFFFFQQQQQQQQFFFUUUUUUUUUUUU
|
||||
SSSSSSSFCCCCCCCCCCCZZZZZRRFFFFFFFFFFUUUUUUUUUAAATTTTTTZZZFFFFFFFFFQQQQQQQQQRJJJOOOOOOOJMMLLLMMMMMWFFFFFFFNFFFFFFFFFFGFFUCQQAQFHFUUUUUUUUUUUU
|
||||
SSSSSSSSCCCCCCCCCCCZZZZZRRFFFFFFFFFFUUUUUUUUUAAAAZZTZZZZZFFFFFFFQQQQQXQQJJJJJJJOOOOOOOJLLLOOOOLMMWWJFFFFFFFFFFFFFFFFFFUUCCQAAHHHUUUUUUUUUUUU
|
||||
ESSSSSSECCCCCCCCCCCZZZZZRFFFFFFFRFFUUUUUUUUUUAAAAAZZZVVVVFFFAFFFFQQQQXQQQJJJJJJOOOOOOOLLLLOOOOLMMJJJFFFFFFFFFFFFFFFFFUUUCCCHAAHHUUUUUUUUUUUU
|
||||
EESSSCCCCCCCCCCCCCCZZZZRRRRRFFRFRRFUUUUUUUUUUUAAAUZZZVVVVVVFFVVVFQQQXXXQQQAJJJJOOOOOOOLLLLOOOOLMMJJJJJFFFFFFFFFFXFFFFUUUHHHHHHHHHHCUHUHUUUUU
|
||||
EEEEECCCCCCCCCCCCCCZRRRRRRRRFFRRRRRUUUUUUUUUUUUUUUZZXXXVVVVVVVVVVQQQQXXXQQQQQTTOOOOOOOLLLNOOOOJJJJJJJJJFFFFFFMMFFFFFFUUUHHHHHHHHHHHHHHHHHUUU
|
||||
CCCCCCCCCCCCCCCCCCCZRRRRRRRRFFRRRUUUUUUUUUUUUUUUUZZZXXXXXVVVVVVVVVVQXXXXQQQQQTTOOOOOOOLENNOOOOZZZJJJJJFFFFFFFMMFFFFFFUUUHHHHHHHHHHHHHHHHUUUU
|
||||
CCCCCCCCCCCEECCCCCCZRRRRRRRRRRRRRRUUUUUUUUUUUUUUUUXXXXXXXVVVVVVVVVVVXXXOOOOOOOOOOOOOOOOOOOOOOOZZZJJJJJJJFJJJMMMMFFFFUUUHHHHHHHHHHHHHHHUUUUUU
|
||||
CCCCCCCCCCCCCCCCCCCRRRRRRRRRRRRHHRHUUUHHHUUUUUUCUXXXXXXXVVVVVVVVVVVVVTTOOOOOOOOOOOOOOOOOOOOOOOZZZZJJJJJJJJMMMMMUUFUUUUUUUHHHHHHHHHUUUUUUUUUU
|
||||
EEEEECCCCCCCCCCCCCCRRRRRRRRRHRRHHHHHHHHHHUUUUUUCCXXXXXXXXVVVVVVKKKKVVTTOOOOOOOOOOOOOOOOOOOOOOOZZJJJJJJJJJJMMMMMUUUUUUUUUUHHHHHHHHHHUUUUUUUUU
|
||||
EEPPPCCCCCCCCCCRZRZRRRRRRRRHHHHHHHHHHHHHHHHUUUCCCCXXXXXXXVVVVVVKKKKKKTTOOOOOOOOOTTTTTOOOOOOOOOZZJJIIJJJJMJMMMMMMMUUUUUUUUHHHHHHHHHTTTUUUUUUU
|
||||
RPPPPCCCCCCCCCCRRRRRRRRRRRRRHHHHHHHHHHHHHUUUCUCFFXXXXXXXXVVVVVVVKKKKKTTOOOOOOOOOTTTTNOOOOOOOZZZZIIIJJJMMMMMMMMMMUUUUUUUUHHHHHHHHHTTWTTWWWUUU
|
||||
PPPPPCCCCCCCCCCARRRRRRRRRRRRROHHHHHHHHHHHHHHFFCFFQQXXXXXVVVVVVVKKKKKKKTTTTTTTTTTTTTNNOOOOOOOEZZZIIIIJMMMMMMMMMMMMUUUUUCCCCHHHHHHHHHWWWWWWWWU
|
||||
PPPPPPPPEECCCCCARRRRRRRRRRRRROHHHHHHHHHHHHFFFFFFFFQQXXVXVVVVVKKKKKKKKKKTTPTPPTTTTTTNNOOOOOOOEZEIIIIIISSMMMMMMMMMMUUUUCCCKCMHHHHHHRWWWWWWWDDD
|
||||
PPPPPPPPJJCCCCCUZZZRRURRRRRRRRHHHHHHHHHHHHFFFFFFFFFFFVVVVVVVVKKKKKKKKKKKKPPPPPPTTTTTNTOOOOOOEEEIIIIIIIIMMMMMMMMMMMMMCCCCCCHHHHHHHWWWWWWWWWDD
|
||||
PPPPPPRJJJCCCCCUZZRRUURRRURUUUUHHHHHHHHHHFFFFFFFFFFFFVVVVVVVTTDKKKKKKKKKKUPPPPPPPTTTTTOOOOOOEEIIIIIIIIIMMMMMMMMMMCCCCCCCCCHYYYHHHWWWWWWWWDDD
|
||||
PPPPPPRRJUCCCCCUZZZUURRRRUUUUUUHHHHHHHHHKFFFFFFFFFFFVVVVVVVTTTKKKKKKKKKKKKKPPPPPPPPTKKOOOOOOEEIIIISIIIIZMMMMMMMMMCCCCCCCCCYYYYYYHWWWWWWWWWDD
|
||||
PRRPRRRRRRUUUUZZZZZUUUUUUUUUUUUUHHJHHHHHFFFFFFFFFFFVVVVVVVVTTTTKTTKKKKKKKXXPPPPPPPPCCKOOOOOOEIIIIISUUIUMMMMMVMMTMCCCCCCCCDYYYYYYWWWWNWWWWWDD
|
||||
ERRRRRRRRUUUUUUUZZUUUUUUUUUUUUUUHSSSHHHHFFFFFFFFFFFVVVVVVVVTTTTTTTKKKKKKKXXPPPPPPPPKKKOOOOOOESISISSUUUUUMMMMMMMTMCCCCCCCCCCCCCCDDWWDWWWWWDDD
|
||||
EERRRRRRJUUUUUUUZZZZUUUUUUUUUUUSSSSSSHHFFFFFFFFRFFFVVVVVZTTTTTTTTTKKKKKKXXXPPPPPPPPKKKKBEEESSSSSSSSSUUUUMMMMMMMTDCCCCCCCCCCCCCCDDDDDDDDDDDDD
|
||||
EERRRRRRRUUUUUUUZZZZZUUUUUUUUUUSSSSGSHHHFFFFFFFFFFVVVVVVZTTTTTTTTTKKKKKKKXXPPPPPPPXKKKKBBEEESSSSSSSSSSUUUUMMMMMMDCCCCCCCCCCCCCCDDDDDDDDDDDDD
|
||||
EERRRRRRRRUUUUUUUZZUUUUUUUUUUUUSSSSGGGGHDFFFFFFFFFMMVVVRTTTTTTTTTTKRRKKKXXXXPMPPPPXXKBBBQDEVSNSSSSSSSUUUUUUUUUUJDDDDDDCCCCCCCCCHHDDDDDDDDDDD
|
||||
ERRRRRRRRRUUUAAAAAZZUUTUWUUUUUUUSSGGGGFFFFFFFFFFFFVVVVRRRRRRTDTTTTTRTXXXXXXXXPPPPXXQMQBQQQVVSSSSSSSSSUUUUUUUUUUDDDDDDDCCCCCCCCCHHHDDDDDDDDDD
|
||||
EERRRRRRRRRUAAAAAAAAAATTWWUUUUUUSSGGGGGFFFFFFFFFFRRRVVRRRRRRRTTTTTTTTXEXXXXXXXXXXXXQQQQQQQQVSSSSSSSSSUUUUUUUUUUDDDDDDDCCCCCCCCCHHDDDDDDDDDDD
|
||||
VVARRRRURRUUUAAAAAAAAWWWWWWUUUUUSFGGGGGFFFFFFFFFFRRRRRRRRRRRTTTTTTTTTEEXXXXXXXXXXXQQQQQQQQQSSSSSSSSSUUUUUUUUUUUDDDDDDDCCCCCCCCCHHHDDDDDDDDDD
|
||||
VVVKRRUUUUUUUAAJAAAAAWWWWWWUUUUUFFGGGGFFFFFFFFFFJRRRRRRRRRRRRRRTTTTEEEEXXXJXXXXXXXQQQQQQQQQRRSSSSSSSUUUUUUUUUUUUDDDDDDCCCCCCCCCHHHHDDDDDDDDD
|
||||
VDVKRRUUUUUUUAAAAAAAWWWWWWZUUUUFFFFGGGFFGFFFTTFJJJRFRRRRRRRRRRSTTTEEEEEEJJJJJXJXXXXQQQQQQQSSSSSSSSSUUUUUUUUUUUUUUDDDDCCCCCCCCCCHHUUHDDDDDDDD
|
||||
VDVVRUUUUUUUUAUAWAAAWWWWWWWWUUFFFFFFGGGGGFGGGJJJJJRRRRRRRRRREEEEEEEEEEEJJJJJJJJXXXXQQQQQQQQQSSSSSSSSUUUUUUUUUUUUGDDDDCCCCCCCCCCHHHHHDDDDDDDD
|
||||
VVVVUUUUUUUUUUUWWAAAWWWWWWWWUUUUFFFFFFGGGGGGGGJJJJRRRRRRRREEEEEEEEEEEEEJJJJJJJJXXXXQQQQQQQQQQSSSSSSSSUUUUAUUUUUGGGDDDCCCCCCHHHHHHHHHDHDDDDDD
|
||||
VVVVUUUVUDUUDDDDWWAWWWWWWWWWUUUFFFFFZZFGGGGGGGGJJJRRRRRRRRREEEEEEEEEEEEJJJJJJJJJJJQQQYYYYYZQQSSSSSSUUUUAUAUUUUGGGGDDDCCCCCCHHHHHHHHHHHDDDDDD
|
||||
VVVVUVUVUDDDDDDDWWWWWWWWWWWWUUUFFFFFZFFGFFGGGGGJJJJRRRRRRRRESEEEEEEEEEEJJJJJJJJJJJJJJYYYYYYYYSSSSSSUSUAAAAAUUUGGEGDDDCCCCCCHHHHHHHHHHHDDDDDD
|
||||
VVVVVVVVDDDDDDDDWWWWWWWWWWWWUUFFFFFFFFFFFFFGGGGGJJJJRRRRRRREEEEEEEEEEEEEJJJJJJJJJJJJJYYYYYYYYYSSSSSSSUAAAAAUUGGGGGDDDCCCCCCHHHHHHHHHHHHHDDDD
|
||||
VVVVVVDVDDDDDDDDWWWWWKKKWWWWWGTFFFFFFFFFFFFFFFGJJJJJRRRRREEEEEEEEEEEEEEJJJJJJJJJJJJJJJYYYYYYYYYYSCSCSUAAAAUUGGGGGGGGDCCCCCCHHHHHHHHHHHHHPDDD
|
||||
VVVVVVVDDDDDDDDDWWKWWKKKWWWWWGFFFFFFFFFFFFFFFFJJJJJJHLHRRQEEEEEEEEEEEEEJJJJJJJJJJJJJJYYYYYYYYYYYYCCCCKKKAAUUUUGGGGDDDCCCCCCHHPKHHHHHHHHHHDVD
|
||||
VVVVMVVMDDDDDDDDKKKKKKKKKKWKGGGFFFFFFFFFFFFFGFJJJJJHHHHRRQEEEEEEEEEEEEJJJJJJJJJJJJXJJYYYYYYYYYYYYCCCCKKKDUUUUUGGGGGDDDCCCCPPYPPHHHQHQQVHHDDD
|
||||
VVVMMVMMMDDDDDDDDKKKKKKKKKKKKGGFFFFFFFZZZZVGGGJJJJJHHHHHZHEEPEEEMMEMMJJJJJJJJJJJJJJJJYYYYYYYYYYCCCCCCCKKDDCUUUGGGGGDDDCCCCPPPPPPQFQQQVVVDDID
|
||||
VMMMMMMMMDDDDDDDDKKKKKKKKKKKGGGGGGGFFFVVVVVGGGJJJJHHHHHHHHHEPEEEIMMMMYYYJJJJJJJJJQJJJYYYYYYYYYYYCCCCCCKKCCCUUUUGYGGDDDCCCCPPPPPPQFQQQQVQIIII
|
||||
VMMMMMMNDDDDDDDDKKKKKKKKKKKKKGGGGGGFZZVVVVVVBGJJJHHHHHHHHHHHPPPEMMMQMMMMPJJJXJJJJJJWWYYYYYYYYYYYYCCCCCCKCCCCCCCYYGYDNNNNNNPPPPPOQQQQQQQQIIII
|
||||
MMMMNNNNDDDDDDDDDNKKKKKKKKKKKKGGGGGGGVVVVVVVBBBBBBHHHHHHHHHHPPMMMMMMMMMMMMMJJHHHHHJJWYYYYYYYYYYYYCCCCICCCCCCCCCYYYYLNNNOOPPPPPOOQQQQQQQQQQII
|
||||
MMMMMNNNNNDDDDDDDDKKKKKKKKKKKKGGGGGGGPUVVVVBBBBBBBBHHHHHHHHHHMMMMMMMMMMMMMMJHHHHHHHHHYYYYYYYYYYYCCCCIICCCCCCCCLLLLLLNNNOOKXXKKQQQQQQQQQQQIII
|
||||
MMMNNNNNNNNDDDDDDKKKKKKKKKKKKKGGGGGRRUUVVVBBBBBBBBBHHHHHHHHHMMMMMMMMMMMMMMUUUUUUUUKHKYYYYYYYYYTYCIIIIICCCCCCCCLLLILOOOOOOXXOXKKKQQQQQQQQQIII
|
||||
MMNNNNNNNNNNDDDDDKDJKKKKKKKEKGGGGGUUUUUQVVBBBBBBBBBBHHHHHHHHHMMMMMMMMMMMUUUUUUUUUUKKKYYYYYYYTTTTIILIIIIICCCCCILOOILOOOOOQXXXXXXQQQQQQQQQIIII
|
||||
MMNNNNNNNNNDDDDDDDDDYKKKPKPZZZGGGUUUUUUBBVBKBBBBBBBBHHHHHHHHHHEMMMMMMMMMMUUUUUUUUUKKKYYYYTTTTTTTIIIIIIIIICCIIIIOOOLOOOOOQQXXXXXXQQQQQQQIIIII
|
||||
MMNNNNNNNNNNDDDDDDDDDEKPPPPZZGGGGUUUUUUUBBBBBBBBBBBBHHHHHHHHEEEDDDDDDDMMMUUUUUUUQUKKKQYYYTTTTTTIIIIIIIIIINCIOIOOOOOOOOOOQOXXXXXXMQRRQQQIIIII
|
||||
NNNNNNNNNNDDDDDDDDDDDXPPPPPZZZGGUUUUUUUUUBBBBBBBBBOOHHHHHHHHHEEDDDDDDDMMMMUUUUUUQUKQRQFYTTTTTTTTTIIIIIIIIIIIOOOOOOOOOOOOOOOXXXXXQQXQQQQILIII
|
||||
NNNNNNNNNRRRDDIDDDDDDXXXXXXZZZZZUUUUUUUUUBBBBBBBBBOHHHHHHHHDDDDDDDDDDDMMMMUUUUUUQQZQQQQYTYYTTTTTTTIIIIIIIIIIOOOOOOOOOOOOOOXXXXXXXXXXQQQQLLII
|
||||
NNNNNNNNRRRRRRDZDDXXXXXXXXEZZZZZZXZUUUUUUUUBBBBOBOOOHHHHHHHDDDDDDDDDDDMMMUUUUUUUQQQQQQOYYYYYTTTTTTJJJJJJJJIIIIUIIOOOOOOOOOOXXXXXXLLLLQLLLLLU
|
||||
MMMNNNNNNRRRRDDDDDXXXXXXXXEZZZZZZZZUUUUUUUUUUUUOOOOOHHHHHHHDDDDDDDDDDDMMUUUUUUUUQQQQQQOYYYYYYTYTIIJJJJJJJJIIIIIIIOOOOOOOOOOOXXXXLLLNLLLLLLLU
|
||||
NNNNNNNNNRRRRRRLDOOOXXXXXXEZZZZZZZZQQUUUUUUUUUUUUVVVEEEHHHEDDDDDDDDDDDMUUUUUUUUUUUQQQQQYYYYYYYYTTTJJJJJJJJIIIIIIIOOOOOOOOXXXXXXXLLLLLLLLLLLU
|
||||
PNNNNNNNRRRRRRRLOOOOOXXXXXZZZZZZZZZZQUUUUUUUUUUUUUVEEEEEHHEDDDDDDDDDDDMUUUUUUUQQQQQQQQQYYYYYYYYYTIJJJJJJJJIEIIIIIOKOOOGKKXXXXXXXXLLLLLLLLUUU
|
||||
PNNNNNNNRRRRRODOOOOOOXXXXXIZZZZZZZZQQUJZUUUUUUUUUVVVVEEEEEEDDDDDDDDDDDUUUUUPUQQFFQQQQQQYYYYYYYYYYYJJJJJJJJIIIIIIOOKKKKKKKBBXXIXXXLLLLLLLLUUS
|
||||
PZNNNNNRRRRRNOOROOOOOXXXXIIIIZZZZZZQQQZZUUUUUUUUUUVVVEEEEEEDDDDDGGGGUUUUUUUUUUUHHQHHQYYYYYYYYYYYYYJJJJJJJJJJWWWWIKKKKKKKNKXXXIXLLLLLLLLLLSUS
|
||||
PZDNNNNZZZZZOOOOOOOOOOXXIIIIIZZZZZZQQZZZUUUUUUUUUUMBBEEEBBEDDDDDHHHHUUUUUUUUUUUHHHHHQYYYYYYYYYYYWWJJJJJJJJJJWWWWWKKKKKKKKKKXOXXGGGZLLLLLLSSS
|
||||
ZZDDNNNZZZZZOOOOOOOOOOOXXIIIQZZZZZZQZZZZZZZZRUUUUUUBBBBBBEEDDDDDHHHHHHHGUUUUUHHHHHHHQYYYYYYYYYYYWWWWWIIIIJJJWWWWWKKKKKKKKKKOOXGGGGZLZZSSSSSS
|
||||
ZZZZZZZZZZZZZOOOOOOOOOOTOOIIQZZZQQQQQQQZZZZZZZUUUWWBBBBBBEEEEEEHHHHHHUHHOOHHHHHHHHHHYYYYYYYYYYYYWWWWWIIIIJJJWWWWWKKKKKKKMMKOOOMGGZZZZZSSSSSS
|
||||
GZZOZZZZZZZZOIOZOOOOYOOOOOOQQQQQQQQQQQZZZZZZZZUUUWBBBBOBBEEEHEEEHHHHXHUOOOOOHHHHHHHHYYYYYYYYYYYUXXWWWIIIIIJJWWWWWWKKKKKQQMMMMMMMZZZZZZSSSSSS
|
||||
ZZZZZZZZZZZOOOOOAOOYYOMMMMQQQQQQQQQZZZZZZZZZZJJJWWWOOOOOBEHEHHHHHHHHHHHOOOOHHHHHHHHHHHYYYYYYYYYYXXXXXXXXXXJJWWWWWWWWKKQQMMMMMMMZZZZZZTSOSSSS
|
||||
ZZZZZZZZZZZOOOOOOXOOOOMMMMMQQQQQQQQZKZZZZZZZJJJJJJWWOOOOEEHHHHHHHHOOHHOOOOOHHHHHHHHHHHYYDDYYYNYFXXXXXXXXXXJJWWWWWWNNRRNNNMMMMMMMZZZZZZSSSSSS
|
||||
ZZZZZZZZZZPOOOORRMMJOMMMMMQQQQQQQQQQZZZZZZJZJJJJJJJWOOOOOHHHHHHHHHOOOOOOOOYHHHHHHHHHHHHDDDYYYYFFXXXXXXXXXXXXWWWWNWNNNNNNMMMMMMMZZZZZZUSSSHSS
|
||||
ZZZZZZZZZZZDDDOOOMMMMMMQQQQQQQQQQQQQXXZZJJJJJJJJJJJWOOOOOHHHHHHHHHHHOOOOOOOHHHHHHHHHLHDDDDYYYWXXXXXXXXXXXXXXWWWWNNNNNNNNMMMMMMZZZZZZZZSHHHHH
|
||||
ZZZZZZZZZZDDDDDMMMMMMMMQQMPPQQQQQQQFQQAAJJJJJJJJJJOOOOOOHHHHHHHHHHHHOOOOOOVHHHHHHHHHHDDDDDYWWWAXXAXXXXXXXXXXWWWWWNNNNNNLMMMMMMMZZZZZZPSHHHHH
|
||||
ZZZZZZZZZDDDDDDDMMMMMMMMMMMMQQQQQQQQQAAAJJJJJJJJJJUUOOOOHHHHHHHHHHHHOOOOOOVHHHHHHHHHHHHDDDAAAAAAAAXXXXXXXXXXXXWWWNNNNNNLMMMMMMMZDZZZZSSSHHHH
|
||||
ZZZZZZZZTZZZDDDMMMMMMMMMMMMTQQQQQQQQQAAAJJJJJUJJUUUUOOOOAHHHHHHHHHHHOOOOOOVVHHHHHHHHHEEEDDDAAAAAAAXXXXXXXXXXXXWWWWWNNNNWMMMMMMWDDDZZZZHHHHHH
|
||||
ZZZZZZZZZZZZDDDMMMMMMMMMMMMMQQQQQQQQQNAAJJUUUUUUUUUUOOOHHHHHHHHHWWWWWWOOOOOOHHHHHHHEEEEEDAAAAAAAAAXXXXXXXDEXXXWWWWWWWWWWWMMFDDDDDDYZDDDDHHHH
|
||||
ZZZZZZZZZZDDDDDMMMMMMMMMMMJRRQQQQQQQQNNNJUUUUUUTUUTOOOOHHHHHHHHHWWWWWWOOOOOHHHHEEEEEEEEEDDDAAAAAAAXXXXXXDDDWWWWWWWWWRWWWWFFFDDDDDDYDDDDHHHHH
|
||||
ZZZZZZZZZZZDMMDMMMMJJJJJJMJRRRQQBBBBQCNNJJUUUUTTTTTOOOTHHHWHHHHHWWWWWWOOOOOHHEEEEEEEEEEEDDDAAAASAAXXXDXXDDWWWWWWWWWWRRWFFFFFFDDDDDDDDDDHHHHH
|
||||
ZZZZZZZZZZZMMMMMMMMMKJJJJMJQQQQQBBBNNNNNNNUUUUTTTTTOBTTTHWWQHHHHWWWWWWOJJOJJEEEEEEEEEEEECCCAASASXXXXXDDDDDDWWDWWWWWRRRFFFFDFDDDDDDDDDDDDHHHH
|
||||
ZZZZZZZZQQQQQEQMMMMJJJJJJJJJKBBBBBNNNNNNNNNUUUTTTTTBBBTTTQQQNHNHWWWWWWXXJJJJJJJJEEEEEEEEECCASSSSSSSXIDDDDDDDDDWWWRWWRRRFFFDDDDDDDDDDDDDAHHHH
|
||||
ZZZZZZZZRQQQQQQZZZZJOJJJJJJJJJJBBBNNNNNNNNNTTTTTTTTTBBBTTQQQNNNWWWWWWWNXXXJJXXXXXEEEEEECCCCASSSSSSTTDNDDDDDDDDWWWRRWRRRRRFDDDDDDDDDDDDDAHHHH
|
||||
ZZZZZZZRRQQQQQQZZZZJJJJJJBBBBBBBBBBBNNNNNNNTTTTTTTTTTTTTTTQQNNNWWWWWWWNXXXXXXXXXXXEECCCCCCCCCCCSSSDDDDDDDDDDDDDWRRRRRRRFFFDDDDDDDDDDDDDDTTHH
|
||||
UUUZZUQQQQQQQQQZZZZJJJJJJBBBBBBBBMBNNNNNNNNTTTTTTTTTTTTTTQQQNNNWWWWWWWNNXXXXXXXXEEEEECCCCCCCCCCRSSDDDDDDDDDDDDDDRRRRRRRRRFDDDDDDDDDDDDTTTTTH
|
||||
UUUUUUSQQQQQQQQZBZZJJJJJBBBBBBBBMMMNNNNNNNNTTTDDTTTTTTTTTTQQQNQWWWWWWWXXXXXMMMMMMMEEEERCCCCCCSRRKDDDDDDDDDDDDDDDRRRRRRRFFFFDDDDDDDDDDTTTTTTT
|
||||
UUUUUSSQQQQQQQYBBZBBYYJBBBBBBBBMMMMNNNNNNNNDDDDTTTYTTTTTTTQQQQQQQQQQIIXXXXXMMMMMMMEEERRCCCCCCSRKKKGGDDDDDDDDDDRRRRRRRRRRRRFFDDDDDDDDDDTTTTTT
|
||||
UUUUSSSQQQQQQQBBBBBBBBBBBBBBBBMMMMMMNNNNNDDDDDDDDDTTTTTTTTQQQQQQQQQIIIXXMMMMMMMMMMEERRRRCCCCSSSKKKGKDKVDDDDDDCCRRRRRRRRRRRRFDUDDDDDDDDTTTTTT
|
||||
UUSSSSSQQQQQQQQBBEBBBBBBBBBBBBBMMMMMMMNNNTTTDDDSSSGGTSTTTQQQQQQQQQQIBBXXMMMMMMMMMMEERRRCCCSSSSSWKKKKKKVVDDDCDCCRRRRRRRRRRRFFFDDDNNNNDDDTTOOO
|
||||
UUSSSSQQQQQQQQQQBBBBBBBBBBBJJMMMMMMMMMTTTTTTTDDDSSSSSSSTTSSSQQQQQQQIIXXXMMMMMMMMMMWERRRCCCSSSSSWKSKKKKVVVDVCCCCCRRRERRRRFFFFFFDNNNNNDDTTOOOO
|
||||
SSSSSSQQQQQQQQQQBQQBBBBBBBBJJJJMMMMKMTTTTTTTTTDDSSSSSSSSSSSEEQQQQQIIIXXXMMMMMMMMMMWERERCCCCSSSSSKSKKKVVVVVVCCCCRRRRRRRRFFFFFFNNNNNNNNNOOOOOO
|
||||
SSSSSSSSQQQQQQQQQQQBBBBBBBBJJJJMMMMMMMTTTTTTTTDDSSSSSSSSSSSEEEQQQIIIIIXXMMMMMMMMMMEEEECCCCSSSSSSSSSSKKVVVVVVVCRRRRRRJJRFFFFNNNNNNNNNNNHOOOOO
|
||||
SSSSSSSSQQQQQQQQQQZBBBBBRRJJJJJJJJMMPPTTTSSSSSODSSSSSSSSSSSEEEQQQJEEIIXXMMMMMMMMMMEEEECCCCSSSSSSSSSKKKVVVVVVCCCCCRJJJJJFFFFFFFNNWNNNNNNNOOOP
|
||||
SSSSSSSSQQQUUQQQQQQBRRRRRRJJJJJJJJJMPPTTSSSSSSOOOSSSSSSSSEEEEQQQQEEMMMMMMMMMMMMMMEEEECCCCSSSSSSSSSSKKVVVVVSVDDDDDAJJJJJFFFFFFNNNNNNNNNNHHHHP
|
||||
SSSSSSSQQQUUUUUUQQQQRRRRRRJJJJVJVVJJPTTTTSSSSSOOSSSSSSSSSSEEEEEQEEEMMMMMMMMMMMMMEEEEEECEESESSSSSSKKKKKKVDDDSSDDDDDDJJJJFFFFFFMANNNNNNNHHHHHP
|
||||
SSSSSSSQUUUUUUURRQRRRRRRRJJJJJVVVVVVTTTSSSSSOOOOOOSSSSSSSEEEEEEEEEEMMMMMMMMMMMMMEEEEEEEEEEESSSSSKKKKKKKDDDDDDDDDDDJJJJJFFMMFMMMDMMMMNNUHHHHH
|
||||
SSSSSSSAAUUUUUURRRRRRRRRRJJJJJJVVVVVTTTTSSSSSOOOOOOKSSSSEEEEEEEEEEEMMMMMMMMMMMMMIEEEEEEEEEESYSKSSKKKKKKDDDDDDDDDDDJJJJFFFMMMMMMMMMMMHHHHHHHH
|
||||
SSSSSSAAAUUURRRRRRRRRRRRJJJJJVVVVVVVSVTSSSSSOOOOOOOKKSSOOEEEEEEEEEEMMMMMMMMMMMMMIIYEEEYYEEESHHKSKKKKKKKKKDDDDDDDDGGGGGMMMMMMMMMMMMMMHHHHHHHH
|
||||
SSSSSSSSAAAURERRRRRDDRRRRRRRJRVVVVVVVVVVSSSOOOOOOOOKKSOOOOOEEEEEEEEMMMMMMMMMMMMMIYYEEEYYEEEEHHHKKKKKKKKDDDDDDDDDDGGGGGMIMMMMMMMMMMMMHEHHHHHH
|
||||
SSSSSSSEAAAAEEEERRRDDDRDDDRRRRVVVVVVVVVVVSOOOOOOOOKKKKKKKOOBBEEEEEEMMMMMMMMMMMMMYYYYYYYYEEEHHHHHKKKHKKDDDDDDDDDDDDGGGMMMMMMMMMMMMMMMMHHHHHHH
|
||||
SSSSSSSEAEEAEEEEDDDDDDDDDRRRRRRVVVVVVVVVVVOOOOOOOOKKKKKKKBJBBEEEPEEMMMMMMMMIIYYYYYYYYYYYEEEHHHHHHHHHKKDDDDDDDDDDDDDDGGGGMMMMMMMMMMMMHHHHHHHH
|
||||
SSSSESSEEEEEEEVVDDDDDDDDDDRRRRRVVVVVVVVVVVOOOOOOKKKKKKBBBBBBEEEPPPIIIIIIIIIIIYYYYYYYYJJJEEHHHHHHHHHHHHDDDDDDDDDDDDDGGGMMMMMMMMMMMMMRHHHHHHHH
|
||||
SSEEEEEEEEEEEEDDDDDDDDDDDDDRVRVVVVVVVVVVVVMOMOMMMKKKBBBBBBBBEJEPPPIIIVIIIIIIIIYYYYYGYYYJJJHHHHHHHHHHHHDDDDDDDDDDDDDGCCCCMMMMMMMMMMMMHHHHHHHH
|
||||
SSSSEEEEEEEEEEWDDDDDDDDDDDDVVVVVVVVVVVVVVVMMMMMMKKKBBBBBBBBBBJJJPPJJIIIJIIIIJJYYYYYYYJJJJJHHHHHFHHHHDDDDPDDDDDDDDDDGCCCCSMMMMMMMMMHHHHHHHHHH
|
||||
SSSSEEEEEEEEEEWWDDDDDDDDDLDDYYYVVVVVVVVVVVMMMMMMKFHHBBBBBBBBZJJJJJXJIJJJJIIIJJYYYYYQYJJJJJJJZZZZZHHZZZDZDDDDZDDDCGGGCCCCSMMMMMMMMMHHHHHHHHHH
|
||||
SSSSSEEEEEEEEDDDDDDDDDDDDDYYYYYYVVVVVVVVVVMMMMMFFFHFBBNBBBBBJJJJJJJJJJJJJIIJJJYYJYYYJJJJJJJJZZZZZZZZZZZZZZDZZDAACCCCCCCCMMMMMMMHMMHHHHHHHHHH
|
||||
SSSSEEEEEEEEEEDDDDDDDDDDDYYYYYYVVVVVVVVXVVMMMMMMFFFFFBBBBBBJJJJJJJJJJJJJIIIJJJYJJJJJJJJJJJJJJZZZZZZZZZZZZZZZZZCCCCCCCCCCCMMMMMHHHHHHHHHHHHHH
|
||||
SSSEEEEEEEEEEEVDDDDDDDDDDYYYYYYYYVVVVVVVVVMMMMMMMFFFFFFFFFBJJJJJJJJJVJJJJIIIIJJJJJJJJJJJJJJZZZZZZZZZZZZZZZZZZZCZZCCCCCCCCCCMHMHHHHHHHHHHHHHH
|
||||
SSEEEEEEEWEEEEVVDDDDDDDYDYYYYYYYVVVVMMVVVMMMMMMMMMFFFFFFFFJJJJJJJJJJJJJJJJIIIJJJJJJJJJJJJJJJJZZZZZZZZZZZZZZZZZZZZCYCCCCCCCCCHHHHHHHHHHHHHHHH
|
||||
SSSEEEEEEWWWEVVVVVDDDDYYYYYYYYYYYVEVVMMMMMMMMMMMMMMFFFFFFFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJZZZZZZZZZZZZZZZZZZZCYCCCCCCCCCCHHHHHHHHHHHHHHH
|
||||
4
2024/day12/input_small.txt
Normal file
4
2024/day12/input_small.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
AAAA
|
||||
BBCD
|
||||
BBCC
|
||||
EEEC
|
||||
5
2024/day12/input_small2.txt
Normal file
5
2024/day12/input_small2.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
OOOOO
|
||||
OXOXO
|
||||
OOOOO
|
||||
OXOXO
|
||||
OOOOO
|
||||
10
2024/day12/input_small3.txt
Normal file
10
2024/day12/input_small3.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
RRRRIICCFF
|
||||
RRRRIICCCF
|
||||
VVRRRCCFFF
|
||||
VVRCCCJFFF
|
||||
VVVVCJJCFE
|
||||
VVIVCCJJEE
|
||||
VVIIICJJEE
|
||||
MIIIIIJJEE
|
||||
MIIISIJEEE
|
||||
MMMISSJEEE
|
||||
240
2024/day12/src/lib.rs
Normal file
240
2024/day12/src/lib.rs
Normal file
|
|
@ -0,0 +1,240 @@
|
|||
use std::u32;
|
||||
|
||||
use helper::{Day, Variants};
|
||||
use rustc_hash::FxHashSet;
|
||||
|
||||
pub fn main() {
|
||||
helper::main::<Day12>(include_str!("../input.txt"));
|
||||
}
|
||||
|
||||
struct Day12;
|
||||
|
||||
helper::define_variants! {
|
||||
day => crate::Day12;
|
||||
part1 {
|
||||
basic => crate::part1,sample_count=1000;
|
||||
}
|
||||
part2 {
|
||||
basic => crate::part2;
|
||||
}
|
||||
}
|
||||
|
||||
impl Day for Day12 {
|
||||
fn part1() -> Variants {
|
||||
part1_variants!(construct_variants)
|
||||
}
|
||||
|
||||
fn part2() -> Variants {
|
||||
part2_variants!(construct_variants)
|
||||
}
|
||||
}
|
||||
|
||||
fn part1(input: &str) -> u64 {
|
||||
let width = input.bytes().position(|b| b == b'\n').unwrap() + 1;
|
||||
|
||||
let mut regions = Vec::<FxHashSet<usize>>::new();
|
||||
let mut tile_exterior_edges = vec![None::<u32>; input.len()];
|
||||
|
||||
let mut id = 0;
|
||||
|
||||
for (i, c) in input.bytes().enumerate() {
|
||||
if c == b'\n' || tile_exterior_edges[i].is_some() {
|
||||
continue;
|
||||
}
|
||||
|
||||
let region_id = id;
|
||||
id += 1;
|
||||
regions.push(FxHashSet::default());
|
||||
|
||||
fn propagate(
|
||||
tile_exterior_edges: &mut [Option<u32>],
|
||||
regions: &mut Vec<FxHashSet<usize>>,
|
||||
input: &[u8],
|
||||
id: u32,
|
||||
i: usize,
|
||||
width: usize,
|
||||
) {
|
||||
if tile_exterior_edges[i].is_some() {
|
||||
return;
|
||||
}
|
||||
tile_exterior_edges[i] = Some(u32::MAX);
|
||||
|
||||
let mut exterior_edges = 0;
|
||||
|
||||
regions[id as usize].insert(i);
|
||||
let c = input[i];
|
||||
if input.get(i + 1) == Some(&c) {
|
||||
propagate(tile_exterior_edges, regions, input, id, i + 1, width);
|
||||
} else {
|
||||
exterior_edges += 1;
|
||||
}
|
||||
if i > 0 && input[i - 1] == c {
|
||||
propagate(tile_exterior_edges, regions, input, id, i - 1, width);
|
||||
} else {
|
||||
exterior_edges += 1;
|
||||
}
|
||||
if input.get(i + width) == Some(&c) {
|
||||
propagate(tile_exterior_edges, regions, input, id, i + width, width);
|
||||
} else {
|
||||
exterior_edges += 1;
|
||||
}
|
||||
if i >= width && input[i - width] == c {
|
||||
propagate(tile_exterior_edges, regions, input, id, i - width, width);
|
||||
} else {
|
||||
exterior_edges += 1;
|
||||
}
|
||||
|
||||
tile_exterior_edges[i] = Some(exterior_edges);
|
||||
}
|
||||
|
||||
propagate(
|
||||
&mut tile_exterior_edges,
|
||||
&mut regions,
|
||||
input.as_bytes(),
|
||||
region_id,
|
||||
i,
|
||||
width,
|
||||
);
|
||||
}
|
||||
|
||||
let mut total = 0;
|
||||
|
||||
for region in regions {
|
||||
let area = region.len() as u64;
|
||||
let mut perimeter = 0;
|
||||
|
||||
// To count the total perimeter, we just count all the non-interior edges of every tile.
|
||||
for tile in ®ion {
|
||||
perimeter += tile_exterior_edges[*tile].unwrap() as u64;
|
||||
}
|
||||
|
||||
total += area * perimeter;
|
||||
}
|
||||
|
||||
total
|
||||
}
|
||||
|
||||
fn part2(input: &str) -> u64 {
|
||||
struct DontCount {
|
||||
top: bool,
|
||||
right: bool,
|
||||
bottom: bool,
|
||||
left: bool,
|
||||
}
|
||||
let width = input.bytes().position(|b| b == b'\n').unwrap() + 1;
|
||||
|
||||
let mut regions = Vec::<FxHashSet<usize>>::new();
|
||||
let mut tile_exterior_edges = vec![None::<u32>; input.len()];
|
||||
|
||||
let mut id = 0;
|
||||
|
||||
for (i, c) in input.bytes().enumerate() {
|
||||
if c == b'\n' || tile_exterior_edges[i].is_some() {
|
||||
continue;
|
||||
}
|
||||
|
||||
let region_id = id;
|
||||
id += 1;
|
||||
regions.push(FxHashSet::default());
|
||||
|
||||
fn propagate(
|
||||
tile_exterior_edges: &mut [Option<u32>],
|
||||
regions: &mut Vec<FxHashSet<usize>>,
|
||||
input: &[u8],
|
||||
id: u32,
|
||||
i: usize,
|
||||
width: usize,
|
||||
dont_count: DontCount,
|
||||
) {
|
||||
if tile_exterior_edges[i].is_some() {
|
||||
return;
|
||||
}
|
||||
tile_exterior_edges[i] = Some(u32::MAX);
|
||||
|
||||
let mut exterior_edges = 0;
|
||||
|
||||
regions[id as usize].insert(i);
|
||||
|
||||
let c = input[i];
|
||||
|
||||
let no_edge_top = i >= width && input[i - width] == c;
|
||||
let no_edge_right = input.get(i + 1) == Some(&c);
|
||||
let no_edge_bottom = input.get(i + width) == Some(&c);
|
||||
let no_edge_left = i > 0 && input[i - 1] == c;
|
||||
|
||||
if no_edge_top {
|
||||
propagate(tile_exterior_edges, regions, input, id, i + 1, width, DontCount {
|
||||
top: false,
|
||||
bottom: false,
|
||||
});
|
||||
} else {
|
||||
exterior_edges += 1;
|
||||
}
|
||||
if no_edge_left {
|
||||
propagate(tile_exterior_edges, regions, input, id, i - 1, width);
|
||||
} else {
|
||||
exterior_edges += 1;
|
||||
}
|
||||
if no_edge_bottom {
|
||||
propagate(tile_exterior_edges, regions, input, id, i + width, width);
|
||||
} else {
|
||||
exterior_edges += 1;
|
||||
}
|
||||
if no_edge_top {
|
||||
propagate(tile_exterior_edges, regions, input, id, i - width, width);
|
||||
} else {
|
||||
exterior_edges += 1;
|
||||
}
|
||||
|
||||
tile_exterior_edges[i] = Some(exterior_edges);
|
||||
}
|
||||
|
||||
propagate(
|
||||
&mut tile_exterior_edges,
|
||||
&mut regions,
|
||||
input.as_bytes(),
|
||||
region_id,
|
||||
i,
|
||||
width,
|
||||
DontCount {
|
||||
top: false,
|
||||
right: false,
|
||||
bottom: false,
|
||||
left: false,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
let mut total = 0;
|
||||
|
||||
for region in regions {
|
||||
let area = region.len() as u64;
|
||||
let mut perimeter = 0;
|
||||
|
||||
// To count the total perimeter, we just count all the non-interior edges of every tile.
|
||||
for tile in ®ion {
|
||||
perimeter += tile_exterior_edges[*tile].unwrap() as u64;
|
||||
}
|
||||
|
||||
total += area * perimeter;
|
||||
}
|
||||
|
||||
total
|
||||
}
|
||||
|
||||
helper::tests! {
|
||||
day12 Day12;
|
||||
part1 {
|
||||
"../input_small.txt" => 140;
|
||||
"../input_small2.txt" => 772;
|
||||
"../input_small3.txt" => 1930;
|
||||
"../input.txt" => 0;
|
||||
}
|
||||
part2 {
|
||||
"../input_small.txt" => 80;
|
||||
"../input_small2.txt" => 436;
|
||||
"../input_small3.txt" => 1206;
|
||||
"../input.txt" => 0;
|
||||
}
|
||||
}
|
||||
helper::benchmarks! {}
|
||||
3
2024/day12/src/main.rs
Normal file
3
2024/day12/src/main.rs
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
fn main() {
|
||||
day12::main();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue