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