From 5b7a6edbfb16377d4c04982cdec78b5a3f3ce0d3 Mon Sep 17 00:00:00 2001 From: meme_man Date: Sun, 24 Nov 2024 20:04:57 -0500 Subject: [PATCH] add day 1 and 2 --- 2023/day1/.gitignore | 1 + 2023/day1/Cargo.lock | 16 + 2023/day1/Cargo.toml | 7 + 2023/day1/src/input.txt | 1000 +++++++++++++++++++++++++++++++++++++ 2023/day1/src/main.rs | 40 ++ 2023/day1p2/.gitignore | 1 + 2023/day1p2/Cargo.lock | 16 + 2023/day1p2/Cargo.toml | 7 + 2023/day1p2/src/input.txt | 1000 +++++++++++++++++++++++++++++++++++++ 2023/day1p2/src/main.rs | 70 +++ 2023/day2/.gitignore | 1 + 2023/day2/Cargo.lock | 16 + 2023/day2/Cargo.toml | 7 + 2023/day2/src/input.txt | 100 ++++ 2023/day2/src/main.rs | 60 +++ 2023/day2p2/.gitignore | 1 + 2023/day2p2/Cargo.lock | 16 + 2023/day2p2/Cargo.toml | 7 + 2023/day2p2/src/input.txt | 100 ++++ 2023/day2p2/src/main.rs | 60 +++ 20 files changed, 2526 insertions(+) create mode 100644 2023/day1/.gitignore create mode 100644 2023/day1/Cargo.lock create mode 100644 2023/day1/Cargo.toml create mode 100644 2023/day1/src/input.txt create mode 100644 2023/day1/src/main.rs create mode 100644 2023/day1p2/.gitignore create mode 100644 2023/day1p2/Cargo.lock create mode 100644 2023/day1p2/Cargo.toml create mode 100644 2023/day1p2/src/input.txt create mode 100644 2023/day1p2/src/main.rs create mode 100644 2023/day2/.gitignore create mode 100644 2023/day2/Cargo.lock create mode 100644 2023/day2/Cargo.toml create mode 100644 2023/day2/src/input.txt create mode 100644 2023/day2/src/main.rs create mode 100644 2023/day2p2/.gitignore create mode 100644 2023/day2p2/Cargo.lock create mode 100644 2023/day2p2/Cargo.toml create mode 100644 2023/day2p2/src/input.txt create mode 100644 2023/day2p2/src/main.rs diff --git a/2023/day1/.gitignore b/2023/day1/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/2023/day1/.gitignore @@ -0,0 +1 @@ +/target diff --git a/2023/day1/Cargo.lock b/2023/day1/Cargo.lock new file mode 100644 index 0000000..702d10a --- /dev/null +++ b/2023/day1/Cargo.lock @@ -0,0 +1,16 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "day1" +version = "0.1.0" +dependencies = [ + "libc", +] + +[[package]] +name = "libc" +version = "0.2.164" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" diff --git a/2023/day1/Cargo.toml b/2023/day1/Cargo.toml new file mode 100644 index 0000000..fbae9be --- /dev/null +++ b/2023/day1/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "day1" +version = "0.1.0" +edition = "2021" + +[dependencies] +libc = "0.2.164" diff --git a/2023/day1/src/input.txt b/2023/day1/src/input.txt new file mode 100644 index 0000000..452d1cc --- /dev/null +++ b/2023/day1/src/input.txt @@ -0,0 +1,1000 @@ +3fiveone +eightnineseventwo1seven +9h1xcrcggtwo38 +nine4pvtl +seven7rsbqpgxtjzsgxssix +twofivethreepqgsvrszczrthree7 +44qcrkvr1two +zstrmphtxdvdpsnhpnq4threenbjznsb +bhgxhb41eight +qhstsbxsspsrfourmtvtnfhxlj699one +onekvhgkeighteight6two7ninelnfzbr +xsixz5six3gfqrzmpnjgskd6 +qfrpksmzzvfkddtfh6838 +mztttgnxdqt4 +8threesevenfourgbgteight5twonenjr +bpzkn2rbbjtdtlznl +glckqhjsbsznseight5dtnxnsix7 +2shd3ksrtmbs62vvdvhd +9ninemdkkqjzjfour9mzspzjgmlhfq +7twoqjbshcfxldnkc33one83 +zstxvfdthreeseven7mdfpgzgfourdfshplvqflfprt1 +9mndn31msfprm1kpk +tmczplnmrsevenhmhprtllcktpr8eight9 +49nine29917five +6qspssvm8 +7fourninefourcpfgpmxqjsjxmjfntwonine +3nxfjmzhseven22one +tzgnljxhs9nine1lvqgsix9four +eightthree9eightfourninexl6gsdhljppfb +9g +2xlcvqrxs2eightznzdghnlvcfour8xbzk +xgmfqvdbsn7sixnineseven5 +65zsghsnfbseven9 +7skmb5 +dbvjtf294threefournine +21hbtcfzbjhsbxlhd +27four +jlrthree9four8fourhqnsevenxqlmtsmzt +gjppzpvglfsvdmonercrsn4 +3zzxmhc +ldfgpzjmtcbj3jvsltltjv1eightzrdczhrzpcssrsrxbj +szblqqfgxhxkk3fourvqnpzf1onesixthree +vsb37three +8kxdcgmpb2sevenjdvc3eight7 +kgrsmfghvfivemhxnfiveqzzspmgmsvvghzd1fzcrkzdfsb +5mphlhx5dmcxxcpcxsrdzdninethree +hmqdkgvk4twoeight +2rjxxdcgtq5fivehzslfc +srqzfsvpfbnsvninetwothree6sixppsmfrtcrxxth +4fourtwocdxnzkbznnrf +4six419qpqfvfdpcrqvsjhgsfgrkpfmphseven +hxdcttl72seven +qkoneighttwoonesixeightfive2tzmrtpcthreefour +bnjqlftwobvsvjqptdp1two94twonej +eightninetwo278prrbvmcmf +seven79two +one9bx +cfpbdmjbcd27sixfour +16snbjgjzqxzplxkkclpxzdx +3scbbonenine5fivethreenine +21sixsix68oneninefour +6ninejmtrp4fivekxgdgj +6mhlddxbshqbseventhree3two6six +7four8smntchbmj71oneeight6 +six25four196one2 +2foursixftdbhbtd6 +fourfonekfsxdgvglvtrnrrjzmmkzxljm3 +3xckjzm +six9ssvkh1hdxcxmsptlxgdd8eight +2eightfourone2ninezslhqhdlcp2qxv +7oneclztx7xsxhrhhggfbhzdfgkdfvsqjskmdzj +fouronekkxqtrkptqz8 +klccbbvbjsix3fivenine +rjrxdxdz33nine +sevenninen5 +nineseveneightlcfrlftwoxlsmrjxnkk7zlzpbzm +rblvkfltqtbm18one7bvkzvvqrlbtf +gdcbszzf6sqldx +twoninethree23sixninebnzzjgqrlfktt +62ninetwo +fourfour44z8 +6qxdvmpkq +sixfivesixthree3x +pcqfxpvb1threefive77 +pncgzkppqqhmzmzjmzsevenxbsggc8 +fivexxdvpl32rdsix2seven +9blqpthpvfourfour69bprn +8vxsdfbdjmldkvtkbr4three +threefive8 +ck4p6 +two9bpeightldmrnzbt +4dpd +one7four6rcvtvfmzmnineq3 +4njtvkkstgmbjptcpdpzdfive +2tsl1sixgfbbpdhxgrfpt +947four5four3fivenine +fivelhtkgjhhzxfp3 +7one1three4sixmcrjlkzrj +9fourxtzqsjjmxfivehttj15 +2lqnfrgvdninedrdj +9rtxjbffmsbsqdrnjjdkb +twofour8 +1sixfourone +nine1xzpqkfhmzkbqtzh +bbh9fqrbt94onebdppqmtjlq +one8nnngz5 +vchszvlzpljt1pdv6tqsk6four +sevensix9qmjkrglh +5threenine7fkrtbcsevenjlxrkltp1 +ggrsfivetwothree687two +jbtdsixthreexxvjbft5 +1four2eightseven8one3eightwogrr +six6vtltzh65 +7bbxlhgdbrh9sph44sbboneoneightxcn +lptqrf9twofzbmbbkkmt +1zhxmsevenlnsxmdcpz5one +63one +one3ninepcnphxdzvhvmcv846 +nkn6eight21one +s1cnkm +sixone3 +sixbvvmreightonethreesixthree3five +bvbeight5sevensixchfrkjz +hkfkczqffjmndzseven7fiverklvhv9 +rsfccvtl9seven +fourczfive5threefive5qj3 +9fivexskp3 +tsrdgzcvftbvllhvcvzzthreetzzspvvjkrfgn9 +bv8twotwo9nh +lbksl3cpgzlxjgnrpqslbsknglctwothree +nine9eightqhcdzfcp2 +vckdtskc79threemblqcs3sixndlxfpq8 +1ggkrvbpsl9ssix6one8zh +679one9nzsktvfseighteightwotjm +threefive7gfzptnxbvvlzlxbteightglseightworsq +843trvvsxdkfspsixonethreeone +hsrqmrfvvzkczhphc8147xrrnzldnvr +m6six +oneccnxglxone29 +37jvhjvvlbv223mmnrthreesl +bpeight1 +twocd8 +4sevensix8twotwohhmzr2 +djpbjhrcfour5vbpkmsgnjckrkvt7 +sixnfrlbv8sixrqgmt4qmftxnrmx5 +sevenzvhhfourchckzrljhfivevjbxxh91six +eightckclzxbkqmkncvfdxfx84zeight1 +9stftdhkbs4 +qrpbdqzsjfj3seven21zktlblk +seven87 +lpms5 +pdgpscn74s4onelh8 +7ljbdfour1tnfive81 +3rjlmtdvbr +lnvjkkgjc5 +7vxlqgxk5lkfdnsdh3 +jlpgttbf35fourthreenine3cdfxbsdgslczvpjssm +eighttwoplpbcbkltwobvzccbhxndndmgxdf5 +eightoneeight4 +rkfx585 +9fourfour +7pxcnjslqgp98sixpkhvqjhjqgeightone +fiveeight1fivehvqrnzxqlkrcmd +sevenvgzkmhst8ninegcgzxkxr4dpdjsmone8 +fourgjfncfeightlptffqjhrltngg6 +sevenqkjdtxptzbtwo8seven8 +757ltrfkjzeight57 +1twofoursix2xcqkf +7ninetjngrkq7npldprkd +kqcgtnxvjv9 +nsvqdsqzthreeqtzzhpd6xcggbnkxfone5 +eightzkmbhtmpxxjlfqqvmvmbvgmbtpcbpz1 +six1tpvs2sixnctjmdlc +695one92sevenggrsc +stpr38onedftngldtx8lrsgfljrc +1vbzxfive4fivetwotwo7 +kdsjx2 +dntkrpshcmqpgskcgsgvq9 +6pskhmkpfive1nmkcvonemdfpqdtvdl +fvfndcnine7khthreehljzshdbkblgm +eight49rcbnkmdthreegqlgvksvxksqf7 +22xsix +twosevenfive72bccn8rbzkfczgssqcg +two9hclkszjmxonetlgjfive1 +dgpm6nhzkkqng +qrnkpxnn3lltxqxxjzxdkxhlkceight3eightthree +two5two4one61 +59ninesix +3nineninesevenfour +9cvsx1jzrxhrxshldtbbn9 +65four +three738 +cvj2sevenxrsdqhp +p255hztrqj92sevenjlpzm +qjsdgdjrxdsjdfx7one +6fivexm1qhxbgcvkvxb +fourxdnpqmjs3bqnzzphp1 +7nmrndvq7jnxnlsseven9twonelxb +four1sjnh5zkrrlxxj +hphshrj3cztfgm23two +1zgvfourninefivetwocllkr +1mgqmktstwo +5ndrsix5tdmfcjbgvff +4onefive9918eight +sevendbtcttvmcnljp3threethree1vmsggrpx +four5llnsvvcrcgd7sevenldffd +nine2five9fivemfour +2cpbhssgzfsrhjtq2onefmpdqfivehxvbzpfmg +spglsevenrtbrkpnrq6 +bbfqkt5nkfrzl99gxdlzzsb +6csshxkzkshsxnnineeighttwoclslvdkjkc +five9pcb2nine4two4b +brzrd5threendzpvs7ldkjxmpqqr +one4vdtwo +fourseven5493dvldshvz +1gkmnj +ninethree8 +vshbcvtvvf4eightonesix +7nine485eightrmxbrd +dctwofour3 +18ftwo +twotwo8rzdbgeightthree +sevenztlzzn38nine3jtnqjsnine6 +14qrvcspxmr4 +783sixxkkhrpqjrt5ninesjflktt1 +73five3 +nrtwonetlmkldqrcjqrdn6gptzdclninethreenine +8sixxqfl +sndlpvjr3 +hx5zzlqk1571three +zvl1 +1twotnqcmfqrnr33rrhghsdqddpmbzd +nine1threevcninetwosix7m +six2onesix1xqjzczdrl3 +15jkhgkfzseven26 +fntvfkhfzsfour7onesevenfour +sixone653 +hnvftxjthnmfive1sevendfnpkpffgj +rdktwone9fourkklk9rsseven +2fivefive4eight +vmfour34lpjzbr517nqkthkljv +hk9rqtwozr189 +fivefive3 +5one6four9twohsnjkcp3 +one77twoeighteightfive6twonek +vrxbxdgmtwo8tmglzjx +lp4ckhf +srh2 +hsbkzggsfgeight5qhblzgsppxbdlpvhvcpgkndzkjtmpggpdx +sixzvhnnzffnsevenfourpkxnvc7one +fourvgv19g6xhphkdt +fgvl8nine42 +four97five4lfcmzchtbmtvtvbr +3onesevenqtwo21jjpgtwo +four44fournine1 +twozhhvcxck6 +skpvglmddmxlsrt3961nine +8twoonetwofourtwokxrplnrvhmthree +7ktxhsjdml6twofive +zfdtjbrfive669bscgkpeightseven +zmghddqkseight5two63three45 +x4one +5one1pcv9kkninenine7 +b678two +x7 +97foursevenbhrxdpkv1 +rjkfdbteight8fivejrspls231 +six2skbfzvnlbvfour61seven8 +2mcqpccjfs5 +8tm +kr9pmdxkzjsg69fnkrrphlxqpsqjhzbznine +eightcqmdq8twozbbzfkxlhsmmv7 +xvgflfourkhn3ninebx9fivedzsmsnf +crrsnkfmvtwosmjk7 +8four8796 +nxqhdsczcgnvq5 +8five5two9three4 +6clffour2eight3zgzjnnmfsix +1drp4six2rtszhttwotwo +zkmlfive7 +245eightnine9142 +sixfive1 +xvnbjvfivezhzfpvnsthree5bvvfive5cxjfkszprp +3bbvmq +13 +946five +5twooneeightbhxfhpvjmlgtkccqgmqjnq +mlq7 +122fivetv4 +fiveseven833pszfqhbt +229oneninenine414 +knmvqkkh1cjbbjnjzrtpxdjznn9six +78nslms +vqrdsmtjtgfourninethreefivextgtwo5t +slnrndksnb95three8vrskzqzfthree6 +4twofhhqdghjssjkkcjlbjthree +2xsnjsfngdqpzfmltkrsk1hvhktwo52 +sevenxxmxmmngqmdx2lbthree +five823nine +dszvsjnzn7 +tmvlsfive5prd +six3nine +onerzskmfthree3sctlkhcqrdzc97 +eight34kfour2cdgnnkdff +dmone3three5hjndcbbonethree +63five5513pdgczone +6fivechs4vk +3zlqsxzqdnpseight5 +five6eight13eight +zjknbtptmdzfour3one2seventhree +sxshgxbcxs64dmtzplkqnfffkpz +rml4b65htpzcrlrbn39 +8tlpnvnrhjb57 +fivetwo1five +9nrrms247qcffourone +n6two2sevenvtfsxhsn +dxjtpsfjcssix2ninefour +qfldkljtbqc4five72fourjqbkbrh +3nine1 +jflrjzjzfour3four8threefouroneeight +fivefivesevenseveneight771lhpzhb +nrszb3eight1tbzmmps79 +8kkskdtwoeight78eightvbmv +4bccrqxmrvd1three +nine93fourjhspbgnthree364 +11q +three7fourthreeftbxtmmm +mznine6six1 +sevendzpcbqjfdk83twobgqfourmkzfzflnn1 +twocvbtssm72 +keightwo12 +fourzxcbncddhthreeqsccqgsf4crzszqdd3nvvjsix +jmh3ggvdp +12fiveninefoureight +3tvlmfpkgrdthree2phmllhczeightj9qq +sevendndrnfpfzmgvfqnkp8pcjlttzfour7 +dvtbsjreight1fkdlffive55bxzpsrnxtbfour +7threeseven +qrhzdlsb4five +bvdvjfqvtrtqntrrnqfpf87njtjgxzkgbcnine +z927 +one2eight +7dpszhz3pfnrrtrkxjn +8mfkvn +258lkpqdc3five733 +1nine1threefour +nnbfzxdmm828cdgvfive +threetwothreethreetjzskgfive4 +six893sevennine82 +3ss48phseventwo24 +xgbpshxnkvcppnninepjcztcsevenqbnjcjftpxxkpqp66 +8mlkbpdpftwonine4 +5three6six1seven +91onelrttnjrcqjtnrfivec +322one +sevenmfpxvntvkpqvpbnnbpr5seven18sixeighteightwok +jnthkgsrone6vnkdvkjznjnboneoneseven7 +five81472 +2onefive +nine9oneqfb7 +tcf2two2145eightsix +vdjhlrksdhcone17three9qoneightr +fiveone82228bgrr +5rfxlfbbjqninethreefour +eight641 +2pjmlgrrzvv +kpqsxmvhp4twohnlsone3eighttwones +35sixd9eighthm89 +8four5onethreeqmdmttvchslfvnqrbftthree +fivemmbfjmq1jlvzsix1hgkbr7bxcsc +eightgmjxseven5fivefiveslbfsqrjrnbhqzgr +xr18oneqjgsnjfzcsix4 +9threefivekclcmrnsix654 +onelnh6sqvzxeight9 +6vjjpmmxxknineone79 +cdsfmz97twoninetqhhtsljsixseven +8five6 +ninepkp3 +eightfour4fqtrlnzt +one4pttsvonexsj4 +fczlpseven261 +9six6nine5nb4fouroneightv +2snzvzxkbbpcvd +mvnqjkcmkhrvnsxt3hjkj2ninethreezzbbrsdone +zktwonemhqnxssxftwotsd1nhfmrxpffoureight7 +qfhlmpxhxpthreennlk7chk7zzmlqxmtlk6 +7dxhzpmtwog9 +kfkmpmzxhn6four87rcthd +bvplp656vtxxlqvmm6187 +811beight +39586547 +18twok +pfxsfxsvkjrb9 +38z9trcxdbfivedmhtdrfive +19bhddbmbkbg77 +four522 +7vshvtblzonefbfcfgsfive2 +mgtwoneonecthreefoureight37eightjqlxf +eightnine67gthszx9tzxczcpone1 +fourfourthree2fivejrfgkb6seventwo +4dnreightrv6ql3 +csfgqxjdvm22jjnr9 +42szlhdvbdstllzldtcblgtfive7gnctbrmvmn6 +ztwoneeightfourzzsck7seventwo +two78 +1hxqtdxjqflthreesrzzdbxmfnvk89three +rnprnnpbjq7fivetwoneqsh +hkpjjpbl3nineone6pcszznjft8d +gcbtzdtkhnbbjnftwo2four7nineseven +3foureightonesixrfqrjlp +qvftcskmxdvnsrzqfourfivethreenine99slncxvjrcn +six5sshpxtr88 +7twofour +four143 +vrxxmzfp8 +four9tg8bfonesix59 +three3onezsqdtkrceighthnstg6three +7seventwonine +fivetwofour9nine1two +twozfdvkjzbtwo6xrjgmfgsxv +1dqfcfjcbxxgxrksixnine4 +rfpgseven5ninezdmbx5 +622 +nine19fivetvm +eightthreelpj58qjlnhr +9fourjtczvxfourfivebmzds415 +3fivejbgzdsx +fcqdbxgjf86twofour +nine6oneone +onefour1 +onestc6eight3oneseventhreeone +seven2six +plbgd5nmppgfpbtphsxldrllpmnprm +1three14eightbvnzx83 +four95kkpjsttjf8one +mrkrgj5xtqvvzpmxn8nine +nineskg78nbrnonelsxfxkxlrc +qxnvkcx1one +9ztbs2grvsixsqt94 +sevenjhtd7 +qjb78nine29 +3oneonegjtcppfrjs633 +3clhz +1v398nine +mqlsevenlcnblh94 +5fiveseven +73rbhnnsixsix7ntssps9v +svjsgvdsrspmsxzkczseven11nine4 +onefjncqnsbsvqqm4478 +mfzfzjhc1zgbtt +six1sevenseventwokvbtwogvpstm +one56nine +8sxhbpfrxfsixl9lthreehr9 +44nine4threethreedbbp +seventhreedp66gnxvfnpzvdpqflnx2 +twotwofour37cmfzvxqjp5seven +1twonexlr +sixtwosix6seven7g +63zscqhtonebtcjfdjqc +fiveklbblk4eighttwonefdf +seven7one +zz361tmxqdpmgseven6 +5onethree6cgkfkdcmnine2blhxzqxjqk5 +threefour43dp +hcmjsszeightthree4tsnppskn78ggl +7gzqsthtmvszmjvcgseven +onethree6sevenonetcxsseven +3twobzbxc9onelxfkvgsnhteight +hnljcxrhxhjkhmhtffjrcqmeight7kcjmhjlvmgq4 +5nineseven6lkxzlbf +49jxmvnql8crs +qgq6eighttwo5one +1xclqfour8bgqsjknine +mrheightwogfglthreeeight6threeeighttwodfkjgp +26three6nfrxkhqlq93seven +3two4gjzmvvnrhdthreekrqhbfgssjghksix +sixone6sixfour7four +zbsvkkmhmcone677hmjsevenrqmng +mqzjpd5foursevengxmsbjhl +lmrpmthreelthree19tvbnbfqggnftwo +x3 +6zrhpdnxqpbfourltbvhlglvseven +3onesixeightsevenqjjclpcndtzgnzcv9 +fiveeightrm6 +cfqonesevenszbvlkdpfourninetwo6five +9lhlsbntzfourhvxfxgfjfivezcvqfshmldcmmhb +oneseven28pjmqkd +one5three284fhrbztwoseven +jmhj2rnf983bbzsmts2xf +one981eightr4 +tmtwo2zrjdd9five +4eightsixsix +q3rszpbkftqv +6zndd7 +7sixflqjpcgrh4281 +89ninehbfklckdglmcgvm2 +712gsfgtdvthree +nine5knlzninerspkdklnthree +dhjmgthfiveeight79threefive +87bn +4eightkbppvkx9sevenzqcfrqlbxmk45 +fourthreekvtvdrlgjrk2four7c +six6dlmmmvfkseventwoonesix +47rsjqzcqsnffourqdggnkpgsqjgprhrx2 +ptbtpthmkeightxtzjftbff6dqzdq7 +48sixcfngcjngjs3bszknmgzjthree +nmcdlgrrdrmrrbpfn1 +5q6crrhphbmqr8zdddmnseven8 +fxlkdnq6 +threeffvsrjdbtfk6trsgmkn +one3fourtwofcqsgcvvg +eight8onexvdtthree1pzfrllrjrtktzvnrp +hlnine3 +54three3zxbdtjrlzone +5qjnpjvnzpfive2two71rphp +njseven6four +bgpkmfcbl72 +9vmjgvhvfvd1 +ttbmt46two +mksvjgxsbdnlg8eighttwofourthreesfn +mtjm6twoseven46 +fivefourcktdqsdlvpdq1eightwolc +45twoneqs +sevenplrfqrhfivejqzrnv3 +9nine4threetwolk6sevenk +5qxpfourfqtg +34cpbblldjfqpltcntpzninetwo +7eightfivehczsxqhglmtpsxk8hkksbzr +69two9 +6seven33pggfive1 +sevenhkhrj2 +4phnnpxthjn8 +4vnnfqdssrfive8seven8ninedfhl +frhf15three4vvlgthree +4nine3 +57hlrhqmxxxbl +eightjhblpnjk786fivekrq +rj9twofour +lmszmtrhpthreezbdghgfour7sixtwofive +ninesixrlxxsskgjpqfdpzbthree5 +qbddmnpgskf1tpfive34 +fxmninejzl319twoeight4 +two7ckzsmvqfcbfourthree25 +xzhqltqmdfourqshqmlxpninecbrsclzftwotwo7three +one3zdppmxfroneighthb +eightsix8tmh7fivesixgbdttd3 +pnhkxlcsh35 +four45 +9sevenfivehxr4eightfour8 +rmvmqbclzr5bmsxdzxgptlhczgsh42eight +bpbbvbjrptfourqpkdfqkjcrrpone1b3 +2six6 +ninesixthreexshfvpb5 +3xhljmkxlr1clcqkmbdrmtxptgl +gfkhdhgv27ktc7foursevenseven2 +eight1eight4 +nine4vzdqjs8three9 +2lhmbfzonetwo9 +nlhkm83cslc5three9sevennine +thhllmnnpxsbtjvnrnhq8rbvhzfrxzqqqhccqlzfggseven +four6six8kqmjzk8 +gcrqzmbsh7seven6 +8five575four9six +four615 +41xzlprtjncrlzbcgvbmclsqrnbdone6 +sdphx53c +threefblfr1seven3 +xqh1one +qztslzlkheightsixkrpfourtwonine7one +nhqdsngrf8seven7dkbkfbdgdcjvnmdbzx9 +7qrmrsnhvfive4klcrkkbtwo +qpltxmjl3twosixrnvmlqvgrgmgninetwo +43lbsbgjkng1one +lzjqmlxnk452zrglhpbpvtwo +fourlmcprk36mthree +cssthvvxrgpks48glbxk +qpmkfxk4fourbmnbfzhgn2three +zxkntbdnm3fivethreesixmkgztvrfpkjgxljbm5tt +1vlhrcllfjtsgmqcvhcbcr98 +nine6dlkvtfjfnq3hbxxm +eight42 +mnrdpvdpklgkjnrz4 +1seven93ninesevenjqmeighteightwoz +seven8933five4seven +9lldhvdqdzvdgptsmf1eight +7fiveninezfourkrltflg +threeseven9 +7hjfzpltbjqbkx1two +1twoqghxlrpmfourfivefonermntbg +77eightjpgmmjst4 +9three8586nine6kb +three8ninetwothree2 +13xrhdzqsonesix43bph +foneight7 +29one +rth7cczktksv2 +frrpbtjjcdfccdl1three +one5six4 +ninehszc5svnhfrqm +threezfrmbgmjzg6 +9eight8one8fxlkdjhql +fivesmtkcsskrq7hxqbfkbqlninegnqddjrvxb +zfivehhknpdm7fngjpkbvone +7five8 +qkcxcpjzggzdxrfhlbsdbq17 +654mk +2mqtgbmsnhq4zv48jzdchccdpzhs +rpkfj1hkrztwosix4bktdfk +seven9bxjmvrbb +9threethreeeightppdkjzltclnq8sixnine +7seven92 +567onefour8bsgjtrvsxkjlsc +1dnbsjbdsrsscq3ninefour +vbpkpgssljgtxdfivethree6 +eightsevenrkkjszmxvxtwo9jpvzldd6 +one7523vgpvlkd +foureightonepeight4 +9fiveeightone +nine7one9 +g328dbspnkseven +threeclqhr97five +8onefourffhrmfkvctt +2pzftpmvzfive +433tvdzmcrdl +five42ckvlkgkjxh35sixd +nine6hs +99cmtdzjtpxk15c2 +tconexjkkh9 +sevensix5oneeight +twotwo4ncmpzpvvdrsxkpnpfkjseven +nine42 +7sevenxntxxdnfckbkdh7seven6eight +2foursevenzvdvhmzscd8gmlxxkqxd +5sevenrzntpronehfpbdcmffdscfvsqjcvnbtqzpph +threefoursix6ninegdpmtlsix +lxcflpcvgctxhm1nine2 +seven4one9mkkznineck8ptpc +seven4qtgqrcvfcfourzfdnx +md13xsdltxltqhninemjs +fourtxtscncgxvp3tqthreeseven +8zzvkkmzhr7sevenfive776 +91sgceightvgzjdkkkthree +mfmvgtck5gbjstzvmfvtmr +nine57one84sixmqt +threekslcvdzlhhq6dqtkp9two4 +2slmvrvz38 +foursix6qlqvzqbdzf2 +mftwone3eighthhcsgfvrrj +174bx2ninetwo8 +ninetwo7mzlcjkmj +37four2 +cjmlmtwovrvsbmeightthreethree3lkq9 +cscvfbgpjmonep8hmlnvrhvgsqrvcp +tmqkssbt79ninerfgh88 +qdsxzxcseight7 +eighteightnine8threecbcnfdtm41 +ljpcfour1368nine +hftwoneninesixxxmdtcfd8lbvqdjg +kjktdqqbfourdvkjlprhkzgfivetcddgds1 +qjeightwohvvdbqdnbknktv8six4four53 +6482cbb1 +sixcczlxcthree35lqn51 +rmnmjsthreehfxsjqlpkjxmdkg7three +94lhpqldseven +fctfxjvnine7 +sqnthxzkctfk98 +8xpknqzfkone +9threeonetwo +59d8twoshphfzlk +26vtseven6bsfkgxmjqnine +6nslcxpglfoursevenoneseven +sfvpkkvdkrfour31one8bqcrtwokhqp +29vrcx5four9 +43two +eightsixpcmhlk7nhpxhmnrmponesevenpkfgxmrfnq +svfjcqdtnmcrtjdgseveneightninetwocnbrrbcgmreight9 +25cxhtcxvgkjlbcshxrfour7rcnkzmm +onethree14gvjpp +sevennxlncmqpkvlhbts1mhpfxzqf8 +six6fivesix +3fiveone8one6six57 +tqgdrncxgpxpxz33 +vrdxxljfeightseven63b +onetwo56nineone9kkb +nvpqcnrgqrrnzqsqrh4four +67twobvxksevenztnhfpzkj9 +rxddljfhxhlbqqrllk3six +8twosevenone +onejxjpcnzljjdkbkmgvvrjrkgxgpqzdmpjzt4 +ftbssc2fgtmsrjbr +djxnine1seven6sixone +grqxsevengkkgv83fhspzflvfbqjrm +ctsj5svksdtwostmft8twonine +two9thpzhrcvdl4 +one2seven2plxkgkldxcpqconecfnppseightwovz +prleightwoggdqszvonefrqhh791vxxcfv +nine4seven6ninepbfoursix2 +fourthree8threett488 +six984three9r3xjnmvp +261 +twoonedrbbmvrm8fivejsix +6onethreethreeeightxpcchknine +two55oneone3three7five +three3threekgpsix +rqvfvm9ninesixninesix7pfsxcrx +4oneeightsixfive +2fourthreeqjppmfjfxnzfdhlr +9gctq3 +vtzcng2jhrhgsqhq +eightmmxz6ninenleight +sbzllxonemjfffkhltgpshkmlrjb7oneone +7fourfivefivefive3qjfdzclghxtc +fourfour9hmmlhhbxfour46twomzsgpkht +fiveqc45 +2bvseven54sixghpnhleights +2qlhvfive6ffpbhftfp6 +4sixone1sevengqqqjbzr +spq17sevenhjfkkjzdf +eightphqcjzdfzpttgxbsix1fvmnvqczr +9hxzczdhdl8oneqkqdlseveneighteight7 +gllbrsevenfour4vfcgth +lxdqx59mvzfjcsjl9 +three2eight3seven8rzsthree3 +two8seven64 +eight4dqqgeightseven +71threejdzzk +6fourgtcqnjkzjljksdqtbddpvxznvmprjtr6 +3fxkdgm +eighttwo3four6zg +6rxlnjpgkkstkbzj +74pcpzgndmtjgngonejfskscqfgm +dfssmbbxf873rhrbxnfzcp +bpqlnrtn5eightsixdschkk +lcrhcxvbrqhbz1one8 +46mrpfrtpnzdkshjgfxnrjbtntdnfive +tlgtzp86twofive +eightpmbdvzmdmpfivebphsv2pzxtcsrvtgnqnhvsbdf9twonehc +xqkbgbseven5 +bheightwotwojl1one8 +five7zsixgsmtvpxkkdrjtqtfjdjln +poneightbrndfh97kqtpgcstvnine6 +svhgqmjgfoureight7twodsmcnjh6mmncjvltp +79sixfourdlprglcm +five31 +ncnmdbvvhnpqxzkktjzbsqxb42 +twoone8mfxc +sixtwogxhhvcqpvzjmnltcdskdthree3nvdqeight +stwone15 +threethreeghzvvdkd7 +fivesevenr3nj +five6rmrccmczninelshone62 +8threet4nsrrkhg6bprcjtrpgclp +3twoseven5 +26twopqtvsks5 +ninemhgqvchgzgndlone938five +5twoprnvvvfcbninexxfrh2 +6fdpxffv4 +ninetwo5one6nqngsbqghbphngmone +kvqfvnxnine9552 +1lmht +6jvngqeightqnp925 +one53rqlbdzfive453xp +32gntcntdtcv +6qxdnhpvrcd5fivenpmqb +sevenninesevenfive9 +98svjcb1nine +777ctrsnjzlfbxdzbvckr +6three4onetwofour2five +27hdhhbv68sevennineclpdtb +mknzmjqsp5xd7vdmfkbcfpgst2 +39twotwo +d78jjxpgrgmpbthreefivezlbvgphnsd +mcxgg3one7eightrzbdqzvfnvxn +ncmfng86sevendqscgbmlrjnkvgqmzzfff1 +fivejlsdtbktwosix3 +npnxr6five947 +2prjccpmn3hfnxpqht8nine5four +hfqrqpzfkqllthttmb4kcvfgtmp +2fourfour +6pj9fivenmhdlsx +6csv7ninesevenlzgzninesixsthrlvsst +7one83 +7mlrfqmjq47gfgpqgkgmpq72 +six5pnslzjhthfour67kcvgsix +ninetwothree3 +vb91two4two +eightdqmnsxlhhkz44two +trzzone6tcvrsznine7kdctnine +nineninefdfnxsixnrq2ninezrn +bl79eight59 +jvjxkgjrbqdmnzk432sixmblqqmpn +two39hthree7 +tdlcjpj5jhslsgfcx +4two9jzdfzbbp +9six7gtbk15vqzhhsbtxgmcx +7vptsbpmq1 +59nsfbgxkvphnqvt +dmffndtn9 +gzfnfsrdmrgtrbbsfive586xhrc +cxvgfjjvbtlvkpsgsknine4jjgntjjzgfqrmlfbx4six +3tszbt1six3 +ptjjhztq9eightseven +zglcldrtwo5fqhvmfivesevenxvkxl9 +sevenonephscj3foursix2 +ninelgclbhv37 +fczvmgkzbm2jnzbgxhqmzoneqsrdj61 +1v8hpchzrvnzfbxninencjqdtqvgl +seven6threeone +five2sixrlfqftqzgks +6three1xzgnkrzl2krjtxr +zgkjvnkczstwolctzzlsevenone6bglzxscglsnjm +3kvxbzmpvrp +75vfz2 +vpnh25eight +cnsdklvrsix2one +kvlsjffgfltbkckcznmgrr8 +56foursix +pmhgkfonehjdslqbdc4eight9 +twodmmsk57nx +lfjvsz6fivekfivefivesdplsixpx +twofivethreeqdgf3eightthree +43sevenhnvsp +threeeightzh3threeqnncknpxgseven +4vbnmhgrmtsblrhrtoneljbbnvxmtvbfzssgone +5kvqfxmlkgcmlmgbfiveeight +55ztqqfzvmdppdpq1three3sixtwo +26bskpdjql +threehhgxmxdz1five94eight +52fourzcbcfknlvlrnvhbnldq +three49four8gshbnmxlc8vphklsvfmhnfss +sevend95 +fbkmpcone555oneightkc +5qddnptqdoneonezczvnsl +78ttssqjfournddr986 +three4five +jb6 +ht3hmrbxjsdvrsnlzvsqrj1rlcfggt5 +5bgxfoursevenrhtcqf2dpkvfmsmh2 +8rdsljbdggzseven4chgfppzmzkj +hfcjpnrzsixfivefour6 +seveneight5hldmqltxonecbtknbeight6 +6ninetztvlzdmgj2xzbtk +three988twodndrqvqpq +4threejkrpgtlhgg6five +4kgxgmprssixseven +spfpone16 +xcpqvrthreemrggrvghqcgbqtkknvvk5 +2three84bxtwo +gjmv82mgnqqgnzcgcd +3nine4seven +9twosnine +nxfmfour8bgcgdkvb +8three6one +bxvxksbbdn3knpdc6stfbxffjggfglc +sevenmfpxjgnpb743five6 +seven7sm +8qxbbcxjvppeightwot +fivetwotwo1seven8r +96eightnrbeight84 +gljg4fiveone +8nine6sevenmllmmchzjxb +3twosixdcgl +6xsfmfjjnz6vstfvhndhlklrsc73kljcseven +threefour1 +tqtlxckrrch5jone9 +9qjsntszxb +ninetwopqfnsrxrfstwod8one +6eight85 +four63vgjflnctzssfstjx113 +1vhshftmrbseventhreetwoeight +51bntvpdmxfznine5hbt +fivebpcntvnklxxseven9 +2xq +vjcbktqbxd55zhdxrhjqnr +bxqndkhjg1sixvjct4 +2two1three +kkconeight5eight9 +gz6two +dmctnkrmone7fourdfqcfone3 +9oneightcb +fiveqzjsvjqlsd99kpsixone +8fivehfphnvtdf +3six8jrrlnpj +1six53hpmgsfqfourxmfmdqds +eight7ljkrn3cntjv +7rkscrcchttwoggxktqdptwodpkcsgpbseven +eightthreeseven9threebdlskshg +18xpklsg +2sevenjlscgksv +rmr3784sevenbgqfhklhl +dbmtkvthree9mmqzfvmhpthreefivethreetwo +566sixeightone6fiveone +sixtwokf9 +lzgsrdmnl2xpps +zlbmfmxtvhvng1eight +1nine76ninegpc +8onesevenxqjqrxflrb1 +2dhthree6sixthree +4eight16 +2threenvllhnkqthreelhfnbp1gmkcgdf +5threeeightthreeeight +qjltlxkptr7threezplpxvqgrrn5 +ftkjg8onedxjcnmrsmf6foursctg5 +threenks5 +btseven2dlqjqpsnhxqmvqnjx +43four +64thknbt3three +jgghlcsxl4gtwo9gfdcgxfour +mvdkntknjf1stttccdntnrxhhdzgnrzznineseven +2nine4nine +4s6eight66616 +r4eightjfldjbqhcpxnhmsmzsjm +3smktnsbtjm27cpkzvnjxone +hvtccdslkb83xmlpktzbfournlklrqfxone +seven5twosix9 +6dcqcfvcrbs8pxphlrrlvqlmjqfrlfoursixseven +qntwofivezcpfknsvq51 +kdvszdf9tzkbhmthn +79dcrnqfrnine +dh8hrfvk2nine1fivefourseven +rphmhjjnthree1threekbpbjhfk2threeggzjsz +fhfive3vcflkznnpfive +sp19onesixtwo5 +eight2ninejc4fivedgffn +m5ffive +436 +khpvrkl27twotwo +7fnbzfdsqeight5fourone5one +eight92nine48fivecnhzhg9 +83mkhqxtdt +fivezvmqbczkgclsxfour3eightthreethree +sixsixxlmh6 +sixfive98 +fourttlpxqponetwokn8tvkmrk66 +1chfcvrmxbtwo4 +sevensix1rlcnmbhs4 +eightftbfczpt8cgcnnck +fourfivessnxfmlzzfiveseven24mfbfx +49lqkxcxtjs2jdsbkmrvfninesix56 +fknjdjqcnm66hrktq +1three24four6 +rpxtwone83 +5vnntgqnrpjh537ninebbkcs6 +three5mjmzhht57 +six4gfqcdbdhx96jvhktthree6 +sevendbssnxndrdxlbvssrt8dtrgcxxsixonehhstdr +1sixfrzgtwo27pf +6onevnnptcxhzgonethreetfxlsvxfmbqc +gmqnpqsix7three3one5tpklvdfzkbqftkhrj +rrslpzr1 +7ninedsvqtgntjdsqqmhgpjkqxkbpgmkxl +sevenxhpjppgxqqz9nxgctwo +7onefour +one6dsntwo +ghlgnsztmtsevenfour1bsctrtmp +onehtzmgbpkjcninefive7bmlnvfhsreightthree +2822 +3threerbtmxdngpq12oneeightone +threenine7z +9bvxxcsnzfive98 +djctwonefourlxshzxzmff313onesixkzxxhrrfour +sevensevengjbfbzmvlhlseven7bgdrreight +seven34p5zpmnn +r27threeqzx27gspmgncgth +threeeighttwoone1jqghpbbl +onefqlnr9bmsvjsb2gcl4 +threeqxjjjtqx4four2mbxfive +5one9qnrzfdsixone +three184eight +2hcnineseven1 +onejgnvdndtwoqpdxbnzhkg91sevenrfgv +hmgseven1fivek866 +seven4four1zpgc +dl8three5 +7two2 +hbglb9719 +1zsgbsmmgprkmgssvnrbv7 +5sixfourrfbbvmlrjfourl +three63sixseven5 +seven3eightthree318five +6brhdvjnz +onesevenfivefour5four413 +two5689seventhree9 +59nczhdqzdr +3vsxmbrfkljfxlkxm1x +6nm6k5three47 +451sixxkcncfqr +xsixonevns4seven3vlxpfcttwo +kl6onehlrmxgbfourfour8 +qvfclpxqfivethreeninesixl521 +33hpkbonepsnfp8nine2 +three41fivetzzfvmlsfive5two +9two6vgvxhnfjone +six68five8pbgrvl2six +sphsdpxfdtgvmmtwoone8eight +z726vlhseven +nine9ninesix6xmgbsgfmpgxkzgpzlxqnjsqhr +fourknflljrbrq63five +42onef6seven +39njjvzt7threetkccstz diff --git a/2023/day1/src/main.rs b/2023/day1/src/main.rs new file mode 100644 index 0000000..d79bb73 --- /dev/null +++ b/2023/day1/src/main.rs @@ -0,0 +1,40 @@ +use std::io::{self, Read}; +//use libc::{clock_gettime, timespec, CLOCK_PROCESS_CPUTIME_ID}; + +fn main() { + let mut sum = 0; + let mut data = String::new(); + io::stdin().read_to_string(&mut data).unwrap(); + /* let mut begin = timespec { + tv_sec: 0, + tv_nsec: 0, + }; + unsafe { + clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &mut begin); + }; */ + for line in data.lines() { + let mut vec = Vec::new(); + for c in line.chars() { + if c.is_digit(10) { + let f = c.to_digit(10).unwrap(); + vec.push(f); + } + } + let mut sussy = vec.first().unwrap().to_owned(); + sussy = sussy * 10 + vec.last().unwrap().to_owned(); + sum += sussy; + println!("{sum}"); + }; + + /* let mut end = timespec { + tv_sec: 0, + tv_nsec: 0, + }; + unsafe { + clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &mut end); + }; + println!( + "time: {:.6}ms", + (end.tv_nsec - begin.tv_nsec) as f32 / 1000.0 / 1000.0 + ); */ +} diff --git a/2023/day1p2/.gitignore b/2023/day1p2/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/2023/day1p2/.gitignore @@ -0,0 +1 @@ +/target diff --git a/2023/day1p2/Cargo.lock b/2023/day1p2/Cargo.lock new file mode 100644 index 0000000..dd007df --- /dev/null +++ b/2023/day1p2/Cargo.lock @@ -0,0 +1,16 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "day1p2" +version = "0.1.0" +dependencies = [ + "libc", +] + +[[package]] +name = "libc" +version = "0.2.164" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" diff --git a/2023/day1p2/Cargo.toml b/2023/day1p2/Cargo.toml new file mode 100644 index 0000000..70c24de --- /dev/null +++ b/2023/day1p2/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "day1p2" +version = "0.1.0" +edition = "2021" + +[dependencies] +libc = "0.2.164" diff --git a/2023/day1p2/src/input.txt b/2023/day1p2/src/input.txt new file mode 100644 index 0000000..452d1cc --- /dev/null +++ b/2023/day1p2/src/input.txt @@ -0,0 +1,1000 @@ +3fiveone +eightnineseventwo1seven +9h1xcrcggtwo38 +nine4pvtl +seven7rsbqpgxtjzsgxssix +twofivethreepqgsvrszczrthree7 +44qcrkvr1two +zstrmphtxdvdpsnhpnq4threenbjznsb +bhgxhb41eight +qhstsbxsspsrfourmtvtnfhxlj699one +onekvhgkeighteight6two7ninelnfzbr +xsixz5six3gfqrzmpnjgskd6 +qfrpksmzzvfkddtfh6838 +mztttgnxdqt4 +8threesevenfourgbgteight5twonenjr +bpzkn2rbbjtdtlznl +glckqhjsbsznseight5dtnxnsix7 +2shd3ksrtmbs62vvdvhd +9ninemdkkqjzjfour9mzspzjgmlhfq +7twoqjbshcfxldnkc33one83 +zstxvfdthreeseven7mdfpgzgfourdfshplvqflfprt1 +9mndn31msfprm1kpk +tmczplnmrsevenhmhprtllcktpr8eight9 +49nine29917five +6qspssvm8 +7fourninefourcpfgpmxqjsjxmjfntwonine +3nxfjmzhseven22one +tzgnljxhs9nine1lvqgsix9four +eightthree9eightfourninexl6gsdhljppfb +9g +2xlcvqrxs2eightznzdghnlvcfour8xbzk +xgmfqvdbsn7sixnineseven5 +65zsghsnfbseven9 +7skmb5 +dbvjtf294threefournine +21hbtcfzbjhsbxlhd +27four +jlrthree9four8fourhqnsevenxqlmtsmzt +gjppzpvglfsvdmonercrsn4 +3zzxmhc +ldfgpzjmtcbj3jvsltltjv1eightzrdczhrzpcssrsrxbj +szblqqfgxhxkk3fourvqnpzf1onesixthree +vsb37three +8kxdcgmpb2sevenjdvc3eight7 +kgrsmfghvfivemhxnfiveqzzspmgmsvvghzd1fzcrkzdfsb +5mphlhx5dmcxxcpcxsrdzdninethree +hmqdkgvk4twoeight +2rjxxdcgtq5fivehzslfc +srqzfsvpfbnsvninetwothree6sixppsmfrtcrxxth +4fourtwocdxnzkbznnrf +4six419qpqfvfdpcrqvsjhgsfgrkpfmphseven +hxdcttl72seven +qkoneighttwoonesixeightfive2tzmrtpcthreefour +bnjqlftwobvsvjqptdp1two94twonej +eightninetwo278prrbvmcmf +seven79two +one9bx +cfpbdmjbcd27sixfour +16snbjgjzqxzplxkkclpxzdx +3scbbonenine5fivethreenine +21sixsix68oneninefour +6ninejmtrp4fivekxgdgj +6mhlddxbshqbseventhree3two6six +7four8smntchbmj71oneeight6 +six25four196one2 +2foursixftdbhbtd6 +fourfonekfsxdgvglvtrnrrjzmmkzxljm3 +3xckjzm +six9ssvkh1hdxcxmsptlxgdd8eight +2eightfourone2ninezslhqhdlcp2qxv +7oneclztx7xsxhrhhggfbhzdfgkdfvsqjskmdzj +fouronekkxqtrkptqz8 +klccbbvbjsix3fivenine +rjrxdxdz33nine +sevenninen5 +nineseveneightlcfrlftwoxlsmrjxnkk7zlzpbzm +rblvkfltqtbm18one7bvkzvvqrlbtf +gdcbszzf6sqldx +twoninethree23sixninebnzzjgqrlfktt +62ninetwo +fourfour44z8 +6qxdvmpkq +sixfivesixthree3x +pcqfxpvb1threefive77 +pncgzkppqqhmzmzjmzsevenxbsggc8 +fivexxdvpl32rdsix2seven +9blqpthpvfourfour69bprn +8vxsdfbdjmldkvtkbr4three +threefive8 +ck4p6 +two9bpeightldmrnzbt +4dpd +one7four6rcvtvfmzmnineq3 +4njtvkkstgmbjptcpdpzdfive +2tsl1sixgfbbpdhxgrfpt +947four5four3fivenine +fivelhtkgjhhzxfp3 +7one1three4sixmcrjlkzrj +9fourxtzqsjjmxfivehttj15 +2lqnfrgvdninedrdj +9rtxjbffmsbsqdrnjjdkb +twofour8 +1sixfourone +nine1xzpqkfhmzkbqtzh +bbh9fqrbt94onebdppqmtjlq +one8nnngz5 +vchszvlzpljt1pdv6tqsk6four +sevensix9qmjkrglh +5threenine7fkrtbcsevenjlxrkltp1 +ggrsfivetwothree687two +jbtdsixthreexxvjbft5 +1four2eightseven8one3eightwogrr +six6vtltzh65 +7bbxlhgdbrh9sph44sbboneoneightxcn +lptqrf9twofzbmbbkkmt +1zhxmsevenlnsxmdcpz5one +63one +one3ninepcnphxdzvhvmcv846 +nkn6eight21one +s1cnkm +sixone3 +sixbvvmreightonethreesixthree3five +bvbeight5sevensixchfrkjz +hkfkczqffjmndzseven7fiverklvhv9 +rsfccvtl9seven +fourczfive5threefive5qj3 +9fivexskp3 +tsrdgzcvftbvllhvcvzzthreetzzspvvjkrfgn9 +bv8twotwo9nh +lbksl3cpgzlxjgnrpqslbsknglctwothree +nine9eightqhcdzfcp2 +vckdtskc79threemblqcs3sixndlxfpq8 +1ggkrvbpsl9ssix6one8zh +679one9nzsktvfseighteightwotjm +threefive7gfzptnxbvvlzlxbteightglseightworsq +843trvvsxdkfspsixonethreeone +hsrqmrfvvzkczhphc8147xrrnzldnvr +m6six +oneccnxglxone29 +37jvhjvvlbv223mmnrthreesl +bpeight1 +twocd8 +4sevensix8twotwohhmzr2 +djpbjhrcfour5vbpkmsgnjckrkvt7 +sixnfrlbv8sixrqgmt4qmftxnrmx5 +sevenzvhhfourchckzrljhfivevjbxxh91six +eightckclzxbkqmkncvfdxfx84zeight1 +9stftdhkbs4 +qrpbdqzsjfj3seven21zktlblk +seven87 +lpms5 +pdgpscn74s4onelh8 +7ljbdfour1tnfive81 +3rjlmtdvbr +lnvjkkgjc5 +7vxlqgxk5lkfdnsdh3 +jlpgttbf35fourthreenine3cdfxbsdgslczvpjssm +eighttwoplpbcbkltwobvzccbhxndndmgxdf5 +eightoneeight4 +rkfx585 +9fourfour +7pxcnjslqgp98sixpkhvqjhjqgeightone +fiveeight1fivehvqrnzxqlkrcmd +sevenvgzkmhst8ninegcgzxkxr4dpdjsmone8 +fourgjfncfeightlptffqjhrltngg6 +sevenqkjdtxptzbtwo8seven8 +757ltrfkjzeight57 +1twofoursix2xcqkf +7ninetjngrkq7npldprkd +kqcgtnxvjv9 +nsvqdsqzthreeqtzzhpd6xcggbnkxfone5 +eightzkmbhtmpxxjlfqqvmvmbvgmbtpcbpz1 +six1tpvs2sixnctjmdlc +695one92sevenggrsc +stpr38onedftngldtx8lrsgfljrc +1vbzxfive4fivetwotwo7 +kdsjx2 +dntkrpshcmqpgskcgsgvq9 +6pskhmkpfive1nmkcvonemdfpqdtvdl +fvfndcnine7khthreehljzshdbkblgm +eight49rcbnkmdthreegqlgvksvxksqf7 +22xsix +twosevenfive72bccn8rbzkfczgssqcg +two9hclkszjmxonetlgjfive1 +dgpm6nhzkkqng +qrnkpxnn3lltxqxxjzxdkxhlkceight3eightthree +two5two4one61 +59ninesix +3nineninesevenfour +9cvsx1jzrxhrxshldtbbn9 +65four +three738 +cvj2sevenxrsdqhp +p255hztrqj92sevenjlpzm +qjsdgdjrxdsjdfx7one +6fivexm1qhxbgcvkvxb +fourxdnpqmjs3bqnzzphp1 +7nmrndvq7jnxnlsseven9twonelxb +four1sjnh5zkrrlxxj +hphshrj3cztfgm23two +1zgvfourninefivetwocllkr +1mgqmktstwo +5ndrsix5tdmfcjbgvff +4onefive9918eight +sevendbtcttvmcnljp3threethree1vmsggrpx +four5llnsvvcrcgd7sevenldffd +nine2five9fivemfour +2cpbhssgzfsrhjtq2onefmpdqfivehxvbzpfmg +spglsevenrtbrkpnrq6 +bbfqkt5nkfrzl99gxdlzzsb +6csshxkzkshsxnnineeighttwoclslvdkjkc +five9pcb2nine4two4b +brzrd5threendzpvs7ldkjxmpqqr +one4vdtwo +fourseven5493dvldshvz +1gkmnj +ninethree8 +vshbcvtvvf4eightonesix +7nine485eightrmxbrd +dctwofour3 +18ftwo +twotwo8rzdbgeightthree +sevenztlzzn38nine3jtnqjsnine6 +14qrvcspxmr4 +783sixxkkhrpqjrt5ninesjflktt1 +73five3 +nrtwonetlmkldqrcjqrdn6gptzdclninethreenine +8sixxqfl +sndlpvjr3 +hx5zzlqk1571three +zvl1 +1twotnqcmfqrnr33rrhghsdqddpmbzd +nine1threevcninetwosix7m +six2onesix1xqjzczdrl3 +15jkhgkfzseven26 +fntvfkhfzsfour7onesevenfour +sixone653 +hnvftxjthnmfive1sevendfnpkpffgj +rdktwone9fourkklk9rsseven +2fivefive4eight +vmfour34lpjzbr517nqkthkljv +hk9rqtwozr189 +fivefive3 +5one6four9twohsnjkcp3 +one77twoeighteightfive6twonek +vrxbxdgmtwo8tmglzjx +lp4ckhf +srh2 +hsbkzggsfgeight5qhblzgsppxbdlpvhvcpgkndzkjtmpggpdx +sixzvhnnzffnsevenfourpkxnvc7one +fourvgv19g6xhphkdt +fgvl8nine42 +four97five4lfcmzchtbmtvtvbr +3onesevenqtwo21jjpgtwo +four44fournine1 +twozhhvcxck6 +skpvglmddmxlsrt3961nine +8twoonetwofourtwokxrplnrvhmthree +7ktxhsjdml6twofive +zfdtjbrfive669bscgkpeightseven +zmghddqkseight5two63three45 +x4one +5one1pcv9kkninenine7 +b678two +x7 +97foursevenbhrxdpkv1 +rjkfdbteight8fivejrspls231 +six2skbfzvnlbvfour61seven8 +2mcqpccjfs5 +8tm +kr9pmdxkzjsg69fnkrrphlxqpsqjhzbznine +eightcqmdq8twozbbzfkxlhsmmv7 +xvgflfourkhn3ninebx9fivedzsmsnf +crrsnkfmvtwosmjk7 +8four8796 +nxqhdsczcgnvq5 +8five5two9three4 +6clffour2eight3zgzjnnmfsix +1drp4six2rtszhttwotwo +zkmlfive7 +245eightnine9142 +sixfive1 +xvnbjvfivezhzfpvnsthree5bvvfive5cxjfkszprp +3bbvmq +13 +946five +5twooneeightbhxfhpvjmlgtkccqgmqjnq +mlq7 +122fivetv4 +fiveseven833pszfqhbt +229oneninenine414 +knmvqkkh1cjbbjnjzrtpxdjznn9six +78nslms +vqrdsmtjtgfourninethreefivextgtwo5t +slnrndksnb95three8vrskzqzfthree6 +4twofhhqdghjssjkkcjlbjthree +2xsnjsfngdqpzfmltkrsk1hvhktwo52 +sevenxxmxmmngqmdx2lbthree +five823nine +dszvsjnzn7 +tmvlsfive5prd +six3nine +onerzskmfthree3sctlkhcqrdzc97 +eight34kfour2cdgnnkdff +dmone3three5hjndcbbonethree +63five5513pdgczone +6fivechs4vk +3zlqsxzqdnpseight5 +five6eight13eight +zjknbtptmdzfour3one2seventhree +sxshgxbcxs64dmtzplkqnfffkpz +rml4b65htpzcrlrbn39 +8tlpnvnrhjb57 +fivetwo1five +9nrrms247qcffourone +n6two2sevenvtfsxhsn +dxjtpsfjcssix2ninefour +qfldkljtbqc4five72fourjqbkbrh +3nine1 +jflrjzjzfour3four8threefouroneeight +fivefivesevenseveneight771lhpzhb +nrszb3eight1tbzmmps79 +8kkskdtwoeight78eightvbmv +4bccrqxmrvd1three +nine93fourjhspbgnthree364 +11q +three7fourthreeftbxtmmm +mznine6six1 +sevendzpcbqjfdk83twobgqfourmkzfzflnn1 +twocvbtssm72 +keightwo12 +fourzxcbncddhthreeqsccqgsf4crzszqdd3nvvjsix +jmh3ggvdp +12fiveninefoureight +3tvlmfpkgrdthree2phmllhczeightj9qq +sevendndrnfpfzmgvfqnkp8pcjlttzfour7 +dvtbsjreight1fkdlffive55bxzpsrnxtbfour +7threeseven +qrhzdlsb4five +bvdvjfqvtrtqntrrnqfpf87njtjgxzkgbcnine +z927 +one2eight +7dpszhz3pfnrrtrkxjn +8mfkvn +258lkpqdc3five733 +1nine1threefour +nnbfzxdmm828cdgvfive +threetwothreethreetjzskgfive4 +six893sevennine82 +3ss48phseventwo24 +xgbpshxnkvcppnninepjcztcsevenqbnjcjftpxxkpqp66 +8mlkbpdpftwonine4 +5three6six1seven +91onelrttnjrcqjtnrfivec +322one +sevenmfpxvntvkpqvpbnnbpr5seven18sixeighteightwok +jnthkgsrone6vnkdvkjznjnboneoneseven7 +five81472 +2onefive +nine9oneqfb7 +tcf2two2145eightsix +vdjhlrksdhcone17three9qoneightr +fiveone82228bgrr +5rfxlfbbjqninethreefour +eight641 +2pjmlgrrzvv +kpqsxmvhp4twohnlsone3eighttwones +35sixd9eighthm89 +8four5onethreeqmdmttvchslfvnqrbftthree +fivemmbfjmq1jlvzsix1hgkbr7bxcsc +eightgmjxseven5fivefiveslbfsqrjrnbhqzgr +xr18oneqjgsnjfzcsix4 +9threefivekclcmrnsix654 +onelnh6sqvzxeight9 +6vjjpmmxxknineone79 +cdsfmz97twoninetqhhtsljsixseven +8five6 +ninepkp3 +eightfour4fqtrlnzt +one4pttsvonexsj4 +fczlpseven261 +9six6nine5nb4fouroneightv +2snzvzxkbbpcvd +mvnqjkcmkhrvnsxt3hjkj2ninethreezzbbrsdone +zktwonemhqnxssxftwotsd1nhfmrxpffoureight7 +qfhlmpxhxpthreennlk7chk7zzmlqxmtlk6 +7dxhzpmtwog9 +kfkmpmzxhn6four87rcthd +bvplp656vtxxlqvmm6187 +811beight +39586547 +18twok +pfxsfxsvkjrb9 +38z9trcxdbfivedmhtdrfive +19bhddbmbkbg77 +four522 +7vshvtblzonefbfcfgsfive2 +mgtwoneonecthreefoureight37eightjqlxf +eightnine67gthszx9tzxczcpone1 +fourfourthree2fivejrfgkb6seventwo +4dnreightrv6ql3 +csfgqxjdvm22jjnr9 +42szlhdvbdstllzldtcblgtfive7gnctbrmvmn6 +ztwoneeightfourzzsck7seventwo +two78 +1hxqtdxjqflthreesrzzdbxmfnvk89three +rnprnnpbjq7fivetwoneqsh +hkpjjpbl3nineone6pcszznjft8d +gcbtzdtkhnbbjnftwo2four7nineseven +3foureightonesixrfqrjlp +qvftcskmxdvnsrzqfourfivethreenine99slncxvjrcn +six5sshpxtr88 +7twofour +four143 +vrxxmzfp8 +four9tg8bfonesix59 +three3onezsqdtkrceighthnstg6three +7seventwonine +fivetwofour9nine1two +twozfdvkjzbtwo6xrjgmfgsxv +1dqfcfjcbxxgxrksixnine4 +rfpgseven5ninezdmbx5 +622 +nine19fivetvm +eightthreelpj58qjlnhr +9fourjtczvxfourfivebmzds415 +3fivejbgzdsx +fcqdbxgjf86twofour +nine6oneone +onefour1 +onestc6eight3oneseventhreeone +seven2six +plbgd5nmppgfpbtphsxldrllpmnprm +1three14eightbvnzx83 +four95kkpjsttjf8one +mrkrgj5xtqvvzpmxn8nine +nineskg78nbrnonelsxfxkxlrc +qxnvkcx1one +9ztbs2grvsixsqt94 +sevenjhtd7 +qjb78nine29 +3oneonegjtcppfrjs633 +3clhz +1v398nine +mqlsevenlcnblh94 +5fiveseven +73rbhnnsixsix7ntssps9v +svjsgvdsrspmsxzkczseven11nine4 +onefjncqnsbsvqqm4478 +mfzfzjhc1zgbtt +six1sevenseventwokvbtwogvpstm +one56nine +8sxhbpfrxfsixl9lthreehr9 +44nine4threethreedbbp +seventhreedp66gnxvfnpzvdpqflnx2 +twotwofour37cmfzvxqjp5seven +1twonexlr +sixtwosix6seven7g +63zscqhtonebtcjfdjqc +fiveklbblk4eighttwonefdf +seven7one +zz361tmxqdpmgseven6 +5onethree6cgkfkdcmnine2blhxzqxjqk5 +threefour43dp +hcmjsszeightthree4tsnppskn78ggl +7gzqsthtmvszmjvcgseven +onethree6sevenonetcxsseven +3twobzbxc9onelxfkvgsnhteight +hnljcxrhxhjkhmhtffjrcqmeight7kcjmhjlvmgq4 +5nineseven6lkxzlbf +49jxmvnql8crs +qgq6eighttwo5one +1xclqfour8bgqsjknine +mrheightwogfglthreeeight6threeeighttwodfkjgp +26three6nfrxkhqlq93seven +3two4gjzmvvnrhdthreekrqhbfgssjghksix +sixone6sixfour7four +zbsvkkmhmcone677hmjsevenrqmng +mqzjpd5foursevengxmsbjhl +lmrpmthreelthree19tvbnbfqggnftwo +x3 +6zrhpdnxqpbfourltbvhlglvseven +3onesixeightsevenqjjclpcndtzgnzcv9 +fiveeightrm6 +cfqonesevenszbvlkdpfourninetwo6five +9lhlsbntzfourhvxfxgfjfivezcvqfshmldcmmhb +oneseven28pjmqkd +one5three284fhrbztwoseven +jmhj2rnf983bbzsmts2xf +one981eightr4 +tmtwo2zrjdd9five +4eightsixsix +q3rszpbkftqv +6zndd7 +7sixflqjpcgrh4281 +89ninehbfklckdglmcgvm2 +712gsfgtdvthree +nine5knlzninerspkdklnthree +dhjmgthfiveeight79threefive +87bn +4eightkbppvkx9sevenzqcfrqlbxmk45 +fourthreekvtvdrlgjrk2four7c +six6dlmmmvfkseventwoonesix +47rsjqzcqsnffourqdggnkpgsqjgprhrx2 +ptbtpthmkeightxtzjftbff6dqzdq7 +48sixcfngcjngjs3bszknmgzjthree +nmcdlgrrdrmrrbpfn1 +5q6crrhphbmqr8zdddmnseven8 +fxlkdnq6 +threeffvsrjdbtfk6trsgmkn +one3fourtwofcqsgcvvg +eight8onexvdtthree1pzfrllrjrtktzvnrp +hlnine3 +54three3zxbdtjrlzone +5qjnpjvnzpfive2two71rphp +njseven6four +bgpkmfcbl72 +9vmjgvhvfvd1 +ttbmt46two +mksvjgxsbdnlg8eighttwofourthreesfn +mtjm6twoseven46 +fivefourcktdqsdlvpdq1eightwolc +45twoneqs +sevenplrfqrhfivejqzrnv3 +9nine4threetwolk6sevenk +5qxpfourfqtg +34cpbblldjfqpltcntpzninetwo +7eightfivehczsxqhglmtpsxk8hkksbzr +69two9 +6seven33pggfive1 +sevenhkhrj2 +4phnnpxthjn8 +4vnnfqdssrfive8seven8ninedfhl +frhf15three4vvlgthree +4nine3 +57hlrhqmxxxbl +eightjhblpnjk786fivekrq +rj9twofour +lmszmtrhpthreezbdghgfour7sixtwofive +ninesixrlxxsskgjpqfdpzbthree5 +qbddmnpgskf1tpfive34 +fxmninejzl319twoeight4 +two7ckzsmvqfcbfourthree25 +xzhqltqmdfourqshqmlxpninecbrsclzftwotwo7three +one3zdppmxfroneighthb +eightsix8tmh7fivesixgbdttd3 +pnhkxlcsh35 +four45 +9sevenfivehxr4eightfour8 +rmvmqbclzr5bmsxdzxgptlhczgsh42eight +bpbbvbjrptfourqpkdfqkjcrrpone1b3 +2six6 +ninesixthreexshfvpb5 +3xhljmkxlr1clcqkmbdrmtxptgl +gfkhdhgv27ktc7foursevenseven2 +eight1eight4 +nine4vzdqjs8three9 +2lhmbfzonetwo9 +nlhkm83cslc5three9sevennine +thhllmnnpxsbtjvnrnhq8rbvhzfrxzqqqhccqlzfggseven +four6six8kqmjzk8 +gcrqzmbsh7seven6 +8five575four9six +four615 +41xzlprtjncrlzbcgvbmclsqrnbdone6 +sdphx53c +threefblfr1seven3 +xqh1one +qztslzlkheightsixkrpfourtwonine7one +nhqdsngrf8seven7dkbkfbdgdcjvnmdbzx9 +7qrmrsnhvfive4klcrkkbtwo +qpltxmjl3twosixrnvmlqvgrgmgninetwo +43lbsbgjkng1one +lzjqmlxnk452zrglhpbpvtwo +fourlmcprk36mthree +cssthvvxrgpks48glbxk +qpmkfxk4fourbmnbfzhgn2three +zxkntbdnm3fivethreesixmkgztvrfpkjgxljbm5tt +1vlhrcllfjtsgmqcvhcbcr98 +nine6dlkvtfjfnq3hbxxm +eight42 +mnrdpvdpklgkjnrz4 +1seven93ninesevenjqmeighteightwoz +seven8933five4seven +9lldhvdqdzvdgptsmf1eight +7fiveninezfourkrltflg +threeseven9 +7hjfzpltbjqbkx1two +1twoqghxlrpmfourfivefonermntbg +77eightjpgmmjst4 +9three8586nine6kb +three8ninetwothree2 +13xrhdzqsonesix43bph +foneight7 +29one +rth7cczktksv2 +frrpbtjjcdfccdl1three +one5six4 +ninehszc5svnhfrqm +threezfrmbgmjzg6 +9eight8one8fxlkdjhql +fivesmtkcsskrq7hxqbfkbqlninegnqddjrvxb +zfivehhknpdm7fngjpkbvone +7five8 +qkcxcpjzggzdxrfhlbsdbq17 +654mk +2mqtgbmsnhq4zv48jzdchccdpzhs +rpkfj1hkrztwosix4bktdfk +seven9bxjmvrbb +9threethreeeightppdkjzltclnq8sixnine +7seven92 +567onefour8bsgjtrvsxkjlsc +1dnbsjbdsrsscq3ninefour +vbpkpgssljgtxdfivethree6 +eightsevenrkkjszmxvxtwo9jpvzldd6 +one7523vgpvlkd +foureightonepeight4 +9fiveeightone +nine7one9 +g328dbspnkseven +threeclqhr97five +8onefourffhrmfkvctt +2pzftpmvzfive +433tvdzmcrdl +five42ckvlkgkjxh35sixd +nine6hs +99cmtdzjtpxk15c2 +tconexjkkh9 +sevensix5oneeight +twotwo4ncmpzpvvdrsxkpnpfkjseven +nine42 +7sevenxntxxdnfckbkdh7seven6eight +2foursevenzvdvhmzscd8gmlxxkqxd +5sevenrzntpronehfpbdcmffdscfvsqjcvnbtqzpph +threefoursix6ninegdpmtlsix +lxcflpcvgctxhm1nine2 +seven4one9mkkznineck8ptpc +seven4qtgqrcvfcfourzfdnx +md13xsdltxltqhninemjs +fourtxtscncgxvp3tqthreeseven +8zzvkkmzhr7sevenfive776 +91sgceightvgzjdkkkthree +mfmvgtck5gbjstzvmfvtmr +nine57one84sixmqt +threekslcvdzlhhq6dqtkp9two4 +2slmvrvz38 +foursix6qlqvzqbdzf2 +mftwone3eighthhcsgfvrrj +174bx2ninetwo8 +ninetwo7mzlcjkmj +37four2 +cjmlmtwovrvsbmeightthreethree3lkq9 +cscvfbgpjmonep8hmlnvrhvgsqrvcp +tmqkssbt79ninerfgh88 +qdsxzxcseight7 +eighteightnine8threecbcnfdtm41 +ljpcfour1368nine +hftwoneninesixxxmdtcfd8lbvqdjg +kjktdqqbfourdvkjlprhkzgfivetcddgds1 +qjeightwohvvdbqdnbknktv8six4four53 +6482cbb1 +sixcczlxcthree35lqn51 +rmnmjsthreehfxsjqlpkjxmdkg7three +94lhpqldseven +fctfxjvnine7 +sqnthxzkctfk98 +8xpknqzfkone +9threeonetwo +59d8twoshphfzlk +26vtseven6bsfkgxmjqnine +6nslcxpglfoursevenoneseven +sfvpkkvdkrfour31one8bqcrtwokhqp +29vrcx5four9 +43two +eightsixpcmhlk7nhpxhmnrmponesevenpkfgxmrfnq +svfjcqdtnmcrtjdgseveneightninetwocnbrrbcgmreight9 +25cxhtcxvgkjlbcshxrfour7rcnkzmm +onethree14gvjpp +sevennxlncmqpkvlhbts1mhpfxzqf8 +six6fivesix +3fiveone8one6six57 +tqgdrncxgpxpxz33 +vrdxxljfeightseven63b +onetwo56nineone9kkb +nvpqcnrgqrrnzqsqrh4four +67twobvxksevenztnhfpzkj9 +rxddljfhxhlbqqrllk3six +8twosevenone +onejxjpcnzljjdkbkmgvvrjrkgxgpqzdmpjzt4 +ftbssc2fgtmsrjbr +djxnine1seven6sixone +grqxsevengkkgv83fhspzflvfbqjrm +ctsj5svksdtwostmft8twonine +two9thpzhrcvdl4 +one2seven2plxkgkldxcpqconecfnppseightwovz +prleightwoggdqszvonefrqhh791vxxcfv +nine4seven6ninepbfoursix2 +fourthree8threett488 +six984three9r3xjnmvp +261 +twoonedrbbmvrm8fivejsix +6onethreethreeeightxpcchknine +two55oneone3three7five +three3threekgpsix +rqvfvm9ninesixninesix7pfsxcrx +4oneeightsixfive +2fourthreeqjppmfjfxnzfdhlr +9gctq3 +vtzcng2jhrhgsqhq +eightmmxz6ninenleight +sbzllxonemjfffkhltgpshkmlrjb7oneone +7fourfivefivefive3qjfdzclghxtc +fourfour9hmmlhhbxfour46twomzsgpkht +fiveqc45 +2bvseven54sixghpnhleights +2qlhvfive6ffpbhftfp6 +4sixone1sevengqqqjbzr +spq17sevenhjfkkjzdf +eightphqcjzdfzpttgxbsix1fvmnvqczr +9hxzczdhdl8oneqkqdlseveneighteight7 +gllbrsevenfour4vfcgth +lxdqx59mvzfjcsjl9 +three2eight3seven8rzsthree3 +two8seven64 +eight4dqqgeightseven +71threejdzzk +6fourgtcqnjkzjljksdqtbddpvxznvmprjtr6 +3fxkdgm +eighttwo3four6zg +6rxlnjpgkkstkbzj +74pcpzgndmtjgngonejfskscqfgm +dfssmbbxf873rhrbxnfzcp +bpqlnrtn5eightsixdschkk +lcrhcxvbrqhbz1one8 +46mrpfrtpnzdkshjgfxnrjbtntdnfive +tlgtzp86twofive +eightpmbdvzmdmpfivebphsv2pzxtcsrvtgnqnhvsbdf9twonehc +xqkbgbseven5 +bheightwotwojl1one8 +five7zsixgsmtvpxkkdrjtqtfjdjln +poneightbrndfh97kqtpgcstvnine6 +svhgqmjgfoureight7twodsmcnjh6mmncjvltp +79sixfourdlprglcm +five31 +ncnmdbvvhnpqxzkktjzbsqxb42 +twoone8mfxc +sixtwogxhhvcqpvzjmnltcdskdthree3nvdqeight +stwone15 +threethreeghzvvdkd7 +fivesevenr3nj +five6rmrccmczninelshone62 +8threet4nsrrkhg6bprcjtrpgclp +3twoseven5 +26twopqtvsks5 +ninemhgqvchgzgndlone938five +5twoprnvvvfcbninexxfrh2 +6fdpxffv4 +ninetwo5one6nqngsbqghbphngmone +kvqfvnxnine9552 +1lmht +6jvngqeightqnp925 +one53rqlbdzfive453xp +32gntcntdtcv +6qxdnhpvrcd5fivenpmqb +sevenninesevenfive9 +98svjcb1nine +777ctrsnjzlfbxdzbvckr +6three4onetwofour2five +27hdhhbv68sevennineclpdtb +mknzmjqsp5xd7vdmfkbcfpgst2 +39twotwo +d78jjxpgrgmpbthreefivezlbvgphnsd +mcxgg3one7eightrzbdqzvfnvxn +ncmfng86sevendqscgbmlrjnkvgqmzzfff1 +fivejlsdtbktwosix3 +npnxr6five947 +2prjccpmn3hfnxpqht8nine5four +hfqrqpzfkqllthttmb4kcvfgtmp +2fourfour +6pj9fivenmhdlsx +6csv7ninesevenlzgzninesixsthrlvsst +7one83 +7mlrfqmjq47gfgpqgkgmpq72 +six5pnslzjhthfour67kcvgsix +ninetwothree3 +vb91two4two +eightdqmnsxlhhkz44two +trzzone6tcvrsznine7kdctnine +nineninefdfnxsixnrq2ninezrn +bl79eight59 +jvjxkgjrbqdmnzk432sixmblqqmpn +two39hthree7 +tdlcjpj5jhslsgfcx +4two9jzdfzbbp +9six7gtbk15vqzhhsbtxgmcx +7vptsbpmq1 +59nsfbgxkvphnqvt +dmffndtn9 +gzfnfsrdmrgtrbbsfive586xhrc +cxvgfjjvbtlvkpsgsknine4jjgntjjzgfqrmlfbx4six +3tszbt1six3 +ptjjhztq9eightseven +zglcldrtwo5fqhvmfivesevenxvkxl9 +sevenonephscj3foursix2 +ninelgclbhv37 +fczvmgkzbm2jnzbgxhqmzoneqsrdj61 +1v8hpchzrvnzfbxninencjqdtqvgl +seven6threeone +five2sixrlfqftqzgks +6three1xzgnkrzl2krjtxr +zgkjvnkczstwolctzzlsevenone6bglzxscglsnjm +3kvxbzmpvrp +75vfz2 +vpnh25eight +cnsdklvrsix2one +kvlsjffgfltbkckcznmgrr8 +56foursix +pmhgkfonehjdslqbdc4eight9 +twodmmsk57nx +lfjvsz6fivekfivefivesdplsixpx +twofivethreeqdgf3eightthree +43sevenhnvsp +threeeightzh3threeqnncknpxgseven +4vbnmhgrmtsblrhrtoneljbbnvxmtvbfzssgone +5kvqfxmlkgcmlmgbfiveeight +55ztqqfzvmdppdpq1three3sixtwo +26bskpdjql +threehhgxmxdz1five94eight +52fourzcbcfknlvlrnvhbnldq +three49four8gshbnmxlc8vphklsvfmhnfss +sevend95 +fbkmpcone555oneightkc +5qddnptqdoneonezczvnsl +78ttssqjfournddr986 +three4five +jb6 +ht3hmrbxjsdvrsnlzvsqrj1rlcfggt5 +5bgxfoursevenrhtcqf2dpkvfmsmh2 +8rdsljbdggzseven4chgfppzmzkj +hfcjpnrzsixfivefour6 +seveneight5hldmqltxonecbtknbeight6 +6ninetztvlzdmgj2xzbtk +three988twodndrqvqpq +4threejkrpgtlhgg6five +4kgxgmprssixseven +spfpone16 +xcpqvrthreemrggrvghqcgbqtkknvvk5 +2three84bxtwo +gjmv82mgnqqgnzcgcd +3nine4seven +9twosnine +nxfmfour8bgcgdkvb +8three6one +bxvxksbbdn3knpdc6stfbxffjggfglc +sevenmfpxjgnpb743five6 +seven7sm +8qxbbcxjvppeightwot +fivetwotwo1seven8r +96eightnrbeight84 +gljg4fiveone +8nine6sevenmllmmchzjxb +3twosixdcgl +6xsfmfjjnz6vstfvhndhlklrsc73kljcseven +threefour1 +tqtlxckrrch5jone9 +9qjsntszxb +ninetwopqfnsrxrfstwod8one +6eight85 +four63vgjflnctzssfstjx113 +1vhshftmrbseventhreetwoeight +51bntvpdmxfznine5hbt +fivebpcntvnklxxseven9 +2xq +vjcbktqbxd55zhdxrhjqnr +bxqndkhjg1sixvjct4 +2two1three +kkconeight5eight9 +gz6two +dmctnkrmone7fourdfqcfone3 +9oneightcb +fiveqzjsvjqlsd99kpsixone +8fivehfphnvtdf +3six8jrrlnpj +1six53hpmgsfqfourxmfmdqds +eight7ljkrn3cntjv +7rkscrcchttwoggxktqdptwodpkcsgpbseven +eightthreeseven9threebdlskshg +18xpklsg +2sevenjlscgksv +rmr3784sevenbgqfhklhl +dbmtkvthree9mmqzfvmhpthreefivethreetwo +566sixeightone6fiveone +sixtwokf9 +lzgsrdmnl2xpps +zlbmfmxtvhvng1eight +1nine76ninegpc +8onesevenxqjqrxflrb1 +2dhthree6sixthree +4eight16 +2threenvllhnkqthreelhfnbp1gmkcgdf +5threeeightthreeeight +qjltlxkptr7threezplpxvqgrrn5 +ftkjg8onedxjcnmrsmf6foursctg5 +threenks5 +btseven2dlqjqpsnhxqmvqnjx +43four +64thknbt3three +jgghlcsxl4gtwo9gfdcgxfour +mvdkntknjf1stttccdntnrxhhdzgnrzznineseven +2nine4nine +4s6eight66616 +r4eightjfldjbqhcpxnhmsmzsjm +3smktnsbtjm27cpkzvnjxone +hvtccdslkb83xmlpktzbfournlklrqfxone +seven5twosix9 +6dcqcfvcrbs8pxphlrrlvqlmjqfrlfoursixseven +qntwofivezcpfknsvq51 +kdvszdf9tzkbhmthn +79dcrnqfrnine +dh8hrfvk2nine1fivefourseven +rphmhjjnthree1threekbpbjhfk2threeggzjsz +fhfive3vcflkznnpfive +sp19onesixtwo5 +eight2ninejc4fivedgffn +m5ffive +436 +khpvrkl27twotwo +7fnbzfdsqeight5fourone5one +eight92nine48fivecnhzhg9 +83mkhqxtdt +fivezvmqbczkgclsxfour3eightthreethree +sixsixxlmh6 +sixfive98 +fourttlpxqponetwokn8tvkmrk66 +1chfcvrmxbtwo4 +sevensix1rlcnmbhs4 +eightftbfczpt8cgcnnck +fourfivessnxfmlzzfiveseven24mfbfx +49lqkxcxtjs2jdsbkmrvfninesix56 +fknjdjqcnm66hrktq +1three24four6 +rpxtwone83 +5vnntgqnrpjh537ninebbkcs6 +three5mjmzhht57 +six4gfqcdbdhx96jvhktthree6 +sevendbssnxndrdxlbvssrt8dtrgcxxsixonehhstdr +1sixfrzgtwo27pf +6onevnnptcxhzgonethreetfxlsvxfmbqc +gmqnpqsix7three3one5tpklvdfzkbqftkhrj +rrslpzr1 +7ninedsvqtgntjdsqqmhgpjkqxkbpgmkxl +sevenxhpjppgxqqz9nxgctwo +7onefour +one6dsntwo +ghlgnsztmtsevenfour1bsctrtmp +onehtzmgbpkjcninefive7bmlnvfhsreightthree +2822 +3threerbtmxdngpq12oneeightone +threenine7z +9bvxxcsnzfive98 +djctwonefourlxshzxzmff313onesixkzxxhrrfour +sevensevengjbfbzmvlhlseven7bgdrreight +seven34p5zpmnn +r27threeqzx27gspmgncgth +threeeighttwoone1jqghpbbl +onefqlnr9bmsvjsb2gcl4 +threeqxjjjtqx4four2mbxfive +5one9qnrzfdsixone +three184eight +2hcnineseven1 +onejgnvdndtwoqpdxbnzhkg91sevenrfgv +hmgseven1fivek866 +seven4four1zpgc +dl8three5 +7two2 +hbglb9719 +1zsgbsmmgprkmgssvnrbv7 +5sixfourrfbbvmlrjfourl +three63sixseven5 +seven3eightthree318five +6brhdvjnz +onesevenfivefour5four413 +two5689seventhree9 +59nczhdqzdr +3vsxmbrfkljfxlkxm1x +6nm6k5three47 +451sixxkcncfqr +xsixonevns4seven3vlxpfcttwo +kl6onehlrmxgbfourfour8 +qvfclpxqfivethreeninesixl521 +33hpkbonepsnfp8nine2 +three41fivetzzfvmlsfive5two +9two6vgvxhnfjone +six68five8pbgrvl2six +sphsdpxfdtgvmmtwoone8eight +z726vlhseven +nine9ninesix6xmgbsgfmpgxkzgpzlxqnjsqhr +fourknflljrbrq63five +42onef6seven +39njjvzt7threetkccstz diff --git a/2023/day1p2/src/main.rs b/2023/day1p2/src/main.rs new file mode 100644 index 0000000..943cd5e --- /dev/null +++ b/2023/day1p2/src/main.rs @@ -0,0 +1,70 @@ +use std::io::{self, Read}; +use libc::{clock_gettime, timespec, CLOCK_PROCESS_CPUTIME_ID}; + +fn main() { + let mut sum = 0; + let mut data = String::new(); + io::stdin().read_to_string(&mut data).unwrap(); + let mut begin = timespec { + tv_sec: 0, + tv_nsec: 0, + }; + unsafe { + clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &mut begin); + }; + for line in data.lines() { + let mut vec = Vec::new(); + let replacements = [ + ("1", 1), + ("2", 2), + ("3", 3), + ("4", 4), + ("5", 5), + ("6", 6), + ("7", 7), + ("8", 8), + ("9", 9), + ("one", 1), + ("two", 2), + ("three", 3), + ("four", 4), + ("five", 5), + ("six", 6), + ("seven", 7), + ("eight", 8), + ("nine", 9), + ]; + + let serror = line.to_string(); + + for i in 0..serror.len() { + for &(word, num) in &replacements { + let mut end = i + word.len(); + if end > serror.len() { + end = serror.len(); + } + let fisht = &serror[i..end]; + if fisht == word { + vec.push(num); + } + } + } + + let mut sussy = vec.first().unwrap().to_owned(); + sussy = sussy * 10 + vec.last().unwrap().to_owned(); + sum += sussy; + } + + println!("{sum:?}"); + let mut end = timespec { + tv_sec: 0, + tv_nsec: 0, + }; + unsafe { + clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &mut end); + }; + println!( + "time: {:.6}ms", + (end.tv_nsec - begin.tv_nsec) as f32 / 1000.0 / 1000.0 + ); +} diff --git a/2023/day2/.gitignore b/2023/day2/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/2023/day2/.gitignore @@ -0,0 +1 @@ +/target diff --git a/2023/day2/Cargo.lock b/2023/day2/Cargo.lock new file mode 100644 index 0000000..5716705 --- /dev/null +++ b/2023/day2/Cargo.lock @@ -0,0 +1,16 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "day2" +version = "0.1.0" +dependencies = [ + "libc", +] + +[[package]] +name = "libc" +version = "0.2.164" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" diff --git a/2023/day2/Cargo.toml b/2023/day2/Cargo.toml new file mode 100644 index 0000000..0ba7424 --- /dev/null +++ b/2023/day2/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "day2" +version = "0.1.0" +edition = "2021" + +[dependencies] +libc = "0.2.164" diff --git a/2023/day2/src/input.txt b/2023/day2/src/input.txt new file mode 100644 index 0000000..88703fa --- /dev/null +++ b/2023/day2/src/input.txt @@ -0,0 +1,100 @@ +Game 1: 2 red, 2 green; 1 red, 1 green, 2 blue; 3 blue, 3 red, 3 green; 1 blue, 3 green, 7 red; 5 red, 3 green, 1 blue +Game 2: 5 green, 4 red, 7 blue; 7 red, 4 green, 4 blue; 8 green, 11 blue, 4 red; 2 red, 18 blue, 3 green; 7 red, 15 blue +Game 3: 2 green, 4 blue; 2 red, 2 green; 6 red, 1 green; 2 red, 1 green; 2 green; 5 blue, 5 red +Game 4: 10 red, 7 green, 10 blue; 8 red, 2 green; 9 green, 6 red, 5 blue; 8 green, 2 blue, 4 red; 5 green, 9 blue; 10 red, 1 green, 9 blue +Game 5: 10 blue, 7 green, 2 red; 2 blue, 4 red; 2 green, 9 blue, 8 red +Game 6: 3 green, 8 red; 1 blue, 11 red, 2 green; 2 green, 15 red, 8 blue; 13 red, 6 blue, 3 green +Game 7: 4 green, 10 red, 7 blue; 6 red, 9 blue, 9 green; 2 red, 1 blue, 6 green +Game 8: 1 red, 3 blue, 2 green; 7 green, 2 blue; 10 green, 1 red, 2 blue; 1 red +Game 9: 4 red, 3 green, 11 blue; 6 red, 4 green; 15 red, 7 blue, 7 green +Game 10: 7 red, 1 blue, 5 green; 11 red, 7 green, 1 blue; 2 green, 4 blue, 13 red +Game 11: 2 blue, 13 red, 12 green; 6 green, 5 red, 4 blue; 5 red, 11 green +Game 12: 7 blue, 3 red, 11 green; 5 red, 1 blue, 8 green; 9 green, 7 blue, 8 red +Game 13: 1 blue, 12 red; 9 red, 1 green, 1 blue; 8 red; 1 green, 4 red; 2 red +Game 14: 6 blue, 5 green, 1 red; 12 blue, 4 red, 9 green; 7 green, 6 red; 8 blue, 10 green, 4 red; 8 green, 7 red +Game 15: 15 blue, 10 red, 3 green; 9 green, 6 red, 11 blue; 3 green, 8 red, 5 blue; 12 green, 6 red, 16 blue; 11 red, 9 green, 15 blue +Game 16: 12 green, 2 red, 7 blue; 9 red, 6 blue, 9 green; 7 green, 10 blue; 9 blue, 3 red, 9 green; 5 blue, 1 red +Game 17: 4 green, 3 red, 11 blue; 8 green, 16 blue; 10 green, 12 blue, 2 red; 8 green, 2 red, 15 blue +Game 18: 6 red, 8 green; 16 blue; 4 blue, 6 red; 16 blue, 10 green, 3 red; 12 blue, 15 green; 9 blue, 1 green, 4 red +Game 19: 9 green, 9 red; 4 green, 13 red, 2 blue; 2 blue, 4 green, 3 red; 5 green, 3 blue, 3 red +Game 20: 1 green, 6 red, 12 blue; 3 green, 8 red, 11 blue; 7 green, 5 red, 2 blue; 5 green, 14 blue, 5 red +Game 21: 5 green, 1 blue, 13 red; 3 green, 13 red, 2 blue; 8 green, 12 red, 3 blue; 3 blue, 6 green, 9 red; 1 blue, 4 green, 13 red +Game 22: 8 green, 14 red, 15 blue; 10 blue, 8 red, 14 green; 15 green, 15 blue, 6 red; 14 green, 10 blue, 7 red +Game 23: 18 red, 9 green; 3 green, 1 blue, 17 red; 10 red, 16 green +Game 24: 1 red, 2 blue, 4 green; 2 red, 5 blue, 3 green; 5 green, 5 blue; 8 blue, 1 red, 3 green; 2 green, 2 red, 6 blue; 2 green, 4 blue +Game 25: 5 blue, 4 red, 1 green; 4 blue, 8 red, 1 green; 6 red, 5 blue; 8 red; 9 red, 3 blue; 1 green, 3 blue, 5 red +Game 26: 20 blue, 4 red, 15 green; 10 red, 2 green, 12 blue; 7 blue, 15 green, 9 red; 1 red, 10 green, 5 blue; 14 green, 7 red, 15 blue +Game 27: 17 red, 6 green; 6 green, 5 red, 3 blue; 4 green, 4 red, 5 blue; 3 green, 3 blue, 16 red; 4 blue, 5 green, 15 red +Game 28: 5 blue, 6 green, 1 red; 13 blue; 1 red, 9 blue, 10 green +Game 29: 1 red, 10 blue; 9 green, 6 blue, 3 red; 17 green, 1 red, 9 blue; 7 blue, 1 red; 1 red, 15 blue, 9 green; 7 green, 1 red, 4 blue +Game 30: 3 red, 11 blue, 2 green; 11 green, 8 blue, 8 red; 1 red, 3 green; 19 green, 11 blue +Game 31: 19 green, 6 red; 4 green, 10 red; 12 green, 1 blue +Game 32: 4 green, 3 blue, 10 red; 4 red, 6 blue, 3 green; 10 red, 5 blue +Game 33: 2 blue, 5 green, 5 red; 4 blue, 2 green, 4 red; 13 red, 2 green; 7 blue, 4 green, 2 red; 19 blue, 5 green, 11 red; 4 green, 18 blue, 1 red +Game 34: 6 blue, 9 red, 7 green; 7 green, 6 red, 12 blue; 3 red, 6 green, 16 blue; 3 green, 15 blue, 13 red; 2 green, 16 blue, 3 red +Game 35: 4 green; 3 green, 4 red, 1 blue; 6 red, 12 green, 2 blue +Game 36: 1 blue, 8 red, 3 green; 10 red, 5 green; 1 green, 8 red; 4 green, 1 blue, 11 red +Game 37: 2 red, 4 blue, 5 green; 2 green, 1 blue, 3 red; 8 green, 3 red, 4 blue; 1 blue, 8 green, 2 red +Game 38: 11 green, 4 blue; 2 blue, 11 green, 1 red; 12 green, 7 blue, 1 red; 7 blue, 10 green, 1 red; 13 green, 2 red; 1 red, 7 blue, 2 green +Game 39: 7 green, 1 red, 15 blue; 8 red, 7 blue; 15 red, 5 green, 6 blue +Game 40: 2 green, 12 blue, 15 red; 2 green, 6 red; 5 green, 9 red; 9 blue, 12 red; 4 green, 12 red, 12 blue; 12 red, 8 blue, 2 green +Game 41: 9 blue, 6 red, 3 green; 6 red, 2 green, 9 blue; 1 blue, 11 red +Game 42: 4 red, 3 blue, 13 green; 5 blue, 11 red, 15 green; 3 red, 12 green; 2 red, 6 blue, 3 green +Game 43: 2 green, 7 red; 11 red, 18 green, 1 blue; 13 red, 12 green, 1 blue; 15 red; 5 red, 19 green; 15 green, 5 red +Game 44: 2 red, 5 green, 7 blue; 5 green, 8 blue; 8 red, 8 green; 1 green, 1 red, 6 blue; 1 blue, 1 red +Game 45: 3 red, 3 green, 7 blue; 12 red, 17 blue; 7 green, 8 red, 14 blue; 9 green, 10 red, 13 blue; 15 green, 16 blue, 4 red +Game 46: 2 blue, 5 green; 4 red, 7 green; 15 red, 7 green +Game 47: 5 red, 9 green, 4 blue; 1 red, 9 green, 11 blue; 8 green, 1 red; 4 red, 4 blue, 3 green; 10 blue, 14 green +Game 48: 1 red, 14 blue, 11 green; 3 blue, 8 green; 5 green, 5 blue; 5 blue, 1 red, 8 green; 10 green, 2 red, 6 blue +Game 49: 11 blue, 5 red, 3 green; 7 blue, 12 red, 4 green; 9 green, 6 red; 4 green, 3 blue, 10 red +Game 50: 3 red, 8 blue, 13 green; 13 blue, 13 green; 3 green, 10 blue, 1 red; 12 green, 15 blue; 12 blue, 3 red, 8 green; 5 blue, 5 red, 4 green +Game 51: 3 green, 1 blue; 1 red; 1 green, 7 blue +Game 52: 3 red, 4 blue; 4 blue, 1 green, 2 red; 1 green, 3 red; 5 red, 1 green; 1 blue, 1 red, 1 green +Game 53: 5 red, 17 green, 4 blue; 15 red, 14 blue, 1 green; 9 blue, 5 green; 3 blue, 5 red, 9 green; 1 green, 15 blue, 10 red; 16 green, 10 blue +Game 54: 4 blue, 7 red, 1 green; 7 green, 8 red, 6 blue; 14 green, 1 blue, 5 red +Game 55: 4 blue, 4 green, 1 red; 1 green; 3 red +Game 56: 3 green, 1 red, 7 blue; 1 blue, 2 red, 3 green; 2 green, 9 red; 14 red, 8 blue, 1 green; 5 red, 13 blue; 6 red, 3 blue +Game 57: 15 green, 5 red, 5 blue; 13 green, 13 blue, 12 red; 18 green, 5 blue, 8 red; 7 green, 7 blue, 13 red +Game 58: 4 red, 2 blue, 6 green; 4 red, 3 green, 14 blue; 9 green, 3 red; 3 red, 5 blue, 11 green +Game 59: 2 red, 6 green, 1 blue; 5 blue, 1 green, 4 red; 2 red, 7 green, 6 blue; 3 green, 6 blue; 1 blue, 6 green +Game 60: 4 red, 9 green, 3 blue; 2 blue, 8 green, 6 red; 2 red, 8 green, 3 blue; 8 green, 2 red, 2 blue +Game 61: 12 red, 4 blue, 3 green; 1 blue, 2 green; 2 red, 2 green, 3 blue +Game 62: 4 red, 6 green, 14 blue; 12 green, 2 red, 4 blue; 5 blue, 5 red, 7 green +Game 63: 1 green, 5 red; 5 red, 1 blue, 1 green; 1 blue +Game 64: 6 red, 9 green, 4 blue; 8 red, 13 green; 3 blue, 8 red, 11 green; 5 red, 1 blue, 2 green; 3 blue, 7 red, 1 green +Game 65: 15 green, 10 red, 1 blue; 1 blue, 2 red, 4 green; 10 blue, 4 green +Game 66: 13 blue, 6 red, 2 green; 13 green; 10 blue, 8 green; 7 red, 10 blue, 11 green; 10 green, 1 red, 8 blue +Game 67: 5 blue, 4 green, 1 red; 2 green, 4 blue, 1 red; 7 green, 2 blue, 1 red; 1 blue, 1 green +Game 68: 2 green, 12 blue, 3 red; 5 red, 14 blue, 2 green; 6 red, 14 blue; 10 blue, 6 red, 2 green +Game 69: 7 blue, 1 red, 12 green; 10 blue, 11 green, 6 red; 4 red, 10 green, 7 blue +Game 70: 4 blue; 6 red, 2 green, 11 blue; 4 green, 3 blue, 2 red; 14 blue, 2 red, 4 green +Game 71: 5 red, 17 blue; 9 blue, 11 red, 1 green; 19 blue, 6 red; 4 red, 2 blue +Game 72: 2 green, 5 red, 1 blue; 4 green, 4 red; 4 green, 2 red; 2 blue, 2 green; 1 blue, 1 green, 5 red +Game 73: 4 red, 3 blue, 1 green; 10 red, 2 blue, 3 green; 14 red, 1 green, 2 blue; 1 blue; 3 green, 9 red, 6 blue; 11 red, 7 blue, 2 green +Game 74: 1 red, 5 blue, 10 green; 2 red, 9 blue, 9 green; 8 green, 2 red, 4 blue; 10 blue, 9 green; 12 green, 3 red, 5 blue +Game 75: 3 red, 13 blue, 6 green; 3 green, 1 red; 9 green, 1 blue, 5 red; 5 green, 13 red, 4 blue; 13 green, 2 blue, 10 red; 9 green, 3 red, 10 blue +Game 76: 14 green, 2 red, 16 blue; 2 blue, 1 red, 7 green; 14 green, 9 blue, 8 red +Game 77: 1 green, 1 blue; 1 green; 3 red, 3 blue, 1 green; 3 green, 3 red; 1 red, 2 blue +Game 78: 4 red, 13 green; 17 green, 1 blue, 2 red; 8 red, 14 green +Game 79: 4 green, 10 red, 6 blue; 5 blue, 3 red, 7 green; 6 blue, 2 red, 4 green; 2 blue, 8 red +Game 80: 19 green, 5 red; 5 green, 9 blue; 3 red, 18 blue, 10 green; 2 red, 15 green, 7 blue; 4 red, 14 green, 15 blue +Game 81: 10 red, 2 blue, 1 green; 18 red, 3 blue; 6 red, 12 blue; 1 green, 3 red, 3 blue +Game 82: 8 green, 1 blue; 2 blue, 4 red; 7 green, 1 red, 4 blue; 2 green, 3 red, 2 blue; 3 red; 4 red, 8 green, 1 blue +Game 83: 3 green, 1 blue; 1 red, 2 blue, 14 green; 8 red, 17 green +Game 84: 7 green, 4 blue, 4 red; 11 green, 17 red, 11 blue; 9 green, 5 blue, 14 red; 9 green, 10 blue, 5 red +Game 85: 1 red, 1 green; 1 blue, 8 red, 1 green; 8 green, 1 red; 8 green, 2 red, 1 blue +Game 86: 1 red, 5 blue, 1 green; 1 green, 7 red; 8 red; 3 blue, 2 red +Game 87: 7 red, 8 blue, 1 green; 8 red, 6 green; 6 red, 8 green, 10 blue +Game 88: 5 red, 4 green, 5 blue; 1 blue, 2 green; 6 green, 10 blue, 4 red; 1 red, 8 green, 1 blue +Game 89: 3 green, 7 blue, 11 red; 1 blue, 5 green, 18 red; 1 blue, 3 green, 13 red; 7 blue, 9 green, 3 red; 1 green, 8 blue, 19 red; 4 blue, 15 red, 1 green +Game 90: 3 blue, 3 red, 4 green; 14 red, 6 green, 4 blue; 1 blue, 9 red; 6 red, 1 green; 5 green, 8 red, 2 blue; 3 blue, 4 red, 3 green +Game 91: 1 red, 1 blue, 16 green; 8 red, 5 green; 1 blue, 2 red, 10 green; 3 red, 15 green, 1 blue +Game 92: 10 green, 12 blue; 6 red, 6 blue; 5 red, 12 blue; 6 red, 9 green, 2 blue; 10 blue, 3 red, 1 green; 1 red, 19 blue, 11 green +Game 93: 4 green; 5 green, 2 blue, 3 red; 1 blue, 3 red, 6 green; 2 blue, 2 red, 7 green +Game 94: 4 blue, 2 red; 6 green, 6 blue, 4 red; 8 green, 1 blue, 3 red +Game 95: 6 green, 4 blue, 15 red; 13 red, 7 blue, 3 green; 14 red, 5 blue, 6 green; 5 blue, 7 red, 2 green +Game 96: 1 red, 1 blue, 11 green; 6 blue, 2 red, 14 green; 3 green, 2 red; 9 blue, 10 green +Game 97: 10 green; 2 red, 4 green, 1 blue; 2 green, 1 red; 2 red, 1 blue, 10 green; 1 green +Game 98: 1 green, 5 blue; 2 green, 7 blue, 4 red; 2 red, 1 green, 9 blue; 4 blue, 4 red +Game 99: 3 green, 1 red, 3 blue; 12 green, 12 blue, 4 red; 12 blue, 2 red, 10 green; 4 blue, 2 red, 4 green +Game 100: 1 red, 5 blue, 2 green; 3 red, 1 blue; 1 green, 1 blue, 1 red diff --git a/2023/day2/src/main.rs b/2023/day2/src/main.rs new file mode 100644 index 0000000..2a46d20 --- /dev/null +++ b/2023/day2/src/main.rs @@ -0,0 +1,60 @@ +use std::io::{Read, stdin}; +use libc::{clock_gettime, timespec, CLOCK_PROCESS_CPUTIME_ID}; + +fn main() { + let mut begin = timespec { + tv_sec: 0, + tv_nsec: 0, + }; + unsafe { + clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &mut begin); + }; + + let mut sum = 0; + let mut data = String::new(); + stdin().read_to_string(&mut data).unwrap(); + for line in data.lines() { + let ids = line.split(':').next(); + let after_id = line.split(':').nth(1).unwrap().trim(); + let get_colors = after_id.replace(';', ","); + let get_colors = get_colors.split(','); + let mut is_valid = true; + for get_color in get_colors { + let color_num: String = get_color + .chars() + .filter(char::is_ascii_digit) + .collect(); + let color_num: i32 = color_num.parse().unwrap(); + + if get_color.contains("red") && color_num > 12 { + is_valid = false; + } + if get_color.contains("green") && color_num > 13 { + is_valid = false; + } + if get_color.contains("blue") && color_num > 14 { + is_valid = false; + } + } + if is_valid { + for id in ids { + let id_num: String = id.chars().filter(char::is_ascii_digit).collect(); + let id_num: i32 = id_num.parse().unwrap(); + sum += id_num; + } + } + } + println!("{sum}"); + + let mut end = timespec { + tv_sec: 0, + tv_nsec: 0, + }; + unsafe { + clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &mut end); + }; + println!( + "time: {:.6}ms", + (end.tv_nsec - begin.tv_nsec) as f32 / 1000.0 / 1000.0 + ); +} diff --git a/2023/day2p2/.gitignore b/2023/day2p2/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/2023/day2p2/.gitignore @@ -0,0 +1 @@ +/target diff --git a/2023/day2p2/Cargo.lock b/2023/day2p2/Cargo.lock new file mode 100644 index 0000000..668068c --- /dev/null +++ b/2023/day2p2/Cargo.lock @@ -0,0 +1,16 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "day2p2" +version = "0.1.0" +dependencies = [ + "libc", +] + +[[package]] +name = "libc" +version = "0.2.164" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" diff --git a/2023/day2p2/Cargo.toml b/2023/day2p2/Cargo.toml new file mode 100644 index 0000000..f0aab15 --- /dev/null +++ b/2023/day2p2/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "day2p2" +version = "0.1.0" +edition = "2021" + +[dependencies] +libc = "0.2.164" diff --git a/2023/day2p2/src/input.txt b/2023/day2p2/src/input.txt new file mode 100644 index 0000000..88703fa --- /dev/null +++ b/2023/day2p2/src/input.txt @@ -0,0 +1,100 @@ +Game 1: 2 red, 2 green; 1 red, 1 green, 2 blue; 3 blue, 3 red, 3 green; 1 blue, 3 green, 7 red; 5 red, 3 green, 1 blue +Game 2: 5 green, 4 red, 7 blue; 7 red, 4 green, 4 blue; 8 green, 11 blue, 4 red; 2 red, 18 blue, 3 green; 7 red, 15 blue +Game 3: 2 green, 4 blue; 2 red, 2 green; 6 red, 1 green; 2 red, 1 green; 2 green; 5 blue, 5 red +Game 4: 10 red, 7 green, 10 blue; 8 red, 2 green; 9 green, 6 red, 5 blue; 8 green, 2 blue, 4 red; 5 green, 9 blue; 10 red, 1 green, 9 blue +Game 5: 10 blue, 7 green, 2 red; 2 blue, 4 red; 2 green, 9 blue, 8 red +Game 6: 3 green, 8 red; 1 blue, 11 red, 2 green; 2 green, 15 red, 8 blue; 13 red, 6 blue, 3 green +Game 7: 4 green, 10 red, 7 blue; 6 red, 9 blue, 9 green; 2 red, 1 blue, 6 green +Game 8: 1 red, 3 blue, 2 green; 7 green, 2 blue; 10 green, 1 red, 2 blue; 1 red +Game 9: 4 red, 3 green, 11 blue; 6 red, 4 green; 15 red, 7 blue, 7 green +Game 10: 7 red, 1 blue, 5 green; 11 red, 7 green, 1 blue; 2 green, 4 blue, 13 red +Game 11: 2 blue, 13 red, 12 green; 6 green, 5 red, 4 blue; 5 red, 11 green +Game 12: 7 blue, 3 red, 11 green; 5 red, 1 blue, 8 green; 9 green, 7 blue, 8 red +Game 13: 1 blue, 12 red; 9 red, 1 green, 1 blue; 8 red; 1 green, 4 red; 2 red +Game 14: 6 blue, 5 green, 1 red; 12 blue, 4 red, 9 green; 7 green, 6 red; 8 blue, 10 green, 4 red; 8 green, 7 red +Game 15: 15 blue, 10 red, 3 green; 9 green, 6 red, 11 blue; 3 green, 8 red, 5 blue; 12 green, 6 red, 16 blue; 11 red, 9 green, 15 blue +Game 16: 12 green, 2 red, 7 blue; 9 red, 6 blue, 9 green; 7 green, 10 blue; 9 blue, 3 red, 9 green; 5 blue, 1 red +Game 17: 4 green, 3 red, 11 blue; 8 green, 16 blue; 10 green, 12 blue, 2 red; 8 green, 2 red, 15 blue +Game 18: 6 red, 8 green; 16 blue; 4 blue, 6 red; 16 blue, 10 green, 3 red; 12 blue, 15 green; 9 blue, 1 green, 4 red +Game 19: 9 green, 9 red; 4 green, 13 red, 2 blue; 2 blue, 4 green, 3 red; 5 green, 3 blue, 3 red +Game 20: 1 green, 6 red, 12 blue; 3 green, 8 red, 11 blue; 7 green, 5 red, 2 blue; 5 green, 14 blue, 5 red +Game 21: 5 green, 1 blue, 13 red; 3 green, 13 red, 2 blue; 8 green, 12 red, 3 blue; 3 blue, 6 green, 9 red; 1 blue, 4 green, 13 red +Game 22: 8 green, 14 red, 15 blue; 10 blue, 8 red, 14 green; 15 green, 15 blue, 6 red; 14 green, 10 blue, 7 red +Game 23: 18 red, 9 green; 3 green, 1 blue, 17 red; 10 red, 16 green +Game 24: 1 red, 2 blue, 4 green; 2 red, 5 blue, 3 green; 5 green, 5 blue; 8 blue, 1 red, 3 green; 2 green, 2 red, 6 blue; 2 green, 4 blue +Game 25: 5 blue, 4 red, 1 green; 4 blue, 8 red, 1 green; 6 red, 5 blue; 8 red; 9 red, 3 blue; 1 green, 3 blue, 5 red +Game 26: 20 blue, 4 red, 15 green; 10 red, 2 green, 12 blue; 7 blue, 15 green, 9 red; 1 red, 10 green, 5 blue; 14 green, 7 red, 15 blue +Game 27: 17 red, 6 green; 6 green, 5 red, 3 blue; 4 green, 4 red, 5 blue; 3 green, 3 blue, 16 red; 4 blue, 5 green, 15 red +Game 28: 5 blue, 6 green, 1 red; 13 blue; 1 red, 9 blue, 10 green +Game 29: 1 red, 10 blue; 9 green, 6 blue, 3 red; 17 green, 1 red, 9 blue; 7 blue, 1 red; 1 red, 15 blue, 9 green; 7 green, 1 red, 4 blue +Game 30: 3 red, 11 blue, 2 green; 11 green, 8 blue, 8 red; 1 red, 3 green; 19 green, 11 blue +Game 31: 19 green, 6 red; 4 green, 10 red; 12 green, 1 blue +Game 32: 4 green, 3 blue, 10 red; 4 red, 6 blue, 3 green; 10 red, 5 blue +Game 33: 2 blue, 5 green, 5 red; 4 blue, 2 green, 4 red; 13 red, 2 green; 7 blue, 4 green, 2 red; 19 blue, 5 green, 11 red; 4 green, 18 blue, 1 red +Game 34: 6 blue, 9 red, 7 green; 7 green, 6 red, 12 blue; 3 red, 6 green, 16 blue; 3 green, 15 blue, 13 red; 2 green, 16 blue, 3 red +Game 35: 4 green; 3 green, 4 red, 1 blue; 6 red, 12 green, 2 blue +Game 36: 1 blue, 8 red, 3 green; 10 red, 5 green; 1 green, 8 red; 4 green, 1 blue, 11 red +Game 37: 2 red, 4 blue, 5 green; 2 green, 1 blue, 3 red; 8 green, 3 red, 4 blue; 1 blue, 8 green, 2 red +Game 38: 11 green, 4 blue; 2 blue, 11 green, 1 red; 12 green, 7 blue, 1 red; 7 blue, 10 green, 1 red; 13 green, 2 red; 1 red, 7 blue, 2 green +Game 39: 7 green, 1 red, 15 blue; 8 red, 7 blue; 15 red, 5 green, 6 blue +Game 40: 2 green, 12 blue, 15 red; 2 green, 6 red; 5 green, 9 red; 9 blue, 12 red; 4 green, 12 red, 12 blue; 12 red, 8 blue, 2 green +Game 41: 9 blue, 6 red, 3 green; 6 red, 2 green, 9 blue; 1 blue, 11 red +Game 42: 4 red, 3 blue, 13 green; 5 blue, 11 red, 15 green; 3 red, 12 green; 2 red, 6 blue, 3 green +Game 43: 2 green, 7 red; 11 red, 18 green, 1 blue; 13 red, 12 green, 1 blue; 15 red; 5 red, 19 green; 15 green, 5 red +Game 44: 2 red, 5 green, 7 blue; 5 green, 8 blue; 8 red, 8 green; 1 green, 1 red, 6 blue; 1 blue, 1 red +Game 45: 3 red, 3 green, 7 blue; 12 red, 17 blue; 7 green, 8 red, 14 blue; 9 green, 10 red, 13 blue; 15 green, 16 blue, 4 red +Game 46: 2 blue, 5 green; 4 red, 7 green; 15 red, 7 green +Game 47: 5 red, 9 green, 4 blue; 1 red, 9 green, 11 blue; 8 green, 1 red; 4 red, 4 blue, 3 green; 10 blue, 14 green +Game 48: 1 red, 14 blue, 11 green; 3 blue, 8 green; 5 green, 5 blue; 5 blue, 1 red, 8 green; 10 green, 2 red, 6 blue +Game 49: 11 blue, 5 red, 3 green; 7 blue, 12 red, 4 green; 9 green, 6 red; 4 green, 3 blue, 10 red +Game 50: 3 red, 8 blue, 13 green; 13 blue, 13 green; 3 green, 10 blue, 1 red; 12 green, 15 blue; 12 blue, 3 red, 8 green; 5 blue, 5 red, 4 green +Game 51: 3 green, 1 blue; 1 red; 1 green, 7 blue +Game 52: 3 red, 4 blue; 4 blue, 1 green, 2 red; 1 green, 3 red; 5 red, 1 green; 1 blue, 1 red, 1 green +Game 53: 5 red, 17 green, 4 blue; 15 red, 14 blue, 1 green; 9 blue, 5 green; 3 blue, 5 red, 9 green; 1 green, 15 blue, 10 red; 16 green, 10 blue +Game 54: 4 blue, 7 red, 1 green; 7 green, 8 red, 6 blue; 14 green, 1 blue, 5 red +Game 55: 4 blue, 4 green, 1 red; 1 green; 3 red +Game 56: 3 green, 1 red, 7 blue; 1 blue, 2 red, 3 green; 2 green, 9 red; 14 red, 8 blue, 1 green; 5 red, 13 blue; 6 red, 3 blue +Game 57: 15 green, 5 red, 5 blue; 13 green, 13 blue, 12 red; 18 green, 5 blue, 8 red; 7 green, 7 blue, 13 red +Game 58: 4 red, 2 blue, 6 green; 4 red, 3 green, 14 blue; 9 green, 3 red; 3 red, 5 blue, 11 green +Game 59: 2 red, 6 green, 1 blue; 5 blue, 1 green, 4 red; 2 red, 7 green, 6 blue; 3 green, 6 blue; 1 blue, 6 green +Game 60: 4 red, 9 green, 3 blue; 2 blue, 8 green, 6 red; 2 red, 8 green, 3 blue; 8 green, 2 red, 2 blue +Game 61: 12 red, 4 blue, 3 green; 1 blue, 2 green; 2 red, 2 green, 3 blue +Game 62: 4 red, 6 green, 14 blue; 12 green, 2 red, 4 blue; 5 blue, 5 red, 7 green +Game 63: 1 green, 5 red; 5 red, 1 blue, 1 green; 1 blue +Game 64: 6 red, 9 green, 4 blue; 8 red, 13 green; 3 blue, 8 red, 11 green; 5 red, 1 blue, 2 green; 3 blue, 7 red, 1 green +Game 65: 15 green, 10 red, 1 blue; 1 blue, 2 red, 4 green; 10 blue, 4 green +Game 66: 13 blue, 6 red, 2 green; 13 green; 10 blue, 8 green; 7 red, 10 blue, 11 green; 10 green, 1 red, 8 blue +Game 67: 5 blue, 4 green, 1 red; 2 green, 4 blue, 1 red; 7 green, 2 blue, 1 red; 1 blue, 1 green +Game 68: 2 green, 12 blue, 3 red; 5 red, 14 blue, 2 green; 6 red, 14 blue; 10 blue, 6 red, 2 green +Game 69: 7 blue, 1 red, 12 green; 10 blue, 11 green, 6 red; 4 red, 10 green, 7 blue +Game 70: 4 blue; 6 red, 2 green, 11 blue; 4 green, 3 blue, 2 red; 14 blue, 2 red, 4 green +Game 71: 5 red, 17 blue; 9 blue, 11 red, 1 green; 19 blue, 6 red; 4 red, 2 blue +Game 72: 2 green, 5 red, 1 blue; 4 green, 4 red; 4 green, 2 red; 2 blue, 2 green; 1 blue, 1 green, 5 red +Game 73: 4 red, 3 blue, 1 green; 10 red, 2 blue, 3 green; 14 red, 1 green, 2 blue; 1 blue; 3 green, 9 red, 6 blue; 11 red, 7 blue, 2 green +Game 74: 1 red, 5 blue, 10 green; 2 red, 9 blue, 9 green; 8 green, 2 red, 4 blue; 10 blue, 9 green; 12 green, 3 red, 5 blue +Game 75: 3 red, 13 blue, 6 green; 3 green, 1 red; 9 green, 1 blue, 5 red; 5 green, 13 red, 4 blue; 13 green, 2 blue, 10 red; 9 green, 3 red, 10 blue +Game 76: 14 green, 2 red, 16 blue; 2 blue, 1 red, 7 green; 14 green, 9 blue, 8 red +Game 77: 1 green, 1 blue; 1 green; 3 red, 3 blue, 1 green; 3 green, 3 red; 1 red, 2 blue +Game 78: 4 red, 13 green; 17 green, 1 blue, 2 red; 8 red, 14 green +Game 79: 4 green, 10 red, 6 blue; 5 blue, 3 red, 7 green; 6 blue, 2 red, 4 green; 2 blue, 8 red +Game 80: 19 green, 5 red; 5 green, 9 blue; 3 red, 18 blue, 10 green; 2 red, 15 green, 7 blue; 4 red, 14 green, 15 blue +Game 81: 10 red, 2 blue, 1 green; 18 red, 3 blue; 6 red, 12 blue; 1 green, 3 red, 3 blue +Game 82: 8 green, 1 blue; 2 blue, 4 red; 7 green, 1 red, 4 blue; 2 green, 3 red, 2 blue; 3 red; 4 red, 8 green, 1 blue +Game 83: 3 green, 1 blue; 1 red, 2 blue, 14 green; 8 red, 17 green +Game 84: 7 green, 4 blue, 4 red; 11 green, 17 red, 11 blue; 9 green, 5 blue, 14 red; 9 green, 10 blue, 5 red +Game 85: 1 red, 1 green; 1 blue, 8 red, 1 green; 8 green, 1 red; 8 green, 2 red, 1 blue +Game 86: 1 red, 5 blue, 1 green; 1 green, 7 red; 8 red; 3 blue, 2 red +Game 87: 7 red, 8 blue, 1 green; 8 red, 6 green; 6 red, 8 green, 10 blue +Game 88: 5 red, 4 green, 5 blue; 1 blue, 2 green; 6 green, 10 blue, 4 red; 1 red, 8 green, 1 blue +Game 89: 3 green, 7 blue, 11 red; 1 blue, 5 green, 18 red; 1 blue, 3 green, 13 red; 7 blue, 9 green, 3 red; 1 green, 8 blue, 19 red; 4 blue, 15 red, 1 green +Game 90: 3 blue, 3 red, 4 green; 14 red, 6 green, 4 blue; 1 blue, 9 red; 6 red, 1 green; 5 green, 8 red, 2 blue; 3 blue, 4 red, 3 green +Game 91: 1 red, 1 blue, 16 green; 8 red, 5 green; 1 blue, 2 red, 10 green; 3 red, 15 green, 1 blue +Game 92: 10 green, 12 blue; 6 red, 6 blue; 5 red, 12 blue; 6 red, 9 green, 2 blue; 10 blue, 3 red, 1 green; 1 red, 19 blue, 11 green +Game 93: 4 green; 5 green, 2 blue, 3 red; 1 blue, 3 red, 6 green; 2 blue, 2 red, 7 green +Game 94: 4 blue, 2 red; 6 green, 6 blue, 4 red; 8 green, 1 blue, 3 red +Game 95: 6 green, 4 blue, 15 red; 13 red, 7 blue, 3 green; 14 red, 5 blue, 6 green; 5 blue, 7 red, 2 green +Game 96: 1 red, 1 blue, 11 green; 6 blue, 2 red, 14 green; 3 green, 2 red; 9 blue, 10 green +Game 97: 10 green; 2 red, 4 green, 1 blue; 2 green, 1 red; 2 red, 1 blue, 10 green; 1 green +Game 98: 1 green, 5 blue; 2 green, 7 blue, 4 red; 2 red, 1 green, 9 blue; 4 blue, 4 red +Game 99: 3 green, 1 red, 3 blue; 12 green, 12 blue, 4 red; 12 blue, 2 red, 10 green; 4 blue, 2 red, 4 green +Game 100: 1 red, 5 blue, 2 green; 3 red, 1 blue; 1 green, 1 blue, 1 red diff --git a/2023/day2p2/src/main.rs b/2023/day2p2/src/main.rs new file mode 100644 index 0000000..80c19c2 --- /dev/null +++ b/2023/day2p2/src/main.rs @@ -0,0 +1,60 @@ +use std::io::{Read, stdin}; +use libc::{clock_gettime, timespec, CLOCK_PROCESS_CPUTIME_ID}; + +fn main() { + let mut begin = timespec { + tv_sec: 0, + tv_nsec: 0, + }; + unsafe { + clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &mut begin); + }; + + let mut sum = 0; + let mut data = String::new(); + stdin().read_to_string(&mut data).unwrap(); + for line in data.lines() { + let after_id = line.split(':').nth(1).unwrap().trim(); + let get_colors = after_id.replace(';', ","); + let get_colors = get_colors.split(','); + let mut red = vec![]; + let mut blue = vec![]; + let mut green = vec![]; + + for get_color in get_colors { + let color_num: String = get_color + .chars() + .filter(char::is_ascii_digit) + .collect(); + let color_num: i32 = color_num.parse().unwrap(); + + if get_color.contains("red") { + red.push(color_num); + } + if get_color.contains("green") { + green.push(color_num); + } + if get_color.contains("blue") { + blue.push(color_num); + } + } + let red_largest = red.iter().max(); + let blue_largest = blue.iter().max(); + let green_largest = green.iter().max(); + let temp = red_largest.unwrap() * blue_largest.unwrap() * green_largest.unwrap(); + sum += temp; + } + println!("{sum}"); + + let mut end = timespec { + tv_sec: 0, + tv_nsec: 0, + }; + unsafe { + clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &mut end); + }; + println!( + "time: {:.6}ms", + (end.tv_nsec - begin.tv_nsec) as f32 / 1000.0 / 1000.0 + ); +}