diff --git a/.fleet/run.json b/.fleet/run.json new file mode 100644 index 0000000..b7229b5 --- /dev/null +++ b/.fleet/run.json @@ -0,0 +1,10 @@ +{ + "configurations": [ + { + "type": "cargo", + "name": "Cargo configuration", + "cargoArgs": ["run"], + }, + + ] +} \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/advent-of-code-2023.iml b/.idea/advent-of-code-2023.iml new file mode 100644 index 0000000..cf84ae4 --- /dev/null +++ b/.idea/advent-of-code-2023.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..6e80039 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/res/01/input b/res/01/input new file mode 100644 index 0000000..f6221ce --- /dev/null +++ b/res/01/input @@ -0,0 +1,1000 @@ +sixsrvldfour4seven +53hvhgchljnlxqjsgrhxgf1zfoureightmlhvvv +fives2dznl +twocrqvjsix5threethree +gtjtwonefourone6fouronefccmnpbpeightnine +seventdtrcseveneightsevencgjgjxfpmfsix8twones +fourthreeseven1grvhrjxklh3ninetwothree +fourninethrnnth8 +two2hnxcfivejrdjxtb +bssbrgcx86vsmqstrxsjbjeightqzhbzxqg5 +rsevenbqjfxh23rzdgcmdleightsixknpfs +jprxbcghdgxhk9x +8czzpmvgmlchnkf +vdrtteight85hlkninehgnblqnsdnineeight +fivetwohlxdql43kfzzbhtncg +lmhtwoneghgtl2 +drtfsfhtbgfourpfpcznzrsix33 +pptqkrdbeighteightsixdlsixkrlhr2 +57threetwo +qoneight367gqbpbtbffivetlhrdjgnml2d +ninevdnzxsxone3 +3threeqzrmfndfiveeight4 +rmthreethreefourtwotkpncxpmctkxjhzxg5 +nsfrpl6lkqrrmlxhrxmngzjtzbpsjgeight +9twobfknine57sixfour7 +7one83sixthreecllxjnphb +82nhxcjnck1 +5zrffive +bgdzqqpninefourjhtcjfjmxrmqhgz7fxnjrjfivetlpbddcsfs +xmbgqfhxx1sevenkfnqztfourzbngv +6onethree +1przkgcft77xblxkxm +hnjslmc96 +fourktlnine59 +7twoxthree +9twofiveonetwo5bnl +6cbzmrg1three7 +fbndztsthreefourthreefgj1eightrffdbpsn +4zpqnskhnqjbjlhbbsxsmk +seventhree1fourbvnbbsbkl5 +five42jkbzqcnblr +357 +543cshpxrfnnhonetkbhxtmlgczdndqjscb +2mpftseven +44five8nineeight +rmgrljrljb8hxxfmdpbbvmblltxfive6mdsmm7mmpk +nprsix6 +five4vkqrsixmjkjps +kfivebrlzvc1twoseveneight +lqnjsixtwo7fourbmbxnr9dqmpbbfkfive +1ccsvvrrvjseight9nzgnldhzndpvdzcncl +zdzlsix9rjvninehsix4 +fsevenfour8four6three +eightrmvsq65mpvffkkhxc6seveneight +sixrmgchvfttpbsncc5hnine +147 +57gsdhqjbrfsskhmtcbszmjmhrxg7 +sevenfive31twomhkhttdprdnzlng7three +3spgnkpeighttwotwo4 +psxlxdjrtmgpveightxjkxhmbeightsix2 +five53vgqcfmgqlm5dkchcmfkclpfxntbf +76sixmgqgftzfive4nfsqhkqvptnnshqlhd +sevensixsevenone7xbsxvdpdtc +nine3sixfourtwo6mpmpjb +eight4sevensixfour7dtgrvpq +1sixnceight1bg +79xfftvpvfour +noneight3 +twoxdhkkgxhvz5three9seven8hszqdvnhr +kbpc9kqvhonelljprfs4pzcnpfrdssfivetwo +four4eightseven +5three95cqs65nine3 +72sevenrkcqmqbscp9kzjxrg8d6 +5rjbzpghninexfzvjpqmt9eight +jfjrvzcjkrkd1eight +six4ccvbclxkkntzmgthreercsjbznfive +xkqdtghlshthreeninefive53three +one3fgcsrxk1 +1foursevenmvmzpvkqseven351 +858qqbkgjxqfive +fkpd4three8sixlkttgnfzc +btpmrzqmsevennine3f6 +61nine +fourone7fsfxfrlqzvbqjpccfour +five85sseven7jxlpl +kzgszphcpfoursevenlzlkqmjndz4ninelnine +4eightld +five8dqzlzfnine +6zjsqxqnineplbqhxltmffour +1fivebfoursrdcfive +8678fourgzdhrtrtwothree +847 +fiveeightdseven5fivefivecbdrrbnng +5qddhnzxlhqeight2sevenln8nine9 +13kxvqlvt7xvcksdthreekfqc +1threehqshd9two19 +twogcphmsspeight7 +1pnktcbbpkmeight42hcgfoursix +nineninepdxqg4xspkqjneightchqxptninegcckrbmsvk +fnine5ninex1eightgdhpkngmgq +jlgvcn73three +twoljsp5 +xlf52twovcnnjglhmm +lmonesix1kfhbpdntpthjkl +89six6threegmfqlone +ninefbdvbhrgfivesevenzsjlt5tqkzfxb9 +pvfoursixgdtvxxvlnx8kgsj +9fpjsnheightfivermpxrkddczvzqbdbs +92zhksstbzr +fvxeightwoddrhpfsevenmlkp178 +2ntqvj42eight6 +46xthree26snkhxmmzknhrvsfrprch +lvcfiveseven3plzlsvmm +three69 +scrkglnine1 +fivemlvcpxfcggllpnpsdjmnhhkfkbtmcfone2 +7tseveneightnmjqbsfgh +onegbdpmtwo39nvbdl2 +532rg +3cpjksevenonejjndff9six +4nbtbrmtxmpcnvkjsgseven +2brfkknktcz +ghtshqhnmvmgdps6rclhhsix +eightj4hnnsfssqqmfourgdrmgcljdnslrhmkc +seveneight5pdzgpjvzlsxkjpflkjbzqhrfdlbskfbnbkcpl +six5gqjlsevenfnffpl2hrdrvrdthreeb +137nineone81one +gnrxrnqjdtxvcbggcmcfshz8rrkfd +nrlccp4szxqgljj31 +622kvttthree3jfd +8zqgbdc +rmczlxrvjpp79sevenonefourmmjvgthree +3fournine185sevenrgtrrpgjf +five282six +three7xcqlxd16sixktfmxslk +6vrzsmsv8 +4twodqjxsbklhjtfthree +3dmxljghfourzkvxq3 +4lveighteight51tfgbbfour +csfkthreesixxcfpdone3tvscpp8three +vhmkkks6glrlpv +eighthnine1rsmbpndnqqgds +7tnbhktwofive84seven +3kjpxgrlmstnxxdnqgpgjhcttlmnineninesix5 +2eight4264 +twoqmvnmxstnqfour8d621kxktzk +pdksthree5gzpvlmjmfourtwocfbsthree +rtvtffd6fivefive +onemxrpmlxsbd9drnsfive3 +zfjqcthreesixoned1sixsx +flsevenvqctldf6 +1seventwoeight6 +xxktlvdcdtstsqjmd47onell5 +6tbvxcgddrfjnhgntrthreegx4 +rfxjvdllvzv2dshhdtjvbxvsqmq4ninegp +five7bjzhkmmfnhcmnfljlhb6bptflhrrvgfour +ltzlonenine5six +nineeight49 +fqcdtgtb9sevenrnsgx4 +eightlfdmv5threehrrkvhzhhxmzprz +2dglljrllsix +sevensixxnlb473twotwopgjxgp +5sevenrkhk +9eight3 +7one5four +lh5jzqxeight84 +385nslvbjqvkxvvcprqghxccv87fpmqfhnlv +ngsjdpvv72sixmbtr +xvslr642 +mrjhmtnhx2 +gsrbhmh5fiveoneqhhmsmkrbc3sixtwoeight +mnxvtn3vtqhxsrfivefive57qrmhshkk +9vkghgztxdzcvl7dlthreefmklvsmhxnqrtzzsvvq +djclthdptrk8fournineqvnrrlbjjhtwoeight +79pnt9one9 +mlcxcrjzpvlkkdpmmsevenone6npd +fivefiveninezhppshtks1kqtkss +7nine46cxzcjhbnbg5 +fourqhbr5cqbdmvps +pqvzfrt7ftplx +265pninenine5twofive +four41 +1fdgcmbc1onepcktj3seven +5twob +two1sixc7znfhkhzgzzjzf3xdbqtdspv +vqkg7sixrntjjzc +7one9zdnnqtbbq4gkkkdskbtlqspsmx1pphnh +xgsix2hltpnqxktwo +gmhmskd37nqk7q8 +onezxllhcpjfkeightsjvvpmcztdndf8seven +ninenmrljg6fivegmtzhflztxn +nmzqxlx387eightczpsgxskfzklk9 +1fournine7cgtmr2lsvljtp2 +98lzz1sixfour1three6 +one8ninetwo +4xcrhxlvsr7 +8two2four +ninefninefour5qlxbmk51 +hhlflbbmbd29jrjrbx5879 +six3djmgs +cfivevgzckfqcg6ninesixfvlkpm +449honexjqtrxveight3nzzx +threetwo22 +d6seventhreeeight949 +nllbxt3qspvt6sixgglvfcfivetwo +jhfrfgjjtsseveneight76 +gjninestxljz88six2 +5rsqhsx9rnd +7three72sixjkxlnpt +dhkfvps9 +onefive7qdvbqjxzk +7sevenldcfd7 +twoeightpjpkcjvvbfseven6 +six1eight9five29 +hgdztcbpx4sixseven1fklt8six +6six7kjlpmld1 +twolpxfhllfllkcksvsllbtvjsll2bjq +2nine7nine79fourfourbtqd +tjfsmthreeoneninendd6two +2five1 +1seven1jrgtkcfsjfbfrmsevenfourlvbgbknn +79twolthjsjnbrthreerdmbk3 +sevennine6432 +1hjtcnjztkvjspr7 +seven84dlbb1 +two78threevdhgqfzt +7bmln29onezlxtzthj7fzpvnxllz +nldvscqn9hfnthreesevenonetwoflbrdnhq +sixpkx7eight1ctbhdf34 +rprprpmfour3fivevxqrqrqp4tghglvssfive +gpxjnsrsonezn1bht +2three4ninebnfzzxzl8seven +two23one2 +9sevennmxmxvzcpt3hgsprhmvtxbqvbn2three +69threeonervrxqdfive +scjjqgrbnnsztvmbtninethree74two2 +one7nkbn6nine +nlmdfshone2eight11sqhsftrg +fxt4twofive3sevensevenxq +three6zfzpdmrpbr9289vszpcqkq +8threebqzbpz3 +plpnsfour6 +1twonetdm +oneseventwo4x +fourhmprhkfgdkgqznineeighteight2 +984mrrqjhzc3dsqpjvrpctvbtk +onenjdmrjfdjznrffive73fivechpxdpnqbnpq +4mhjzvbgnxpq1jfllblcjkbxzrt +threeblztlfgltlznxv9cqsjfnmgftnmscjmxpmfkleight +jtvjjrjnf2two +8oneseven3djtdzseven3 +bctvlxxxgtp4 +onenrncdseven2foursixone +sevenseven1 +cfhszdltcqkllpqbfive6sevenqjqphqkhhjsixbvblzhgfp +dpzbcnbdzzninev6eightlk +eightjznzkdg53fourninebsfdzqpsix +four4s88fdxtnt3six +nine33six15five6 +eight3five26jdrrmvnzgxm +zjzpg4onesixseven +99fourfourtwo +xlxmvkdkvrfrddhvgmhrqllvcpsnine2 +fourfour1xfpdnfqvcklf +ninethree7one2czbtzzfkz +two41hgvsfzmtcz13 +sevenfour2sixq +seventdnjmqhbmm3zgffshmjlzcjcvbl7mzc +khthzgjkzdkgjzxlkrvd4fivezq5 +fiveseven4onefourxtrfournine +9onexh +83ninet3drmkrtpdc6pmdrvdbx4 +twofvxngqdhlpstlhfhxonegrrzfbsv7 +seven3fivethreepqzfl7 +56two229 +djrthreethree3seven4zxlfntgssq +three3mdkbtxkkfour2gtpgcktqflrfs +711q3ninevbsg2 +ninethreenfone4eightseven +onexfxnine64fivefour +foursqctmzlh64eight +8one4mslnine65fnr +9mbgn42bfhbfive79 +75kdhhfllf1onesevenssvztltg24 +jxrpsflt52jz246five +dlvhq4pzxcstjtxq9 +lgnxqnhjsbsixpm24two +3sevenfiveltdmfzlq842four +threetwosix39foursixthreethree +nine12bkhqklpfour3 +73534two1 +nhkbzfmgdhjjhggfivebncmnbskphsixnine2five +xxzvlxmdtwo8threerbtwo1eight +5bvzltnmqgnfqvqk3fivefhhhhnb +qthree1fivettjdpgnmkcfive +tknsqnjjczfbgshtvpdchpb6fngjztk77four +1five2seven1rsqfsrxfcmnxtqj7nxzcc +lcvzgqpmlgonefourseventwosixnine8 +ssqcjzpjb5five5two +seven7nrgglcjfour3two4 +five4fivexnbnoneninengqngmg +8fiveltmhtwo +jzmqtqbzh1 +1fourthree +2eightfoureight2 +7nzkfvzfivemchbf +7four2tpfvmjgdseven7 +1dzfpxmpxjscclshsixknfmgrpvptdf +rm4618bkgpgmrhdldbftqzssbzsqxsix +fivemmfxdgqpj7sevensh1nine +qgqxznine19sixeightone +one7sevencnpdqmv +vgm8four5ccrcnbddv2 +28gxkg245hpmd +ngvvdk41eighttwoseven +1nine54 +onehcvdnt7twonflthree +5nineseven +8x +fiveznsz56 +mplrzchnhjgxfmqbpfdm7kzrfour4threehjt2 +gdvjfqsqmnine67jlh9 +4tphmcfm33sixvgonefour +61fourthree7ninethree +five4qsk42sixmxdrqcndcmvxcfqv +rkrstzqone3bjjpgfrgg4859 +2oneqlsmvzznsxninefivesixksshvprpfive +6fouroneoneqffour6jpfqpvcmx +xshcfrdxnlv125nineone45 +jqdvfiveglxjpbvzch9 +6jqmjmqznqmxkztdgzb +tzjfdrzvzfivejsv49eightwozmf +rslmsmj4vnq71eightfive +vbmbfkfour26sz9 +6two769hffxnbnineeightnine +9five3hqjdvxlmvvckndzhsix +jtknzpnbqpfgtdbnxkbthsix78 +fivethreerht48llrprvphts9cd +eight19 +sixone66six1seven +fsgtskzsk9eight6 +2gb +onecone79g8 +vgfqd49mk26qmxhqb +lclctndpsffrbdmztb8 +1seven4 +thxj66ffbzzkz6twolzsbqseven +2lrgrrhceight +332three9 +dmtwonegppvjcmj2sqplmshfsd69 +fqdmgxtwotmzrb549six7seven +87kkcbqvfftwomxsixsevenfrhlthree +82l15vjddqclrtttsm +2gjb3qhxvdrblq1 +three4xvqb9nineone1fxsvj +921 +4xzzdgzpklltssh95two +twoonejsmrddbtcng8zbhfbqvblbkmcpxst +8five949 +pmpv69fourddfxzrvphdsxz6 +seven6cnkkgphkdmvnxnxfvkfcmgthree +98three +threert9rfsix244 +18jnzxfivefour1sixthreefjngk +543vlxckcffkj +crxdmtzone1 +t99vqbpprvvzq3fz +1mfourdvpfour5dzzdnjbdfxchkgpbnlss +five11six5 +9bbvmmxkfzldhjfghnlsevenfour3slnp +twokglseven1qqhsp57clctgc +kmtrnineseven6one2 +four1rg8five +threefour5sixsix +mdvrfdcxndd1 +hqtsplgzqbrxbbstwolzrjcnqf3threeq +drhoneight7bnjh3fiveninejlqlljd +fivefqqfcmzdfour1 +94thphvvkmkhpdnqsrh +bsqhfjk3zxzhtqfncc7lcbzpgx +threezzjnlpgxhsfxmjl9588 +fourfourn279six +fivevxzjpss5eight +5fourc8fivenine9hmdgxjeight +3threeninexjbzmsgrhkzxscfhddhsixtwohcgjfdszpxjsp +sixknhkfsmqvvvone9jhfxjpr +8bxgmbbdmrvpjfxbzd +1dpxrdfvp3two8one8one +threefbvbfkk3scsbr +gvmrjgjkdppdc9one +133gglhlfprmtnqb5four +vtzddchxktgsshpztmpxxvrhsjq1fkstwo +8one5krgr55 +twofive8nine5 +pnjpkthree47eightjbsdz72 +sixonefhltgkbbbt8eightthreefour3 +72gbr5 +38mqgkbbkhbksqxfive61 +8ckhzckrkq88threessqqcpbnonejtxkxbbfive +5threetwocrfsxsnf643 +9tlgcxkr +threehbmttm59sevenhfourhpqrjqj +dfbqxtzkkpfseven42sevenseventwo +86eightfvxgfjzrf +vxfl4 +three4bshflzvvdnbeightfqdlqnvlrkdxrtnpjcqn +5sevenpxdrhmjbgdgpnseven +2two4 +9xxnhc8vqmrnffmg3 +97kqfonefhhc4 +8fiveseven9 +nine6eight +52five3one2fkmnk +kfdxhkninestttsmtkmkhxbhhxlbxsix3pvdqd1 +fourninedhsvphbmhccjcktqsnthree8 +fivefive35three5four33 +4seven7seventhree6 +vfkjpfxltm5xcq5nine825 +52onegczcpghmzxvgjglbpjrtseven +5zzlmvl +kmsnldpssvdfive519kvmlnthree7 +lpkshkvrrl124dpgplnine88 +644seven9qdpbpxdlxf +7jqc +cbhpmvs7 +two7twoonebdmzftjjxrfmsix +5mxxmdzdqdsixfourone +3g6 +fglrhqsseventhreefivedpq4 +fivefiveglddjbfbk3two51eight +7eightfjqqhljpxgvlghsc9lfqctddsoneninetwo +mllcz8vczcgrbdn41qfglhzsqk +gxstgzqfrfourgkxvnkpgckhnxj7seven +93sevenjzvxc73 +63nine135gqdhbnine +ltcgbbxftssixdgtxdpp1kzbhvqt +2z3seven1 +4two9qnfrvcbonesixzfr5 +twojhlt32 +8one2eight +cdjdb4vcvg98 +three9nc +qmfjqnsbthree97 +fivenine5one +glnine55twoseven +three7k2 +437five +svzrgbljxdstwo9six6four +383zseven2eight3xvqvp +6fivegnglqj8tfkfgxkm573seven +twosixltnpgkkr3 +7sevenmphlgrdz72j +5nine24 +hq9b4fourbgtjjgmzfj6 +1sevenczhtpmvmstvvgrbrhptxtlneighttwo4 +mbhfpxjbj1xdmvchpztmcxtlqjtk +37hrqnnknjpcmmfhnbbmsps +9fcsix51foursckzjtffvv +gddqlqfourninenine65 +tgqvzvcnxs5lffnzhtd +3bqfb8psxv38five +fourcskck3seventhreefour8 +six1sevenjdvjkrn6six88 +threetwothreeone87jlhgbrtgvdrt +sevenmsldjlpvzhtwosix4threefour +cthhqm2oneeightfour +rpbbnszfxg8ninetbeightfiveqskfzcf +sbjghdfgheight9seven +nfj59pjhrzfourfive +twotwoseven6nxxblhkdxct8 +5lgxnqdfiveninedtdonespkvnonelzphcrxr +7qkphfqbbjvninedprb8cgmpcmsz79 +fkmhvlvjgczxsllskzdone8 +dzjvft8fivecpclmdtwo5453oneightt +6bjbvjgm +64ckqzvnjdhnine +four5eightwon +six3vggtzjxtsjfpbqh +7one5 +onezccmbfq3 +7gseven3seven +nxsevenone6ninep +hmmz2hvmxcmqtsrxdllrnzrgzcx85three +mskcmjfdvxmxlv5dnhhkvhx +krxjnz48sixzpqzppcngmsixb +7threedgsgseveneight +nfhpdbs4988 +fournnfsjtwosixtwo2fourcnvdgmcfive +ptfhmlmjzltftmn2nvxvksbqhl7two7gdxb +threehqgqzx32 +598flbdmfivenine +1tvrxqvsixfour +threedz8fourthreencxs +8foursxvfourlrgqjh +31vjeight2nfgkjvjqseven +one2lvvlseven9 +fournine5xtpl +2fgfbjg +2onefour +one3vbrbkjmkqxs9t +jdgcvgcfsdbhvmeightkf8onenine9 +2onekqfmjcftms +seven68two4zn +sevenvqpmhtxhncvff5one +mfqgljnmonepldmbnqphhtdonefive3xr +rrxkcnineninebsh3sixnine +81ztjznine +mgkgddsonethreebpmhnpfnqjjhzthreehdpnzmht55 +3five3 +jeightwotwobqsbczrlfgj7 +6pvghfqtfjc +three3onenine4pmtfive +rnrdbjxtwo7fivesevennlpfrcptqtwofiveone +7psthptpvbh2 +4bvsgkshslg44vkfour +three1tworkxhhps +299one +rghnkhlxqz91 +76twocfcrone3 +97dkkfonen6jnsmlh +2hnqhcpr4 +seven7llhskvhnxz4 +6ffjvvdgbtdxpmvdsk5qvppxtgblpvl +btsl8threenvhjkcckkgfsfnjgthree49 +31vvmjfz +hjbkfgnmk35four4kgxb3two +5zkljxdhzpcfb7five8zpsckrfkvbeight +8onefourtvdgninenfive +6eightzcvfourrzqp7 +3foursevenxjkmnnvqhq +5274eightwohx +vktjgvnztldsfbnqgqt9seven35 +j5xqqltd3fouronesix +4bnpgeightsxlrbxdsnbdc +3zzxtcs8 +ddjd13zpfqqx +fivenmninerrzkdp1 +oneone989bn +sixfltmpjjqnmfpln5 +5ninedn +562 +47eight8hqsvhpk +nreightwofjnkrsgcdnt75 +four1qvdfsfthgbb3kjrlh +shtf21 +cqdlfptg2zzninelsmgpvqvrqnz7 +shsjvztwonine8fourgrtgbdfdlqjvmktnrt +xpjzeight9rr +56fourcjrnmttqp8two3 +3sevennxshxncmcfnxpv +fourvjgpcsqfjmtwofour9nine +twogjvtlpnsmcjqkgkkj7fivefmmthrfs +four9kssrrzrlbqeight +three4eight1xzrqjpxpnxqptnqvmqsdj +6phjpjd +5twoklcnsq1xcone +seven1bvnpqqkqcmzdllhj23five +ff19sknzln8jrdlhptfourz +rdrtwonehvdxccpftplzfqpzcrjsix6pfr +seven3llthreeshcb +qqzlgseveneight6one15four +7pzmfpvzdhhnxpsxd4vrqbmgtxjcsvfxdnxjzsevenkd +threelvkggjfivemlddrfrrllgfssfmgs17 +tcbckd2 +7four7krmsixffv9threethree +glvknsmmgn2onexjdskcqq3threeeighttwo +1fpt3 +qddscqpjlpnnlsneightkm6sixnine +hppd1xlkgsmtfxxbvcgzbdfournine +pqdmrhvxdqbrkgjdc36mbq +rpllrjvrvfourfivefour3 +two5neightsevendmp1ninehjfvvplmfc +gppnq7 +foursix81onefkhzshsfxlxgxjzdd +13five +3sevendjlgttvnsevensjpgsjt7 +172 +three69threefour +3tcnfpzpkz +5vxzzfhg24bznvrmsjmtfmfjgxdseven +szhmlqxfffiveeight71nine +8five89zjvjqtpmlqveight5two +5twopjlvzlrltv +sbjtbfqkshrrtlrxvvq97jrflnxcrnfive3 +qhoneightfoureighttwo5xssdqmvljfivenine5 +3eightsix3five9 +treightwo3sqzninenine1sxk85 +oneeightxklmdbfkqjfour9threetmlnine +lxfxplrqeightninethreeppfnzfvndjn8qrmsjq +5one55eightwog +tworlqkztqblj9ltxlshrhjlttnqzhsdbpzzzbxdn +53vvvsmxjvs +4nine2qpgvdtxldq4four8jnf +keightsevenhcvrpztgcvsxszqdlzd1threenpvszb +89eightvdvklpxfntwo +ndtqsrfjmtzgdptlp8pnnf4onelq +6threesevenfx +6fjbglhltcfdxcbnzlcrtwoneqx +3jxtvj1onemxbqxlnm6sevenjzkhljktcm +twogkljgjbxzhlnrdxkhqvsevenqqttpjnx3 +jmdcbcllcv1 +3twosevenxgtbzsfhrbxsgk9sevennine +372 +52qzldrtxqxnfivekkdqqs54 +gcmnp51hxhvdbk22gdvdfour +6bpdjtwoqmqtvzqfive +4zmfthreefivefoursix1csnrznptgr +hrdpbqfonefjqbbjrnine9onenine1 +47bdtqmbdvhmsf3five86vhclmd +295two7four +3onenineseventkgxthreetblbmljhkhfour5 +4four8fourthreek36 +5rqnsvdhkbrvrltcqpsd +six4fourfourthreefour +4967 +99 +71seven9kcmclngvpmlkkfngssveight +79eight9six +3sevenp +seven69lxsllgjqdvfoureightfive +8six5grssfgfr78two +twomkpjc18fkkhlnkgkxfjnine +g8qcq9xqlzgzmmrf5vhm +zsix8ssfrjqbnztttvszlsqeighteight4slzcrnkvf +dmfive1ffprhgfnrx49 +7cfdcptvvnvhfivetwo +18kqkxdlnhjbqoneszclkzljhnhqd +52lcclkxsix +three7five5cjtgpzjfoureight +53pchxqfpcfddsqzl7oneeight +ctjg84hqsjxfive +1znmjftpq7xbxt +nine71krj7fivenine +pgr6lfbhkpsjhhjpgqnxtxmkpdktnine21 +xhkeightwo14four23eightqxhpct +x1 +7357fivehfbbgdhzg +rktbdvm41seven +6fshmcmxdsfgxrcfvone +nndrdq7six +5two7r +one78gnsdkhkqfourfdsghnll6g +3sixht +96mbxlpgctgf1sixfivefour +2sixbcqskzpqbqtt8sixrtngznb2 +twoone9fvmczldvtk +4jpfmgzgdhs +3ninefour +61nine +8kleightoneightrhf +51sixg +pckfpxzmrthreejvh8eighteight5 +ssmgkkblkfive68eight2 +nxkxdtckfb95bpdtrdhhltjdqpnine6 +kqjkvndr3lfqthvmbrbfgzrbcntpcrd +44sixtwonineonefour +gtvlneighteight5961nine2 +14lzxzbvbg4sixeightpthgz3 +8814eighttph +7rpf8fivedkfivesfxgkjmniners +six6zsxzcfmcxzn2 +four12dkgnmsjqtjp7zmzbsp +8two69six +three13six4three6one3 +threedfmcmxgxzhglv36five +8kkjrbkmbt2 +jhttwone3fivethree8ninehjgnvmxtkdcpmhhvrb +sixtwofourseven86zs8 +26seven +28three6 +qpsznsqqfb4ntcdf +9zbqnvnlgrjcnpmbkdmtvmdfouroneqctnnm2 +onefivekpfrdbxcmn3sevenonerfzmcsvbjgtcxndv +seven814nskmxzpcnvfppntrssthree +74jfmrfkznsfiveeighttwofivethree1 +sixgh8 +fhnlhfour3jhrzjdsrfour4five +qgzblcqp9 +jrk377gdrjfldpqmeightffrlxffive +36eightsixgvninezkl +3hshcq9r +dmrhgkv2njtwo95 +6pktmsdxpmpvmpfc4eight +five1five6hnpbzpmcccnqpfive +lmsbmvmrrljf4ninesix4threertxtsvfour +419six +tstsix3six +37seven +sixtwovghcj32pj +x66four6 +72twosixnvdcq2nvkmgbsb +kvxprh1tnlrpmcldsshh5kcdfxmbcbfour +2threekqqcvtxjrktkqpddqhfourpbqqcrgbdeighteight +rltdhqvnm8 +sevenninetjvvfxcv7 +bhmkxpvhrqkfive8fourtwotwo1lcbkk +threepcnnzhkbzfbhqtn3eight544rtsrtcc +eight7onekqdvzvsmxcpgfjlllhtptnrmv +47zsqd2pnsgjhpkxljpvnine +8ldxnsfour +two7vpjfvhtmqdcrqlonekkqrnc32 +12znrsmjqf +eightsixeighttjjhqsevenns1qbkstj +pcpcrqshftwo4 +sixtwoninenmffcmfldb81 +five75pvngkvx9nnlttwotwonev +1739lkzpsfzdsixfoureight +threekqvbcfiveltbrtjjtdcchtjthxvztkjpd3eightsix +qrxtwonefive9 +96zthtvk8228bmfllnc +tmnsgdz3fourtpmtcvtfqdcteighttm +rmpbtfqxmmtwokn5two +ninefive65 +qzmthdvvzmxthf82fivesevenbvdt8dscnl +onenfhgqqpdrtxvzn961sxjhxlg2nmxzkbp +9eightone +fourfhnzmcfour6lshj +eightzlffkpcbrbjjpmjrz7tcgjonefourthree +twomdzv77four2437 +bvcgtrxthg863 +4fpmpsxzdshdszvckpxqkgfourxnrpp +one3sevenmfmlk +eightthreenvfp439 +bm9 +jssc74tlhvfdjs6kdxzrskxrdtfqnnkfczr +v2eightsix +eight2mflbkmeightqfivethreefour +fdchmls7 +7cgtkzkdvkfour +one237 +69tfpdbmcrbqq1 +poneightfiveninefivetwosccxmtbf28 +87sevenpzbjhjvqonetwo +xsbsqpdlp9threejpjmrctbkrjrsevenone +cmhxdcpl85jhtpnttwonzlcrcfivevxxqn +1zxccxdpkl9tdqkgfxsevenvhlrmvfhvvzdzbk +lqmnvtdqngqjh355 +mcsttwo43bsdrtt7three9bhlh +pvmtwonefour8eight8 +2tgcpztjnqkldhshbmxnm +5zqkkcnnsh3 +vqfmjzln6xnrpnrpqkdpqfgxfnine2 +87eighttwo1 +sevenxrdhnpz87zzjzhxcbbxqxeightsixoneightssl +pdpgbbhpzzmhqfhkprgx1twoonethree +gggfnvtxvpsix6slxrninenine56 +dxbhdfrvgqkhch5seveneight +7five3 +fourfive1fourptggnine +three6npf45kjrbrg94nine +4twonev +4rgpf98two +7chcnzghmcznftwo5 +dvskzxcgnljmgxfntwo73 +qboneight5nine1vftwotwo +54lqlzgjqctwosix +zxqnine57 +3onethree +eightfive2xxxtwoblfjhlq9b +6ninesqvjsrz813 +6734 +2jcxkckrj7crncbonevskt +167fivef1 +three9five2eightfivetpdlpxljgnineone +9two6five +xxktwoone2crphztrtndrjgs +gcjzskxzmtwo45seventwoqvzpfive +8phdzrrlkhqjrmlgshlmonefggsnslj +threer3oneeightfive43 +six1one +dzoneight8 +sdztwoneghxmqxlgv68 +9onecjone9ppvlt +2svml3fourfl6five +clknqq83ninefive +1tgfkdnqgoneightzf +9onesixfiveqcclnl +onedvchs4 +strmhlxs2threefouroneseven +dpbxhlgkzbtwo32nrdtwo +seven38sixfivehlkdsj12 +eightfive6 +8sevenfour8mknvzhfnzvbjplldpqkvvrcrmfourfive +xmzjtktmsixsix2ninesvqgxc +7fourbpn1four +8nineqksmfivevdknb +8kfv4ldzf +71fiveeight +bbmtpsdbnktndcnthreethree2jeightsevenxl +ntggphnine3 +6vfb5 +9pqjp3fivedssspd +pmsixeight7x6 +1nine5sixoneightmm +threefbhsjcqrstdzkfgsllpktqljnlsevengbvpmvhlthree5two +9rqfdgxl4pgfbdsfonedbmjqthnsevenone +ccqknlg29bzxdrdx +vtbjqtjhr23 +sevenvstvhd1ninesix +sixdjszthree7 +6jhnj4 +2fivenjrfkz +one55 +69fourvttjxr +kqpqtkss7lxfxsfsmxqkfpcrjm +459xr +46nzsfive +s4jhbqgpmsninesixfivefiveone +4twofivefive +528nmtcfptktmfivesixfour +78qnkp +zbgrb4mskvlrkcftbpjr2twones +tvcjhbv4nine +three6mxsxvlljdnsgtzrfouroneightlp +6jc7two +one9kmkrvjrzbv6eight1seven9seven +fivesixstjrxhn7zmjthsdk3fcjsq6 +ncbzqeightfivetbpmzrvp44ctpjhg +sevenrgvgkzktvjdd92 +5eightsj +83nine7hzjvjxmbn +sgspsggkbzfour9 +two5fivetwofive41eightwosm +onejmk5eight +nine11 +xlhx53qrnvqfiveclj7six +oneeightone1five8one14 +56d3 +5sevenseven9dnhkhhpjzbqkrt31 +r6one +sevendh46 +eighttwofivesevennine915eightwomjk +four26three +sixrspdrhltrseven3 +3bf1two +6ts +sevenhnvgvkhztsqbqcvm17btpzrrrfpsnr +eight8fourldzrzhpmppkcfcchtzpteightthree5 +124 +379qtfive +4pp +128pqgtqrjdhlrfivesixthree +f7ninesix +16hqkxjnmd +9sixsix98qhblkzh +13nine8glvsfkrqs +ninegdnhsfgckc7two +onenine69lzqx7gxhcdcg34 +67993fivexcx +nine6dbqrthree9five6bone +zvfmz6thgmqgqsvnqpxtdx575 +eighteight2 +five2five +lprqsrxqceighttwo744mptdngcgmchkg +1seven3ztfhcsrkdj76rmjz8 +h4fiveeightfournineblvhhnnqpsix +sixk4 +nine7vhpkkztwo +8jfrfchzpk54sixcfbdfrccpv3 +9zkxnqjfzcrdseven8ninefivenine +ninefivenrfmttdq9vgtnqsxcmh +5tgjvsix5 +722fvzzn +23threethree +7two5hszrj5nineonethreedp +2lpdzpzeightfive2onethree +lptvrd5qjnstntpld44eight6bflqd +ldh1three +tx9kgbrrvthreezkxhpn6 +g5gks6fivel +hlblkd3threedcqhbtmktvtzqrmjhgtgtxnfbbdffmckbqxxp +dfjmnine71vfndzz +66eightfivepzqvsrlrr5 +seven2threeninemcmlhfmkndhtdeightthreethree +6ktfgglmnvjgxsevenfourjzgp6eight +76zvbblfrthreeeight2ninefive +fivetgprhplmsmhslrtpr31six4 +sevensevenone71rgqb6three8 +34htvldclbxmeightwon +five1klzmf3 +5dqpfivethree4 +p6 +xrtwone719 +tmtwonefive3sevenqqpz8twotdsn6 +qvcdkggrh644 +899tnqhhzcjxxllmp139prgx +sixnrsgvmrggcl6 +ccjq3one +5threejbhlrrlone1four +ninefive1ninevhndvmrbqzcnlccptbvl +3sevenonepnjxhkbtc +3ninelck34eight +jmjcc88trmxvsvkgxdjlh78jjtwo +mpfpnqqrsspmdjpkmrrlljrlsddnsix38three +mtttwo97 +4xfnjbsplqnxtns13qlsnbhn +eight69eight +two6dtrfmgh4 +qtgvqlzp175zxt5 +sgmqvl9tmnthree2 +db47six6nkgdqvc +6jrsixlldvpn2onekrqninejh +gdrqhbkpg3one +7threeseven8threegqlml6mjmtc2 +nptwothree8five +8kxmjpnctddeightnine5twonevzf +threefour7fivelhvxvhlqzfn +spfgjxkcnfourllmv3v9four +7xzksddd7v8pjrv4five +68fq1four +threel6dd7one +pnrsevenseven5four95 +4sevenqlzjjcdsvfdtzcjp +1kxfmrsix58ninenrmmlvtd +743threeqfxmmtvkczhteight +bslvhvlspr8dsmhjlrcfjsixnine +2mpjmtrrnineeightklxflnvgr +gxnzcrf4xvgcgb9one368 +4three5j28xl +2seventkdnfrkvnd7 +7llbkvzblfdtwo667six +two7onethree2fivesixhgjg +gthreelprkltjbqp7sevensix +q41cpcpjh +nine42fivefzztjknfv +five3kblrgsonedxjhsnxfour56 +fckqjbs1cbblpbvtxdlcvtwotwo +9xvjszgkbcfourninerp8nine +vmlx27oneqzmffghcmfpn47 +tjschpthreecbb6sclbfivejzlbd +77sfzkxdfdjnbnseven3knnqgvjbm +threeqgfcrn2 +four7qcrxlcjsklhjcsz2731 +sixreightsixqhflvseven8 +1xxngrjnfsixfiveslrfivenkplbgnqxg +onefnhbcjqrthree7jlbcfgdl5 +81oneightrgr +sixmqgdfgscr6three +sixxlcsix2 +1zrqllfszlhqgp2 +pcvrlxfml5znrjc542 +pctzcvgrfj82 +jnrlqsptfivetwokghkr8sevenlzdf +kfbdrtgtgsix9sevenone +ppzqjzvvfive39eighteightthree +bzblbmns62seven7jvdgxknx1one +foureightsevenmtwo7 +3dxbt6h +7phdxhtsbmfzmhzlsh3four +fsrcjfour2kllnxdbfhnine3six +dp6sevenseven +nqf3pv7 +fivesckjvndbf1eightfivejqzcsn +eightqxbx3jdzmcsvrpv9fplreightzdrlbpfj +one6twoeightkrrfdgrttxvthgfour +sevenseven3sixsdrtj +rstsevensix4oneseven7mrccrxmht +fourthreehjthr8five +fourxmxncslkq71 +seven1b5two +3four9eightfour34 +76one6four +sixsixpzghqfqndvpcmzt4tftxxpjbghs +fouronenine7eightwot +two77mplckblrclfqgpgsx24seveng +eight6twoeight18fczfn5four +7dxqshsmhrvbnfgjq5 +nine52three +3thbtwo +two9sixeightoneeight +mklp1qqgkgcceightfour77 +13onermtxflmnmq8qxhkhxthree2 +397rhmknine96rzfgbr +8fourseveneighthb67 +89625t +fbfxgqsqhthree74seven5 +8threegnqhhpfx +zdsfs682 +76lqkvfhtdpseven4lfpvkxjgqtwobbrz +7zthreesevenfour9four +ninefc6eight4two5oneighttfn +eight32 +eighteight6lqgrgbntgkkzfqdjhxtwo +8vdzgsqnsix551 +6klxfrfqzbsrnxmmdbnqbvfpzcjtx5two36 +nhcdmxpvg5kmmknrnine +17tpsvtclthree +five84eightfjrznfsrb +fjzfb6onefourhtlmvlns +zqmmfdkl8 +3sixeightnkgpssqnkrsclmshzzfhxxhvxlsljgfgnltbpc1twoneqd +8frbccqkvdtwoc +zeightwoeightptmkdhx3eightnineqx4 +pbfnine6three8six5jtxmeight +eight78 +1bhlgn5five +xnhhlgfrqbgfhhnvllhptfh3 +ljjllzbbffpxcjrztzthreermg6fzqqpd +72mmjrfjvlzone3threethreesix +fiveonecfsfsix74twocllbfnptkgttf diff --git a/src/days/d01.rs b/src/days/d01.rs index 2af7155..2a8f9d5 100644 --- a/src/days/d01.rs +++ b/src/days/d01.rs @@ -1,9 +1,54 @@ use std::fs; +use std::collections::HashMap; pub fn solve() { - let path = "res/01/input.txt"; + let path = "res/01/input"; let contents = fs::read_to_string(path).expect("I/O error, wrong path?"); + let result: u32 = contents + .lines() + .map(|line| { + let nums = line.chars().filter(|c| c.is_digit(10)).collect::>(); + nums.first().unwrap().to_digit(10).unwrap() * 10 + nums.last().unwrap().to_digit(10).unwrap()}) + .sum(); + println!("Result 1: {}", result); + + let mut txt_nums = HashMap::<&str, u32>::new(); + txt_nums.insert("zero", 0); + txt_nums.insert("one", 1); + txt_nums.insert("two", 2); + txt_nums.insert("three", 3); + txt_nums.insert("four", 4); + txt_nums.insert("five", 5); + txt_nums.insert("six", 6); + txt_nums.insert("seven", 7); + txt_nums.insert("eight", 8); + txt_nums.insert("nine", 9); + + let result: u32 = contents + .lines() + .map(|line| { + let mut nums = Vec::::new(); + line.chars().enumerate().for_each(|(i,c)| { + if c.is_digit(10) { + nums.push(c.to_digit(10).unwrap()); + return + } + for (k,v) in txt_nums.clone() { + if c == k.chars().next().unwrap() && line.len() - i >= k.len() && (&line[i..i + k.len()]) == k { + nums.push(v) + } + } + }); + nums.first().unwrap() * 10 + nums.last().unwrap() + }) + .sum(); + + println!("Result 2: {}", result); + + + + } \ No newline at end of file