From a0d69feddb27a769fb47f04b668adbc27e02d60c Mon Sep 17 00:00:00 2001 From: Pcornat Date: Wed, 6 Dec 2023 17:54:53 +0100 Subject: [PATCH] Problem 1 part 1 is OK, part 2 in progress --- CMakeLists.txt | 54 +- inputs/pb1.txt | 1000 ++++++++++++++++++++++++++++++++++++++ inputs/pb1_p2_sample.txt | 7 + inputs/pb1_part2.txt | 1000 ++++++++++++++++++++++++++++++++++++++ inputs/pb1_sample.txt | 4 + main.cpp | 14 +- pb_1/problem_1.cpp | 100 ++++ pb_1/problem_1.hpp | 17 + 8 files changed, 2194 insertions(+), 2 deletions(-) create mode 100644 inputs/pb1.txt create mode 100644 inputs/pb1_p2_sample.txt create mode 100644 inputs/pb1_part2.txt create mode 100644 inputs/pb1_sample.txt create mode 100644 pb_1/problem_1.cpp create mode 100644 pb_1/problem_1.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b5a897..b0c44b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,58 @@ cmake_minimum_required(VERSION 3.27) -project(AdventOfCode2023) +project(AdventOfCode2023 CXX) set(CMAKE_CXX_STANDARD 20) +find_package(PkgConfig REQUIRED) + +pkg_check_modules(Jemalloc REQUIRED jemalloc) + +set(LINKER_OPTIONS + PRIVATE -Wl,--sort-common,--as-needed,--gc-sections,--strip-all) + +set(COMPILE_FLAGS + -pipe + -march=native + -mtune=native + -mrdrnd + -mrdseed + -Wall + -Wextra + -Wpedantic + -ffunction-sections + -fdata-sections + -funroll-loops + -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free +) +set(LINKER_OPTIONS + ${LINKER_OPTIONS} + -fuse-ld=gold +) + +if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") + set(COMPILE_FLAGS -stdlib=libc++ -Wmove ${COMPILE_FLAGS} -fwhole-program-vtables) + set(LINKER_OPTIONS ${LINKER_OPTIONS} -fwhole-program-vtables) + set(LINKER_FLAGS ${LINKER_FLAGS} c++) +elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") + set(COMPILE_FLAGS ${COMPILE_FLAGS} -fuse-ld=gold -fdevirtualize-at-ltrans) + set(LINKER_OPTIONS ${LINKER_OPTIONS} -fdevirtualize-at-ltrans) + set(LINKER_FLAGS ${LINKER_FLAGS} stdc++) +endif () + + add_executable(AdventOfCode2023 main.cpp) + +add_library(pb_1 STATIC pb_1/problem_1.cpp pb_1/problem_1.hpp) + + +set_target_properties(AdventOfCode2023 pb_1 PROPERTIES + CXX_STANDARD 20 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS OFF + INTERPROCEDURAL_OPTIMIZATION ON + UNITY_BUILD ON +) +target_compile_options(AdventOfCode2023 PUBLIC ${COMPILE_OPTIONS}) +target_link_options(AdventOfCode2023 PUBLIC ${LINKER_OPTIONS}) +target_link_libraries(AdventOfCode2023 PUBLIC pb_1 ${Jemalloc_LIBRARIES}) +target_link_libraries(pb_1 ${Jemalloc_LIBRARIES}) diff --git a/inputs/pb1.txt b/inputs/pb1.txt new file mode 100644 index 0000000..96a4980 --- /dev/null +++ b/inputs/pb1.txt @@ -0,0 +1,1000 @@ +14gxqgqsqqbxfpxnbccjc33eight +eight2sevenkl +mrjstg5onetwoeightgcczx8vgrgl +9246 +ninetwo2crrqk2grsctqxqbcrmrdsqbrz9eight +five6dlhx1 +29qhsdqqtgrk4 +mjgtrjnlttxjlsixsix5 +bgnnvfsnbpx29vsjrlmgmsqthreeqxvclkhlv +sevennine3gsmxncqlqvfktxrtcone +2mkzrqlmhsveight1sjtwo2 +rrrbvnrvnqfdh86 +94threeqrhkcpkeightfour +four83 +9ninehbsgkcthree1nineeightsix9 +57zfcgpf68 +hbonefourfour8lsnfgvf3 +seven79rqtqvjddc +two6six7eightqnmnppctxjrxbdxbdmbfkmv +9rdvkbxclk9fivecrxmtpzsxn8cmrzttlfour +nztfnthree2 +nxhjcqzlcxgdkmcfggc261gbt +xqfcdfdsrlhdktdjshllqgqshzmf7hpcdgdfcvntczdxxfqbvz +sbf43g +vsm922three7 +nthree1 +3eightjvtqcb1lkgkzhbgvl9eightfn +tfvv2zz5xmckbc1sevenfour7 +fivesix6two7cptgpfpd +3skfjrzbjpeightdkkkjq +68onefourxmznzlfivesixfqmfchn +12rzcscnkxsbc2ninetwo +jrmmvsdjvftgnrz33five +bhdxxmb36ninedmrlrstrmrbvz +1seventhreenbsth136kzrgdvvjp +7nrc6xpl +fourseven4nineone +8zxncrhffcmq9threeeight +5seveneight4three9 +8ghsxbzoneightg +qtwonesixtwosixvjmnhqbbx5 +sp1psqkctzqnldbdhqsmgsixfivepjnnvsxdldtwoseven +9ninethreefqqlztnrtgcbfourxdgltgft +zsix14sevenhqkgfh +nt3 +dhdsktwo9 +8cmjzrsmr +4bdspt8 +qvzgxjp7six +ninethreexqvzzqhjsthreefivetwo1 +kzhsgr5tpzhxeightpqkfj +twozclthmcx1phkcvgrlbj7fhmcph3eight +9lkctcvgxr2two8rxgkdbx +khfgllh7kchfq9xbnrqrseven +ninekqmvfour81seven +xsfpksix65eight +eightf24oneone +24581snlbjpfronenine +nine3eightjqshqxscvzvskspcmdzd49 +6mfqf5one +zrzzlchrfl167n1 +nsxqfspq9 +7mggsvthrnckcsctjsxlmxghqeightsix13 +sbpkxkmjkxcmg4 +eightonethreevqkjkxnnine2 +kntj2vkcnrkjonefnqddll6 +zlbnprltbkgmzpvtqmvzhpvhrb3ntrzhkrbvd6twoltkpsccvbk +6seven5196fivesix +vj8 +seven5fourthreeeight5 +lqzkbvdtxs3hbqr +7gmfzfcnrone66nqvkmthreekdhfkrhone +nsxftsvssone2fivefive1rcvlzltfdzcgsh +8five1eight +7ljfbvnrbghgkhstwo6vmnhxdteightfour +hdnxc4zjqrbr +5ghrjjbfshonek1sixrvnnkhpd5 +threetjxxlvqfvdcj852dkxlthree +xbpqlbrgcbkzvbjdt8 +cbzeightwo7npgjjxfzrvz66 +zktrxkjpchjxzmpq2 +five1lbdhrsix +5qldpfkqjkfjdzpfhf86 +vnbrnsskxphxv22 +4chnggbxmssnine3 +4k9one +2twoneh +6kgbvpsl5threecxf +562six6 +tsdvbzxpkqbkrpvht33hxhvmjnltwo3 +7fourone +ninesix2sixsix1fivenine +fourbqvbqftvzz88sjszkgxhrtlshkdjq +sfsrfsevenpgpmffthreezzsfb3 +8fivekvmzz4rlrscnxmx15 +jvteightwozhqsnvffxg3rsjmszc7fssnbhrtwo +fivenineqsvpgbkdxlp355nine +9jbfive +zsxzdcvsjln65 +nvcc52twonine83fq +gcnpqqfhq2 +jspfdkpxl4fourbstlcvdhxhjdgxvpzbvltwo6 +8sixsix +fourtwohsqhmnjmph7 +one3eighttwo +tshglpdmjbsgsoneplbjqcsrxseven8 +42sgr296mpkdz39 +bxsevenone25two +two8fivefour +three4cgjttdmfqonenine +eight5sixeightmxzzqmt795 +threebtnlmrrqgnine9fivezdzgldkxnbvhsvzqnine +one14tqvqgn1ninevkzhrqfqdjprzxb +cqqnine52cjmteightgbb +vhhkrrbhlp9dseight +fjzfmqv1bsvqbtpvvzcvqvxnlptk +five6three1zvgznsrvnpmnine +cfkxfmeight18hgkclhmcfcfsjzkztwothree +fivesevenonejmmrjvhznffive4jbrvdhlcpj +gbboneight47xfmqzt8 +sixmjnfmjtsszvc4sevennineonexc +kfsnggdldp33four +56hj2lqncdfghdbgdkzpkr +63five519bztrxx5 +3eight3six9xvdfhrcmsm +drcjrlst5ninefourxcm +4five3dmjbnbeightvxtbbvxdpfourjvj3 +lnmqnine855four17twoeightwolx +lnkffrtmv9t +mmhrvrpbvrcmpczvknkfourcqktxx73qbgd +khbrlcvdpxdkljvkhnfrvtpmbeightgzms2 +shbr9fzbvzhhqmnnine76 +x93 +3onec +v5xskfrg19five +ncmtbgdkfour7fiveeightfour4nine1 +3dtdjs38ggfljpdvv +fourthreevfpmztnzzcf96eight1 +onesjmdmmmcgnvhdnczfzznrvrggkgpcpcggqpkkkcfbq6qpsv +5nvhksixtwothree +d4qhmsljqhmcqlxln2dbd64 +zrshqtseven9zkpmzksqcsptfkkn +9pk +51jnqbzgnlhcglfour5three +8snxnxv3817 +tsvd4 +lzfxkxrcktjlvzbnsixfourthreenineeightone4 +lxdz9326threefouroneseven +6zkgmhktdnfive +zonekfbbcqcsdbkc4fivexpnhssdgbbnine +8zcdxcbhm7seven +1fldmtvgnine39eightdrmrtzkcthree7 +8sixxlztjhjkxtppmrtfour +threekvjx68twofiveqtzfg2fbhnhrdztv +6pgvzdbgjnlctwofourxzpc3xzdc +sixdxpnthgkfmddvqhrvsixsevenx4q +ch29onepqnine +sixlnh68 +1one5rqxz6nine7 +cone9 +fourseven3kddtmbjhnkz9kxhzspvtdngvsix +3sixnrjcxv1 +onemdts29zrbh +beightwo2eight816nnzfhptjhfqvqq +lfmxzp44cqkthree +gl4qsevengltwosix +2eight3qqkksrsevenxkndsxt +eightzxrflknj9jpbmt +knqjgjjjmkninezzfnbcdmqctwozskxsgd1655 +qpfdjsmsqfourfiver49f +vsix1xpglmcbdp +vgqjvzzcct7one674 +4csdttrsd58fivesixtwofive +bslfsjhrl8cszqrppqskthreenine +997foursixeighttftrnktp1 +3ndqmpzs6jkpcvjdltgbfgvlcn2 +lsxprcgkfivesix8eight9onenbdxqbl +seveneight3eight +eight7sevencvvshpgfg +8zg7two +5sixsixtwo +six7two +jjcxmsixhbtvfx2twoxs +9xtg +3onelvrpcvxk +ninetqzpbhxsspcfjlvsg3qlnbbqfxdqnine4one3 +xplhfgfour49 +jdrzrkkzdkgvhsvbm6bqfgpjbvhxlhtxhhpmmtmvqbgnmzpkm3 +hrjqkmvv1bzm2krs5 +vfztwonepdlcn96seven5 +1mpkqmccqqdsmhdgjjgrrtsbconehpfgfnjtxtqv5 +one9qn8threeeightnmqvfjkklg3 +5kgkst4ninegnqnjgmtdpfzspmkk +pmggrbfxghr53eight7mjlzgzv +4fourone +lbjfvxjzd7fivevllrtvfkmeight6 +xtl9 +ninevonevljrvx9 +sevensix7sixhbeightone +npzmcdtdqfpvonenine9rsktdrrnz9six +4six55 +eight646gdvfkjqsvnczbxtwo +5seven5jthree +cfourfhmxqjmseventhree2sgkxm18 +mfxnnjjxtjzlljgcnfpvb6cmknzb +4796 +kzxfnrqktwohmp9cclstwo +vgzgmc1zlsch +lvpnb1five216mbdxgvfkcg +3onezjnmv9fourj +two8vmpfmqmq6 +p8 +4oneeight45 +827eightsnvlrskzlbnineeightbtngkb +kdfxtjj2 +csthreesevennine7seven +hqqjrzkkkh84 +six42four +nine259five +8jngjtkdnine +3ph +8gccpsqfourtxtlbvmvb8n +oneonesix7jdkzfxkdvttwo26 +xkfsdgkjt34vq +98twosjrr5eight +foursixfive9 +17vmxlvqpqmvnfchhmxmdcpzgrsjl3nine +pmzscpthreevone3kdgqldjf48 +dzhoneightonevxtzqsqxxpgtgrdl73 +4threebbsttfhbdtwofivezsvspjp +jlstdnkjgdxszmpv2tgvpbdhdrkdjjvdbscv +4mqqxrsfrfhsbxprbxrgqseven +3rklddqfnczjfhjmkrgrkslxninesix +9jpcvnlvb3lzqzkvlnqsseven +8ngm64zxplgcdxzdzgfqmtworprmndddr +fivefzhdggmfslthreejmsrq8dxzdzcxsj1 +75six294xbzhjxd2five +56746 +jjxxqclf6eightfive7 +fiveeight9eight +npdgsll2twoxfzq +66fiveninerrbgrshthree9 +nine124nkcsltwoqdlvr +eight4vlsddsjxqthreep8xd84 +mqsbzgsszonexlhljdhdt9kjvdvbmqc +shpxspqrck441twoxjhgthz3fournjtxzgbs +2threegtqmddnine9two +rbdvrngvrjsllkrc542 +p6dckscjkhzfqvc +qblzhpspf4glsrbxm923six +4mfbjznone5svkgvsr47dvtbltlmns1eightwob +5sixsix1twofivexjn8 +5fivefournine4 +gzhzlbkzrlsix5seven3tm +eightpgqrhfqsix41slrs6three +five3dtfzfour +6813nine +3sevenrnhznczgb +mmcgrkjhbsevensevenvrhclthree2 +pfourthree9ninenine +9fbxvvtbzkttwoftv7 +mmthree94fbm +1vsblnklmm2zqmntkp +oneninefivenineone2threeeight +4sevenxzjfxbfdzgfgvjgjdscninetwo4 +64sixfrmtmjoneightt +gzzlqqjsevenone5 +1twoxpcqcvgmhbcm8thlrzmplqpkrbjrqr +jgjqqn291foursevenonefnrdhxt +3bvznvqd8oneeightzchdjvj +ntqtg1 +hsqkbfnxcbsixmvfhxrvxrvnineseven4 +bkztqhhbdzr1sevenonenine1 +v79zpdqfive +tqtwonesixlhhnvf77one1 +2twofour +eight89seven +7six6fmzlrttxstdrg +seventhreecbldkqd89threesevenpplfv +7hmhxpg +threepmvqfc5rktgjl4xvdzmhrninef +7qnlqhtrrk1sevenqfgpkdfc271seven +4gxrqspvg1 +zdgfscbzbdg8rvqseven +eightsevenfour5 +five8five +xprtcnxztmfgtwosnsix5six5 +zpjrhddxfzhdm7pzhxnzsp2six772 +43five92sixfivefour +6kjknjjrjkdfive5sixsevennjone4twonexr +11sevenhvsrb5fourhzxrmgfsl5six +2kbtkmsdfkdzmfplone +68onesevenone7one1 +one36eight +89srlblvkzrjone1 +7threekmzvhxpsdc1 +3648pmjmj4 +fivetwothree8eightonev7x +jlkvd1tgjvdqv48three5 +tvtwone1rhcbkfcj82eighttwofive63 +rkpvjgsfmhbvd7nckshnmzknine +8md7xh8bvsdmhjdxq +threejzrnnfczgzdmcchv5hv4eight +8lqnnnpmfourkndkf926 +651jfltzffxh +onehzk5foursix5 +three7sixfivefive5twonine +four3fiveonef57 +5seven5pbqmzzkqsp +none8five +6threefpqx9eightkhmrgqm4 +ndgmck187mjkxccsdhknine +2jtwomvxjnnpmcseven +bdfnkbhbbfvztpseven6kgknpxmxdfoureight8 +cxtwoskgklsqkdpfive8twohq +5seven67two8dlzmttpdh +cdkzhtk2fvmdtphsxk +threepqcgj8dkfgjp +56tgggrrgdnveightwolc +ninezsix1rnpponedpkqrpdthree +vmgtq3six9 +nhbjgxsixsrrftdt3fivedcdqqq +6fivevqxphgvrflbvljlone +ninexbjtwothree4 +heightwocjpppfive3vlcpc2bt +tbtxlftsnsnknine5q2 +fivemfqlxlpgbpjgnvpfthreefivejzcpkone2 +5dmzkpmpghsixthreenine4 +two9seventqzb578kmfrvlj +six855three +2kddfgninezgsonedptb +1cbbtg1kffourmjxbnvfgjfiveonemgbjtmd +5threec5nine +pvgd5sf7three1lnrfive +83mtfjsrln6 +khtglxc3 +qckdfjbz289nbhnthreehljqfklhmjvrgxt +5kmslxsixsix72 +jlcfmqh5nine +454fournine +jgbfzxdsfpcjpsdlhs5gbsnjxhsfivesix +scxsgsevenseven6fdkcpzm +cbznsevenddvdql431 +fivefourpj871 +xoneighttwo5css4 +sixsevenone49 +xpvktkbdzc6threenine7nine6cnxsdeight +6nlsg8zczsblcppjmbzlnthree3 +jlhzvzskseighttwo1twofivefournqzeight +smmsszqpv653sixsdp5onefour +8nhgxc +cbskddhjq1fourfourj +vqnjgcml5vvggqqlhvdtwonetg +4gdhf1bxrhlnslpnglcx7rhvgnhzjvstwo3 +8fourfive9fivenine4one9 +5xbggkdbkddmfknsxpv +9fivekkttcpntr +cvltwo4 +1four62 +9ninevc +nmfrttms6czdhrdchfkntonetwogc3 +8dfbqlpz9 +fivesixsix595nine4 +6mmpks71nine +ndhdkddjchhseventwo33fv8q +ninerbnhsxkninemdthft1seventwonvgdcgt +twosixbmthh3srhdtnljqlqsbxssnsix +seven22ninedplffive +xpsh1twoqmhkqqsjz +8vrxzhkq +5ninegr +five9nqcmxngktwothree62threethree +qffhltbnineseven9reight +threerqddxgmjnj2 +seveneightqxxgmrzxvhdnine2seventwomtkdmjbkfh +9vppxpsnpdfourdmtqtbm2hpgqlgr +seventhreeczjngnklxg3nsfqzqqeighthcggbk +fflnhnnzncdnh9twoqhx +fjpqseven5noneseven5nined +kdnhflninenine2eightfivemknllfgqspbcrjklx +jmgfqhchzmdfnpthhhcc291shhdqp +5bphvpcxvdf2five9nine6four +9gfpnzjkmlb76xreight9threeqvjxpssvrs +4hpsix6five1ptrdlkfmgr34 +1sixnkvfkvdfjqtwo36eightjnfz +bzstgfhrmmfourseven6xnfvonegzc +fivesix426vgzshhklnknbclnbbpm +k5threetrkghrbcn +13nine +1vlrvlxrsrznlpf +9tgzzddgr1b2 +6sevenrzvcqzsckkqbtsevensevenninehbmlxbzzlf +1991vkjhdp +9jkhnrjjv +6seven47sstqkbthreefour9bmkfbxrzp +seveneightnprhzf61725 +oneone7eight7cpll67 +8eight7one +23bthc337qxhmfbgsix1 +9r61vtgqklone +oneplh6 +four9kfmzbgxlhlxxjf +mhk95 +csdfsix71seventhreesevenfour +sqhrc39 +6three2 +four11sixtwofmvgjvseven1five +four4ninefourkmz2 +mqm5seven3five +sevennine63sixvtwo +81rrvgzzrkzmgsgffvgxlrfbmqxczhtl5tvj +vq8qmg7geight62 +1twoqmmfcseven4six734 +9ghstzndfnmzbtdscl +88twosix +8five5eightworh +ddqdflzbhr68mrdc9 +2threefdb77 +7nine4rbfknbtnsvljnqdtz47 +xrfdfcrtqssx79dvhzls68 +cvqjp6fxkdx9qvsjqptvs +hbzjllr1 +1985onezp2nine +6sixqk52lpftrt +zfqqj8 +c4rljszsspxnnvjl1two +78phbjhkmjltcrxqdblfthreeeightvndtwosksxsxccqz +453gnjntwosevensixfourtwo +2fpnkqlzvmlbbkfxmqgrgv3tbtrkmprx +ffive5f3two +2grzqfmnrld +twofiverd76566csz +eight4zftjjzrkx +onefour8nvrxkqzrfthree3hvzk +fmzqklgfh76lcpjxlvrmgfqpnine8 +nine9xjvvxdvksqrqlhqvrbjvx1 +vlfcpfvl8msxhnftleightwop +846ninethreetwo6two2 +4mjbcckzrhtwo +blsn3onesixfour8 +14two +five3fivesbhfour +onevpqdqds5eight +pcvcsnhv861oneeightfoursix6 +csix7vjllblmgjg +mmn4threesix5vxdsf +v1vx4fivefive4fivevjfjvkf +53tsbldc9skgcshbvxdd +1595bxscggsspvjnbxx37six +seven883 +35sixone4lbzcbgk +tlmvbhjnkknz3nineltztzpclxsixzjnbfvseventwo +rccrkvsvxjbchfive933 +5shkktwokfkkmrxzsssix +five93three +8six44snhpssteightwomjv +nine1nrrjrvjfml4dcklljns +pclkcskcp428199 +fivepjvbtstwojshbgxmdr24eightsix +6eight4 +mjjghhcqrttcjrzhjjrc2five +xkhxgsqjstsevenfour4 +3one5gvmhcbkkdd6 +v3nine9threepfphnkthree6three +ml8twoxnzgqjx1rxbpjnonezrp +one8dtxklgmlnbqhpxl4 +1foureight9fourkmp9 +6vzzdgtfourxtzglhxzvcs +rg4onejhpgsfgpdql +sqpeight488four7svb +63five +39khkbdllxv +bdnjhtcqrxrnnjflfrx5366ninesix +tworfrqzgl85twotwoeight5 +jxeightwo8ttdxhc6xqphg9ntmrtrmxfnjb9 +933rsixeightzbkqkb +1onesix4onefour6d +three6vxnhgxbdxxmdmmggmnxtwocrvftworpsdrrkx +5nineeightninezvf +5jfour +zftjzrfjz8 +8four5nine84mpcktbm +vgg6five5pr8 +3sixtwotwo7ppfsbfppbkmjtlktrx +sixnhcl6bxjxdmgt +pdqfvzgsps9eightj +sixfive87hjksxxbgz1prvfqnnsfmfive +tztgzrnineseventjqhxn3 +twoeight3zthree +nczc3two +jdklbdr4 +j93mnmsixt1 +2fivenine2two65xhcjfnddbqlbd +six48zsklgprrvklt319 +6seven1threephh2bldxvrlln +88threeone +hqktgxxtwonine2 +14fourtghmvcbbnkxkhrvncskgthqqfkgpbrln +threen7rnk5zgjfvtlcs +nine87two56 +859 +six8q7twohnrphb +93oneninethree4 +one7nbzmqdxmj5qfxzcmxfkx +3two2two96ninecnkbt9 +fvcqktlf8two +six4nine4fiveqjthree +91qgvlq6eight3twofive +79sevenfivetcmcsrvvlsl +6bnssix +threefoursix8eight2fivehpp +tlxmqclgdchq8 +threefourthreelbd15fiveknzhg +ktqk68czbjrbkrlnmg3 +oneonerptgcnqzt6fpthmjhgxc8 +rcbfpqhxgjfgfgjcm3 +bxbbqcvvlfivefiversxqpmcb87r7 +two1eight +96sevencktptc9fmnthrdthree +fivehkzxl9five +twosevengsblkmgfzqndznine2seven +two58rlnjdqninetwo +5fiveonesxhbkcjmctwosix +seventhree8952bpqccspldk +8fourpfcvrvc1one +bpbtcnzk27ninemltwo +five2tkqfivethree88ggmpg9 +seven6seventhreemfmnmmbsn +three61xrfghoned9eight +mcffvkprk1one +hvkxcdqcthreetqcr3threeseven +8nmbnhbdseven +bdzc8eight +bzp292one78rthree +ninexsixone71zdnqlcxrphnnbxsmpc +ninempgdsbbdr7 +8eight2367 +15113onelhgvmp8 +8f7gpjllpllptonecfhhpqvcr +ztjj6nine1xsltr4 +nine27gkkjnkcqzt +9gr28eightthblghdkf9lcs +sevenbbjnprlqh1tphfbhbgvlsix33fournine +3sevenfmccnzqxfsfnctfrfngtone +six9xcvlflj +9fqcz1 +one63one3kpnthgscdmtjprseven6 +tlrkvjcdx7txkzrvzcjcvvljfcljc +rfrsfive2ctdmdnqnpfzvvseven +1trdgtvl648frnstf +bxkqchjmphmbnjrkrxxcntpxjnine3sixnkffxsb +84sxd +397lfjmzbp +sixvqjthree2szblfstz +29six833 +bnfnnine8nvjjprkmfourfourfour1 +gb93b98cxblqxskm +3zmggzvlvscbkblhmj4zsevencxgjxsbsr +smf1 +zghrszzcvb5rtnhzktts4 +265qvrzllrctoneshgcbdsbeight +2eightbjvlsixmseveneight +tqfrgkqzbtxqcbxvjzgtp1four +pmrrnmtt1kcf8two +49bnp1tmcglrtpt +4three2ggmbzgqltsqzzjjn +six7frvkdsxdktwo +7cjsnbps7bgqzc +oneoneeight8xbfnnldvpdv +568 +6rhxfbn +nine5nine9fivekftqqgpttptrfstwonerm +three984 +eight99fourmflfdnxvbbmhqfgqkzhkffvmkjxjtngjb +fivefivetwo28zdjmpjccknine +5jjs5vpjzfznrngeight4 +five8one2xllhvb6six +threeninelnfkjrz14 +mhmqpq3hncgqgm43threefive +tjtcrbklrbzvnc4 +37twofourtwothreefour +htwone2threetwo3xtkgk72 +three9btgdgrpdvxkkb1gck1nine +qgnd4sevenone9one4 +lcstxnqmghgqzszkhnbf7threenine +five8four51ddl613 +3vslhppr +tworkcgshlckqjtxpkgcgbgppq6hdvshlntq35 +1eightfiveg5 +five7ztflnine4two +39two +tgone47pvb +37glxx23nhlmxvmvtwo2 +eightsix86twofour +46gznzktfqhlbsqz +171rldrjxcvbsfqmmzcdrnqhjphjqgktwo +6twob3xpfvfdxv79kqqcgljd +6three8hpjtvmvmjxkkmlvtwo +zdeightwomgvbfourfj6khtbsgttnsixeightstbnjmq6 +fhdcqdskf2 +mjssnpxchsclkhlh1threetwoxrbbxkcpkgsbxdxtxxbg +1jxzvllkb71vxxpkmqtvs +three74sixhcthreemgtbzsrh8 +sixtthfskgnine2three9seven52 +nhqzkththreezzsj8four +54fourtklcqcsltgvgqone +four7eightwoq +k3492scxsbbngtwofourtwo +two3ttwor +8snlnfbczd78sevenchzjdphrskjngfkseight +four1vxpvqk15ttcfkt +4twoqql +fhzj4lsvjg +7hstphfour4jsbcndd +7eight85qmjsixseven +1three6two +fivesevendxznmf9 +two54hkv6eight +tlkthdcfldvtzlnr7551 +168qtpcr +fourjlsmgtlvsevennine44hjcksrdfive9 +5cxtbmsn +2twolmtprmjhgndnkfive8qzrdfive +2vpstbjqlxgtpqkd +4dmcc35525one +486xgkdoneffvrleightnine +six1onefivetwo +b144lvmzmxfgntpjhzrk96 +gkgkgc7cmtghq6gbx5 +three87fiveeight33six +1hpkjqvz363vvzksonelfctrztjctthree +pfqdlvkrs9nfpmtnineone2three2five +48onetwovrnbz1two14 +nine5bgvpnjbltfiveonesixfive +nine4pqknine96spqdb37 +mfgcngxqxb41 +262sevensgfjjmdczrl +qzmthreetvjdxnine1gpjsmxtth5 +ninethreeplzkztkzlk1qhjvl4 +oneeightnine3 +onetk5 +fthkbqqfhrpkprhqmssix43xcgdzhtrf +twobhbtvtwo1three +ftbdrfnffzkllk59vc +6ncvrsm +7ftcmjbdmx +12fdnnnqvrrd3 +eight3fqpqlhfvbrqlhhvpdonedzlfive +fourktscmbltflone92fbcrpqhsevenhnpccrhb3 +qbtz5mdksqshdqxft96dvsix +tfpfour75dtgjjmzgjsgjbqdkpd +pxjvfivevhjbmqz4 +tknhlnldjm8five5bqbhzbsix +45zqht +3jrsvctdzpjjrbxznf25klxbnvhpxskthree +foursevenskzzthntbfivefive5 +eight84jtllflx2five8mqjnnl +5xxkcbgx6952qpzgpmczsc +five3mpqdccdmone +kninezsmvpjfhdeightbcnctnf8twosixone +34lpqxkcfjvsixshpnsixgrm9 +glhtgtsq4threetwo3 +eightjbtpnhvhxk46sevencfklxxvdvveightldqqtdtk +fsdfhthreefivesixrkdrgk1thjlfflx +ninekxr6djghngtqninefivethree +3qszkcdvcdl +9sevenxzcskrpgfiveninevcdmkpqqpp222 +jmgt6vftshlq1 +4mnmtbvdznmpmpkrp +94nine972 +rzthreebsjvthreenxqm2 +dxhrstvj344seven +1eightfivedtsstwojbxpnhjnzrgx9three +jlkt3 +fivethree7rfour1fournine +rzggmhlvfivesxzfour363 +4npxrvmxmmc7qjbcrhzsix5lbvkjpp3 +eight7ninefivernpv4cddqhtvkb5 +5threesevensixonesjvxjp3 +5tppjjgj4five +boneightthree92nine5tjppmvhtrfive +threettgpkqcvjzdbjgzk9four +6nzllfrrqkbgseven4nkgdddzbnhr +czjbvrqkone3 +msffqxbxc4294 +one83dxstl7 +32ghhrdt5 +eightsix27two851 +1pmkltwozrx295 +j5982 +81pspmvbbjninetxvpg +six4pprdn4twozpqndgdninefour +3hfthcgqq8682fivefcrfxxgd +nineqtxeighttnine6dttrznddl +htktrcx6gqv5 +txsixsnls1 +52eight +76fivefour9 +eight8tjtc +four3onejlqvgl11436 +dlpdv36 +7foursvdjchltr7qjsj +pknqzgvv3qsltsixfoursevenzggprjvz +3eightfive8one2two +z2eightwokcx +2sixnlhfbfsfeightseven +884qmtqcdcrd4 +keightnine9lpmspq7ninefour +43eight4five7 +twofourfourfourtjfmflt7hcxfpf12 +sevensjpbqjfnqtgcjtktfjhrdv5cr +6ztdzvcsqm +86xsdx +eighthmfgbvsixxcd35zfblslpthree +seven8twoeightpnzrsqlcv +fivezmbqpxhfnnmvbsv61seven63 +5vvddrt1onemvmdsvvfive +7sixpfblcglgj51 +s29 +qtdbb4oneone1onethreesevenseven +drj7six7 +6cfhssixnnjgcxgnmssevenmbfzxps +xbqdclktfrmlq5eight294zvtqhszfmtzd +8rnrcpphkrmfnc +seven77 +9gntctbb +tjgvxtbcn55mcjhmkgzkb +fiveseven9dfllnqdntjonemdztmclc3five1 +83zxfive +87tjnbrxnhzpnthxpnxgczmlghjppfgghzsixfour +6rfivetwonerhn +3cnzlm9eightlqgtjppxj +onefrttlfjthreefive3eight7brmcdrzdz +threeczbzscthreefive551 +2433sxdfjzshrfdpgseight +92gfsjbjdbd9bhsqjpx3nkdpjxs +71foursevenone +6ninedlf6ldnxdzhdtwoseven +fivegcpj6 +xssdl7 +3kcnqqhc9 +sfsrtwosrpjlhbcng6 +mvgeightwotbnzgrrc2tz22bpv1eightfour +94msix2 +tdzkqnbdrmrxfpm7sevenfivekqmhqldjfour2six +sixthree9three +1953seventhreenv5 +2onemhgmxdktf +5fiveoneseven8 +frfvnqxtmthreeeight4 +rphdqh24eightcpqxfjqqrchbtwo7 +76fivebjmcnfrnvpfour +8nine6mrxvppgvjsevenlhtrtnsxmzdnkhhjfcnfd6 +hfmjnine8 +one3rvbjqtfivecc +five6fbfkpdvvpfjq3kdbvhtrkvgqz +two2sevennined7 +five8fourseven398 +sixqccsqhgvhd3k1five +4fgthreesix +4xqgqfxltzx28jrfpqdmbtwo +three35twozhgkpltmvbfsdzkfpbrkq +zxcdrkhd8onepcmtkfmtkrphbhcfivetqhxrnttwo6 +six36rsvpjcj +9fiveqqdklbkonejpvxxteighthvthdsb +six32 +five83rthcrgdjqxsevenfive3 +ninerdrthxkhnz7hlgllpkgjc +jmzsq3two +seven9kmcmbvztgsseven7foursixfourseven +xpgtcr5hxgjgdxrz +rvgdt1b3sggthcldlsevenseventhree +seveneight5fbljmnfsdqc7sph5 +onetwo1nine8jpgthree9 +6ninekfqhgrtplninefive8 +fxsmdhnjgx3ngqlsjtjnq4vqcrmgfqcnffnvdgt5tmddtbhx +z49 +5eightone +6fivehkv8xtgthreeninesix +hshtfdbf82 +bgvonesevenrdtbhsl6zqxn13 +hnlgrrsmhskmxbmxnineseven55 +kpeightwothreezmdvm35onefiveseven +threefourskjcsmhjr32 +154nine8nineone9 +sixtwo77nfgncfzhbcbthree +dnxddftf7qxnxt +six2qlkmkgsfgdnch35hfqpcbvk +145 +xtqpx8nlzqhmbfpjcqqz9sevenone +kqspr8gbqfsvnttcfnfhjdncteightj4eight +bhrmk5fxdtbqbrzv +eight2prrttwo3five7nine +ninefivenrldsh1smcpzvdgmtzhbone +42dplrfkksn +psixtwoz5 +nvxmgsevennine95eight5 +five2onebxjtkkkzddcxfbpg +87ninebcsmzqjqhrfivevd6 +1eightclgrldksdkzt7 +136tgxrm +smzcxqsspl2hc6eightsixfour4 +51lpvxvzvjpdt72 +5rflgvvkrqlsninefivefoursevenseven +5eightssfq +qrvlvn46threegvcsqnpbbq28mvtvpsmfch +sevensevenfrk7threensxmfn +36fiveeightsixseventhreefour9 +lvxfour4three4q +sixlnrbbcvzdztwo3tj +eightclvcgtcrpmbstpeightmnine7 +2five4five6sevenvhmhk3nine +rjone4btcbrsix +621fiveoneightpt +hlv815fourtfvkr6 +two4657 +one1zninertmjxntmkdgrdsixthree +7one83nqxqdppcsxmlrcdone5 +dlctxttzvz6fiveseventwo96km +8xfkfkbp +79 +eight1three +11rrnrm4vfqjfkmfleights +9xglzqljbqhlseven +8lll2btggdnfsjteight +ddtwonekgrhnsffd8rdlqjmzfv599 +two2sixhdvgjz7three +7flfpmnrl1mhcgzblfourbsvftjkgbg +5sevenzstvcgdvk59nine1vn3 +kpkdqrp3two62six +two2nmpzfour8 +b2fivenine67 +ffgf1pbztdtwo47nzdxrcz +8two4s +tztwone5three +3lzbzqkgkh3four +18twonezps +fivefour4rjnsevenslkqltcdpznmfprnbzbztfvnseven +hmhlkcg6zp +3zcrdv16four +hnnlsknrjk4one9onezcfrx2cddnrbtq +4xbkl +6jdkxcvmx +4four1hb5tgfrntttjszgdhdq +vttlslpjtwo7fourqfzpbrninepr +sevennine5f +bcphcjvp7three +8q9621eight +88tth3 +7gddrxzpsix9jxstksdpkseven +seven3zc72np53eight +txxrlgqm2859 +1sixsevenjpqp +five24seven +6fqjcmngvthreeplxxtrklleight +eightsfpxsix439two4two +2sevennineone +ninexh8four9pdzjpnx +fourninecfzsrmonelcpdnsmhn5nvzp +onecpvhfvxsmnffcxph4 +hbljxvthree5twokxpbbmpnmhtmzbqmnlpnine +threefddbhtseven9qsplgqjkgstwoeightbqchst9 +two5six12 +ninebp962 +1two2eightsixoneightt +nineone1oneninethree9 +sevenone1 +fivegone4three2threefour +plbvtpgvdtwothree1kcnvxndf5 +svkfoureight294 +5nineonenhxfl2prgv7xj +9kjzjtdmcsninesevensmdbsxh +32bbcbggpsdvnjlnm5 +hllsdcxhtqhfkzsixgjb1cnjxzghksllfour +sixkqjkzfxnx6 +4fpmfour4three8 +gzbgcvf523onefivepqsqkqone +8one83 +sixbrcsix8fdhzvxcvchvlhx7ddpbltgxq +4sixhfrdpshdsixlvptxfjcplscxzg8 +fivebrxjceightone7 +twojmbxonefivefourmsqbnzxsgxbbh2 +five5lrzrsv17 +rtsgveightljjrkhskhqkseven6seven1 +74lcrchfoursevensix +49tlnbghzm1 +36nineeight2 +fivecccctcftfourfivetwo41 +foursevenfourmlrcjglthjd9 +94ninetwosixvbqslbxlone +qjjk76 +3six35onesix52 +612dfpgjlgfourfive3fourdmrn +9one2kctccfct +vbsoneightscfiverrvmsrxjcnbvpeight2onekkqhsjtx +742fiveeightnvjjpx4eight +139sixskbgfc2sevennmlsll +2nineztlb6pxgqtreighteight2 +six58bjjhsrxgrheight9 +nrmncthgr4bggpj +1pgjpxjdbhj +four5tjqsv47ninetmpjmmpcgftjmqq +threepnxphfourplcrpjfngjsgdninepv6fzghjjmrvn +756onejrtbpl3 +sixglcb8 +jqcfpvq46xmffour6 +sevenfbhqztmn96eight +2fjlcxsix8d +eight9fourvjjjpninepndvffivenine +mctmpckkjfqmdhgcdng5sfk6bgbg +onethreesevenrdgcqsldlv8jddcfncninetwo +gmkkbtndjlnzhqfeight6sevenggjrlqkzqv7ngtkfdpjr +4tjpqcjjvxndnhrfdllddptwo +lzjzfshq71ndzmpf6ninesixxjgrvqtrp +sevenhxtmvftb38937 +gxnrvjvclckvfkksslzjgf6kvqgpjbtwo +one9sg7jsvgx28threevsmpxtlrc +five4vvvrrmfj +1hkzflszztc45nine29 +36qbhjdxjr +glfmnmdqlfgxrzfsc2vcxmxcvjkrnltjpdsixgsrpgjnrthree7 +jnbgtjcnbvsf7hhmb +three9eightspggt +4f77sevenkrsvzkrlr +ztlrbheightseven6rcsflgpxnvfkrntbsevensbxjgvsb5 +six7nfcsksevenmkxone +zoneightnine3eight5cdgzqfq66one +8threefourkkkhvc68four +fourthreer9eight +dxzxrjptfmttnppfskctvbngmf268eight2 +2onethree +rtwone3seventwo72 +eightninegmfct96seven +4rcjltsng7threebxcsneight +nine54pghqbgrqjgzmjrgeightrzlbghr +nvggfgkzvknfiveeightsixthree43 +4fourjpzglr +83sevenbn9seven9 +mvgxgqvpbgmrcvdsn34 +sfjlninejbckkxlf8seven +three72threebsgtrtb1tmgjbngqxm +jqlx44 +1threexdftqfjcvl +nnkjmmlqvdseveneightkqlmmzzrpfiveonefour8 +9nqjzjjhhps9twonex +lzqxtpvztwo6 +47fiveeight8gnhcgldm2tlpsxfpsb +5one316four +9lzvbtlkzdgzcxrbtlthhqbdvklgkz7nine1 +threehjxknjnthreeseven2one7 +threeninehjbslk13 +sixeightone6pvdkkbvseven3 +gnlszqcmg8twotwo6 +gxttbccg2khzzpkdtonezqsteight3six +vtfjnxjjkmzppsjx9twofour +twoplbfnmkgql5fpfpzndddt +2threeeightjgkfivevcjlmc4onetl +2bzngbghgkdhhgqpgqkonesix1 +2fivenine22 +lhpxstx1mhgpndxlnk +one7ninetwo2fivethree +seven2sevenonenine9 +onezgpeight81ninekzgqsmmtrpqz +681qchvmrdldjs +nzlqbsvteight11nnnbhkdbvp8 +sevenxgqxtjdjpq3 +8ztonetwoeight +9xkmjfourfz +83four6 +m69 +two1blfseven1 +jdmkrkzkjjsdkkdone5 +7six3 +3one27ninethreeninesevenqzfkst +6nineseven9eight3 +one8zfrvtwoshlgvbl5ljrftn +one1165bjcpkpsjfxlnmz6 +72eightwoh +seven1one94eightsqzhnrfbx8z +sixeight2frplhhsxn46two +7gppcfcdl8 +nine94eightkjxpmzvq +nvf8sjqrncflgpdbone3 +68fourlnc +two5ppgttnk +nine28sixzxnhjr +7kdg38 +twol4qmspdsixfiveskjsbrfsxxjpkqdtsmkgpbc +five5nzlcdc45clclzrrkjthreeoneoneightsd +cvmxgrvfddx3rdthreefdqhxlzzb6 +sevenhzxklrz1threebzvgssix8fstqhzn +tfv866fivetlfive +knmzhbvhzfvrbkvsmnl7sixseven +zmbq9 +vqxqnzrpqvtdtmgndhs7eightnqpxcntfmjr +4vzpsdreight337hgvq +jone4ccn8 +nftdkmtmcz4 +nlnineeightmndkqz8nineonenrqm +nrhdxfsqvxcbcghf35eightthreeseven5 \ No newline at end of file diff --git a/inputs/pb1_p2_sample.txt b/inputs/pb1_p2_sample.txt new file mode 100644 index 0000000..4316a6b --- /dev/null +++ b/inputs/pb1_p2_sample.txt @@ -0,0 +1,7 @@ +two1nine +eightwothree +abcone2threexyz +xtwone3four +4nineeightseven2 +zoneight234 +7pqrstsixteen \ No newline at end of file diff --git a/inputs/pb1_part2.txt b/inputs/pb1_part2.txt new file mode 100644 index 0000000..96a4980 --- /dev/null +++ b/inputs/pb1_part2.txt @@ -0,0 +1,1000 @@ +14gxqgqsqqbxfpxnbccjc33eight +eight2sevenkl +mrjstg5onetwoeightgcczx8vgrgl +9246 +ninetwo2crrqk2grsctqxqbcrmrdsqbrz9eight +five6dlhx1 +29qhsdqqtgrk4 +mjgtrjnlttxjlsixsix5 +bgnnvfsnbpx29vsjrlmgmsqthreeqxvclkhlv +sevennine3gsmxncqlqvfktxrtcone +2mkzrqlmhsveight1sjtwo2 +rrrbvnrvnqfdh86 +94threeqrhkcpkeightfour +four83 +9ninehbsgkcthree1nineeightsix9 +57zfcgpf68 +hbonefourfour8lsnfgvf3 +seven79rqtqvjddc +two6six7eightqnmnppctxjrxbdxbdmbfkmv +9rdvkbxclk9fivecrxmtpzsxn8cmrzttlfour +nztfnthree2 +nxhjcqzlcxgdkmcfggc261gbt +xqfcdfdsrlhdktdjshllqgqshzmf7hpcdgdfcvntczdxxfqbvz +sbf43g +vsm922three7 +nthree1 +3eightjvtqcb1lkgkzhbgvl9eightfn +tfvv2zz5xmckbc1sevenfour7 +fivesix6two7cptgpfpd +3skfjrzbjpeightdkkkjq +68onefourxmznzlfivesixfqmfchn +12rzcscnkxsbc2ninetwo +jrmmvsdjvftgnrz33five +bhdxxmb36ninedmrlrstrmrbvz +1seventhreenbsth136kzrgdvvjp +7nrc6xpl +fourseven4nineone +8zxncrhffcmq9threeeight +5seveneight4three9 +8ghsxbzoneightg +qtwonesixtwosixvjmnhqbbx5 +sp1psqkctzqnldbdhqsmgsixfivepjnnvsxdldtwoseven +9ninethreefqqlztnrtgcbfourxdgltgft +zsix14sevenhqkgfh +nt3 +dhdsktwo9 +8cmjzrsmr +4bdspt8 +qvzgxjp7six +ninethreexqvzzqhjsthreefivetwo1 +kzhsgr5tpzhxeightpqkfj +twozclthmcx1phkcvgrlbj7fhmcph3eight +9lkctcvgxr2two8rxgkdbx +khfgllh7kchfq9xbnrqrseven +ninekqmvfour81seven +xsfpksix65eight +eightf24oneone +24581snlbjpfronenine +nine3eightjqshqxscvzvskspcmdzd49 +6mfqf5one +zrzzlchrfl167n1 +nsxqfspq9 +7mggsvthrnckcsctjsxlmxghqeightsix13 +sbpkxkmjkxcmg4 +eightonethreevqkjkxnnine2 +kntj2vkcnrkjonefnqddll6 +zlbnprltbkgmzpvtqmvzhpvhrb3ntrzhkrbvd6twoltkpsccvbk +6seven5196fivesix +vj8 +seven5fourthreeeight5 +lqzkbvdtxs3hbqr +7gmfzfcnrone66nqvkmthreekdhfkrhone +nsxftsvssone2fivefive1rcvlzltfdzcgsh +8five1eight +7ljfbvnrbghgkhstwo6vmnhxdteightfour +hdnxc4zjqrbr +5ghrjjbfshonek1sixrvnnkhpd5 +threetjxxlvqfvdcj852dkxlthree +xbpqlbrgcbkzvbjdt8 +cbzeightwo7npgjjxfzrvz66 +zktrxkjpchjxzmpq2 +five1lbdhrsix +5qldpfkqjkfjdzpfhf86 +vnbrnsskxphxv22 +4chnggbxmssnine3 +4k9one +2twoneh +6kgbvpsl5threecxf +562six6 +tsdvbzxpkqbkrpvht33hxhvmjnltwo3 +7fourone +ninesix2sixsix1fivenine +fourbqvbqftvzz88sjszkgxhrtlshkdjq +sfsrfsevenpgpmffthreezzsfb3 +8fivekvmzz4rlrscnxmx15 +jvteightwozhqsnvffxg3rsjmszc7fssnbhrtwo +fivenineqsvpgbkdxlp355nine +9jbfive +zsxzdcvsjln65 +nvcc52twonine83fq +gcnpqqfhq2 +jspfdkpxl4fourbstlcvdhxhjdgxvpzbvltwo6 +8sixsix +fourtwohsqhmnjmph7 +one3eighttwo +tshglpdmjbsgsoneplbjqcsrxseven8 +42sgr296mpkdz39 +bxsevenone25two +two8fivefour +three4cgjttdmfqonenine +eight5sixeightmxzzqmt795 +threebtnlmrrqgnine9fivezdzgldkxnbvhsvzqnine +one14tqvqgn1ninevkzhrqfqdjprzxb +cqqnine52cjmteightgbb +vhhkrrbhlp9dseight +fjzfmqv1bsvqbtpvvzcvqvxnlptk +five6three1zvgznsrvnpmnine +cfkxfmeight18hgkclhmcfcfsjzkztwothree +fivesevenonejmmrjvhznffive4jbrvdhlcpj +gbboneight47xfmqzt8 +sixmjnfmjtsszvc4sevennineonexc +kfsnggdldp33four +56hj2lqncdfghdbgdkzpkr +63five519bztrxx5 +3eight3six9xvdfhrcmsm +drcjrlst5ninefourxcm +4five3dmjbnbeightvxtbbvxdpfourjvj3 +lnmqnine855four17twoeightwolx +lnkffrtmv9t +mmhrvrpbvrcmpczvknkfourcqktxx73qbgd +khbrlcvdpxdkljvkhnfrvtpmbeightgzms2 +shbr9fzbvzhhqmnnine76 +x93 +3onec +v5xskfrg19five +ncmtbgdkfour7fiveeightfour4nine1 +3dtdjs38ggfljpdvv +fourthreevfpmztnzzcf96eight1 +onesjmdmmmcgnvhdnczfzznrvrggkgpcpcggqpkkkcfbq6qpsv +5nvhksixtwothree +d4qhmsljqhmcqlxln2dbd64 +zrshqtseven9zkpmzksqcsptfkkn +9pk +51jnqbzgnlhcglfour5three +8snxnxv3817 +tsvd4 +lzfxkxrcktjlvzbnsixfourthreenineeightone4 +lxdz9326threefouroneseven +6zkgmhktdnfive +zonekfbbcqcsdbkc4fivexpnhssdgbbnine +8zcdxcbhm7seven +1fldmtvgnine39eightdrmrtzkcthree7 +8sixxlztjhjkxtppmrtfour +threekvjx68twofiveqtzfg2fbhnhrdztv +6pgvzdbgjnlctwofourxzpc3xzdc +sixdxpnthgkfmddvqhrvsixsevenx4q +ch29onepqnine +sixlnh68 +1one5rqxz6nine7 +cone9 +fourseven3kddtmbjhnkz9kxhzspvtdngvsix +3sixnrjcxv1 +onemdts29zrbh +beightwo2eight816nnzfhptjhfqvqq +lfmxzp44cqkthree +gl4qsevengltwosix +2eight3qqkksrsevenxkndsxt +eightzxrflknj9jpbmt +knqjgjjjmkninezzfnbcdmqctwozskxsgd1655 +qpfdjsmsqfourfiver49f +vsix1xpglmcbdp +vgqjvzzcct7one674 +4csdttrsd58fivesixtwofive +bslfsjhrl8cszqrppqskthreenine +997foursixeighttftrnktp1 +3ndqmpzs6jkpcvjdltgbfgvlcn2 +lsxprcgkfivesix8eight9onenbdxqbl +seveneight3eight +eight7sevencvvshpgfg +8zg7two +5sixsixtwo +six7two +jjcxmsixhbtvfx2twoxs +9xtg +3onelvrpcvxk +ninetqzpbhxsspcfjlvsg3qlnbbqfxdqnine4one3 +xplhfgfour49 +jdrzrkkzdkgvhsvbm6bqfgpjbvhxlhtxhhpmmtmvqbgnmzpkm3 +hrjqkmvv1bzm2krs5 +vfztwonepdlcn96seven5 +1mpkqmccqqdsmhdgjjgrrtsbconehpfgfnjtxtqv5 +one9qn8threeeightnmqvfjkklg3 +5kgkst4ninegnqnjgmtdpfzspmkk +pmggrbfxghr53eight7mjlzgzv +4fourone +lbjfvxjzd7fivevllrtvfkmeight6 +xtl9 +ninevonevljrvx9 +sevensix7sixhbeightone +npzmcdtdqfpvonenine9rsktdrrnz9six +4six55 +eight646gdvfkjqsvnczbxtwo +5seven5jthree +cfourfhmxqjmseventhree2sgkxm18 +mfxnnjjxtjzlljgcnfpvb6cmknzb +4796 +kzxfnrqktwohmp9cclstwo +vgzgmc1zlsch +lvpnb1five216mbdxgvfkcg +3onezjnmv9fourj +two8vmpfmqmq6 +p8 +4oneeight45 +827eightsnvlrskzlbnineeightbtngkb +kdfxtjj2 +csthreesevennine7seven +hqqjrzkkkh84 +six42four +nine259five +8jngjtkdnine +3ph +8gccpsqfourtxtlbvmvb8n +oneonesix7jdkzfxkdvttwo26 +xkfsdgkjt34vq +98twosjrr5eight +foursixfive9 +17vmxlvqpqmvnfchhmxmdcpzgrsjl3nine +pmzscpthreevone3kdgqldjf48 +dzhoneightonevxtzqsqxxpgtgrdl73 +4threebbsttfhbdtwofivezsvspjp +jlstdnkjgdxszmpv2tgvpbdhdrkdjjvdbscv +4mqqxrsfrfhsbxprbxrgqseven +3rklddqfnczjfhjmkrgrkslxninesix +9jpcvnlvb3lzqzkvlnqsseven +8ngm64zxplgcdxzdzgfqmtworprmndddr +fivefzhdggmfslthreejmsrq8dxzdzcxsj1 +75six294xbzhjxd2five +56746 +jjxxqclf6eightfive7 +fiveeight9eight +npdgsll2twoxfzq +66fiveninerrbgrshthree9 +nine124nkcsltwoqdlvr +eight4vlsddsjxqthreep8xd84 +mqsbzgsszonexlhljdhdt9kjvdvbmqc +shpxspqrck441twoxjhgthz3fournjtxzgbs +2threegtqmddnine9two +rbdvrngvrjsllkrc542 +p6dckscjkhzfqvc +qblzhpspf4glsrbxm923six +4mfbjznone5svkgvsr47dvtbltlmns1eightwob +5sixsix1twofivexjn8 +5fivefournine4 +gzhzlbkzrlsix5seven3tm +eightpgqrhfqsix41slrs6three +five3dtfzfour +6813nine +3sevenrnhznczgb +mmcgrkjhbsevensevenvrhclthree2 +pfourthree9ninenine +9fbxvvtbzkttwoftv7 +mmthree94fbm +1vsblnklmm2zqmntkp +oneninefivenineone2threeeight +4sevenxzjfxbfdzgfgvjgjdscninetwo4 +64sixfrmtmjoneightt +gzzlqqjsevenone5 +1twoxpcqcvgmhbcm8thlrzmplqpkrbjrqr +jgjqqn291foursevenonefnrdhxt +3bvznvqd8oneeightzchdjvj +ntqtg1 +hsqkbfnxcbsixmvfhxrvxrvnineseven4 +bkztqhhbdzr1sevenonenine1 +v79zpdqfive +tqtwonesixlhhnvf77one1 +2twofour +eight89seven +7six6fmzlrttxstdrg +seventhreecbldkqd89threesevenpplfv +7hmhxpg +threepmvqfc5rktgjl4xvdzmhrninef +7qnlqhtrrk1sevenqfgpkdfc271seven +4gxrqspvg1 +zdgfscbzbdg8rvqseven +eightsevenfour5 +five8five +xprtcnxztmfgtwosnsix5six5 +zpjrhddxfzhdm7pzhxnzsp2six772 +43five92sixfivefour +6kjknjjrjkdfive5sixsevennjone4twonexr +11sevenhvsrb5fourhzxrmgfsl5six +2kbtkmsdfkdzmfplone +68onesevenone7one1 +one36eight +89srlblvkzrjone1 +7threekmzvhxpsdc1 +3648pmjmj4 +fivetwothree8eightonev7x +jlkvd1tgjvdqv48three5 +tvtwone1rhcbkfcj82eighttwofive63 +rkpvjgsfmhbvd7nckshnmzknine +8md7xh8bvsdmhjdxq +threejzrnnfczgzdmcchv5hv4eight +8lqnnnpmfourkndkf926 +651jfltzffxh +onehzk5foursix5 +three7sixfivefive5twonine +four3fiveonef57 +5seven5pbqmzzkqsp +none8five +6threefpqx9eightkhmrgqm4 +ndgmck187mjkxccsdhknine +2jtwomvxjnnpmcseven +bdfnkbhbbfvztpseven6kgknpxmxdfoureight8 +cxtwoskgklsqkdpfive8twohq +5seven67two8dlzmttpdh +cdkzhtk2fvmdtphsxk +threepqcgj8dkfgjp +56tgggrrgdnveightwolc +ninezsix1rnpponedpkqrpdthree +vmgtq3six9 +nhbjgxsixsrrftdt3fivedcdqqq +6fivevqxphgvrflbvljlone +ninexbjtwothree4 +heightwocjpppfive3vlcpc2bt +tbtxlftsnsnknine5q2 +fivemfqlxlpgbpjgnvpfthreefivejzcpkone2 +5dmzkpmpghsixthreenine4 +two9seventqzb578kmfrvlj +six855three +2kddfgninezgsonedptb +1cbbtg1kffourmjxbnvfgjfiveonemgbjtmd +5threec5nine +pvgd5sf7three1lnrfive +83mtfjsrln6 +khtglxc3 +qckdfjbz289nbhnthreehljqfklhmjvrgxt +5kmslxsixsix72 +jlcfmqh5nine +454fournine +jgbfzxdsfpcjpsdlhs5gbsnjxhsfivesix +scxsgsevenseven6fdkcpzm +cbznsevenddvdql431 +fivefourpj871 +xoneighttwo5css4 +sixsevenone49 +xpvktkbdzc6threenine7nine6cnxsdeight +6nlsg8zczsblcppjmbzlnthree3 +jlhzvzskseighttwo1twofivefournqzeight +smmsszqpv653sixsdp5onefour +8nhgxc +cbskddhjq1fourfourj +vqnjgcml5vvggqqlhvdtwonetg +4gdhf1bxrhlnslpnglcx7rhvgnhzjvstwo3 +8fourfive9fivenine4one9 +5xbggkdbkddmfknsxpv +9fivekkttcpntr +cvltwo4 +1four62 +9ninevc +nmfrttms6czdhrdchfkntonetwogc3 +8dfbqlpz9 +fivesixsix595nine4 +6mmpks71nine +ndhdkddjchhseventwo33fv8q +ninerbnhsxkninemdthft1seventwonvgdcgt +twosixbmthh3srhdtnljqlqsbxssnsix +seven22ninedplffive +xpsh1twoqmhkqqsjz +8vrxzhkq +5ninegr +five9nqcmxngktwothree62threethree +qffhltbnineseven9reight +threerqddxgmjnj2 +seveneightqxxgmrzxvhdnine2seventwomtkdmjbkfh +9vppxpsnpdfourdmtqtbm2hpgqlgr +seventhreeczjngnklxg3nsfqzqqeighthcggbk +fflnhnnzncdnh9twoqhx +fjpqseven5noneseven5nined +kdnhflninenine2eightfivemknllfgqspbcrjklx +jmgfqhchzmdfnpthhhcc291shhdqp +5bphvpcxvdf2five9nine6four +9gfpnzjkmlb76xreight9threeqvjxpssvrs +4hpsix6five1ptrdlkfmgr34 +1sixnkvfkvdfjqtwo36eightjnfz +bzstgfhrmmfourseven6xnfvonegzc +fivesix426vgzshhklnknbclnbbpm +k5threetrkghrbcn +13nine +1vlrvlxrsrznlpf +9tgzzddgr1b2 +6sevenrzvcqzsckkqbtsevensevenninehbmlxbzzlf +1991vkjhdp +9jkhnrjjv +6seven47sstqkbthreefour9bmkfbxrzp +seveneightnprhzf61725 +oneone7eight7cpll67 +8eight7one +23bthc337qxhmfbgsix1 +9r61vtgqklone +oneplh6 +four9kfmzbgxlhlxxjf +mhk95 +csdfsix71seventhreesevenfour +sqhrc39 +6three2 +four11sixtwofmvgjvseven1five +four4ninefourkmz2 +mqm5seven3five +sevennine63sixvtwo +81rrvgzzrkzmgsgffvgxlrfbmqxczhtl5tvj +vq8qmg7geight62 +1twoqmmfcseven4six734 +9ghstzndfnmzbtdscl +88twosix +8five5eightworh +ddqdflzbhr68mrdc9 +2threefdb77 +7nine4rbfknbtnsvljnqdtz47 +xrfdfcrtqssx79dvhzls68 +cvqjp6fxkdx9qvsjqptvs +hbzjllr1 +1985onezp2nine +6sixqk52lpftrt +zfqqj8 +c4rljszsspxnnvjl1two +78phbjhkmjltcrxqdblfthreeeightvndtwosksxsxccqz +453gnjntwosevensixfourtwo +2fpnkqlzvmlbbkfxmqgrgv3tbtrkmprx +ffive5f3two +2grzqfmnrld +twofiverd76566csz +eight4zftjjzrkx +onefour8nvrxkqzrfthree3hvzk +fmzqklgfh76lcpjxlvrmgfqpnine8 +nine9xjvvxdvksqrqlhqvrbjvx1 +vlfcpfvl8msxhnftleightwop +846ninethreetwo6two2 +4mjbcckzrhtwo +blsn3onesixfour8 +14two +five3fivesbhfour +onevpqdqds5eight +pcvcsnhv861oneeightfoursix6 +csix7vjllblmgjg +mmn4threesix5vxdsf +v1vx4fivefive4fivevjfjvkf +53tsbldc9skgcshbvxdd +1595bxscggsspvjnbxx37six +seven883 +35sixone4lbzcbgk +tlmvbhjnkknz3nineltztzpclxsixzjnbfvseventwo +rccrkvsvxjbchfive933 +5shkktwokfkkmrxzsssix +five93three +8six44snhpssteightwomjv +nine1nrrjrvjfml4dcklljns +pclkcskcp428199 +fivepjvbtstwojshbgxmdr24eightsix +6eight4 +mjjghhcqrttcjrzhjjrc2five +xkhxgsqjstsevenfour4 +3one5gvmhcbkkdd6 +v3nine9threepfphnkthree6three +ml8twoxnzgqjx1rxbpjnonezrp +one8dtxklgmlnbqhpxl4 +1foureight9fourkmp9 +6vzzdgtfourxtzglhxzvcs +rg4onejhpgsfgpdql +sqpeight488four7svb +63five +39khkbdllxv +bdnjhtcqrxrnnjflfrx5366ninesix +tworfrqzgl85twotwoeight5 +jxeightwo8ttdxhc6xqphg9ntmrtrmxfnjb9 +933rsixeightzbkqkb +1onesix4onefour6d +three6vxnhgxbdxxmdmmggmnxtwocrvftworpsdrrkx +5nineeightninezvf +5jfour +zftjzrfjz8 +8four5nine84mpcktbm +vgg6five5pr8 +3sixtwotwo7ppfsbfppbkmjtlktrx +sixnhcl6bxjxdmgt +pdqfvzgsps9eightj +sixfive87hjksxxbgz1prvfqnnsfmfive +tztgzrnineseventjqhxn3 +twoeight3zthree +nczc3two +jdklbdr4 +j93mnmsixt1 +2fivenine2two65xhcjfnddbqlbd +six48zsklgprrvklt319 +6seven1threephh2bldxvrlln +88threeone +hqktgxxtwonine2 +14fourtghmvcbbnkxkhrvncskgthqqfkgpbrln +threen7rnk5zgjfvtlcs +nine87two56 +859 +six8q7twohnrphb +93oneninethree4 +one7nbzmqdxmj5qfxzcmxfkx +3two2two96ninecnkbt9 +fvcqktlf8two +six4nine4fiveqjthree +91qgvlq6eight3twofive +79sevenfivetcmcsrvvlsl +6bnssix +threefoursix8eight2fivehpp +tlxmqclgdchq8 +threefourthreelbd15fiveknzhg +ktqk68czbjrbkrlnmg3 +oneonerptgcnqzt6fpthmjhgxc8 +rcbfpqhxgjfgfgjcm3 +bxbbqcvvlfivefiversxqpmcb87r7 +two1eight +96sevencktptc9fmnthrdthree +fivehkzxl9five +twosevengsblkmgfzqndznine2seven +two58rlnjdqninetwo +5fiveonesxhbkcjmctwosix +seventhree8952bpqccspldk +8fourpfcvrvc1one +bpbtcnzk27ninemltwo +five2tkqfivethree88ggmpg9 +seven6seventhreemfmnmmbsn +three61xrfghoned9eight +mcffvkprk1one +hvkxcdqcthreetqcr3threeseven +8nmbnhbdseven +bdzc8eight +bzp292one78rthree +ninexsixone71zdnqlcxrphnnbxsmpc +ninempgdsbbdr7 +8eight2367 +15113onelhgvmp8 +8f7gpjllpllptonecfhhpqvcr +ztjj6nine1xsltr4 +nine27gkkjnkcqzt +9gr28eightthblghdkf9lcs +sevenbbjnprlqh1tphfbhbgvlsix33fournine +3sevenfmccnzqxfsfnctfrfngtone +six9xcvlflj +9fqcz1 +one63one3kpnthgscdmtjprseven6 +tlrkvjcdx7txkzrvzcjcvvljfcljc +rfrsfive2ctdmdnqnpfzvvseven +1trdgtvl648frnstf +bxkqchjmphmbnjrkrxxcntpxjnine3sixnkffxsb +84sxd +397lfjmzbp +sixvqjthree2szblfstz +29six833 +bnfnnine8nvjjprkmfourfourfour1 +gb93b98cxblqxskm +3zmggzvlvscbkblhmj4zsevencxgjxsbsr +smf1 +zghrszzcvb5rtnhzktts4 +265qvrzllrctoneshgcbdsbeight +2eightbjvlsixmseveneight +tqfrgkqzbtxqcbxvjzgtp1four +pmrrnmtt1kcf8two +49bnp1tmcglrtpt +4three2ggmbzgqltsqzzjjn +six7frvkdsxdktwo +7cjsnbps7bgqzc +oneoneeight8xbfnnldvpdv +568 +6rhxfbn +nine5nine9fivekftqqgpttptrfstwonerm +three984 +eight99fourmflfdnxvbbmhqfgqkzhkffvmkjxjtngjb +fivefivetwo28zdjmpjccknine +5jjs5vpjzfznrngeight4 +five8one2xllhvb6six +threeninelnfkjrz14 +mhmqpq3hncgqgm43threefive +tjtcrbklrbzvnc4 +37twofourtwothreefour +htwone2threetwo3xtkgk72 +three9btgdgrpdvxkkb1gck1nine +qgnd4sevenone9one4 +lcstxnqmghgqzszkhnbf7threenine +five8four51ddl613 +3vslhppr +tworkcgshlckqjtxpkgcgbgppq6hdvshlntq35 +1eightfiveg5 +five7ztflnine4two +39two +tgone47pvb +37glxx23nhlmxvmvtwo2 +eightsix86twofour +46gznzktfqhlbsqz +171rldrjxcvbsfqmmzcdrnqhjphjqgktwo +6twob3xpfvfdxv79kqqcgljd +6three8hpjtvmvmjxkkmlvtwo +zdeightwomgvbfourfj6khtbsgttnsixeightstbnjmq6 +fhdcqdskf2 +mjssnpxchsclkhlh1threetwoxrbbxkcpkgsbxdxtxxbg +1jxzvllkb71vxxpkmqtvs +three74sixhcthreemgtbzsrh8 +sixtthfskgnine2three9seven52 +nhqzkththreezzsj8four +54fourtklcqcsltgvgqone +four7eightwoq +k3492scxsbbngtwofourtwo +two3ttwor +8snlnfbczd78sevenchzjdphrskjngfkseight +four1vxpvqk15ttcfkt +4twoqql +fhzj4lsvjg +7hstphfour4jsbcndd +7eight85qmjsixseven +1three6two +fivesevendxznmf9 +two54hkv6eight +tlkthdcfldvtzlnr7551 +168qtpcr +fourjlsmgtlvsevennine44hjcksrdfive9 +5cxtbmsn +2twolmtprmjhgndnkfive8qzrdfive +2vpstbjqlxgtpqkd +4dmcc35525one +486xgkdoneffvrleightnine +six1onefivetwo +b144lvmzmxfgntpjhzrk96 +gkgkgc7cmtghq6gbx5 +three87fiveeight33six +1hpkjqvz363vvzksonelfctrztjctthree +pfqdlvkrs9nfpmtnineone2three2five +48onetwovrnbz1two14 +nine5bgvpnjbltfiveonesixfive +nine4pqknine96spqdb37 +mfgcngxqxb41 +262sevensgfjjmdczrl +qzmthreetvjdxnine1gpjsmxtth5 +ninethreeplzkztkzlk1qhjvl4 +oneeightnine3 +onetk5 +fthkbqqfhrpkprhqmssix43xcgdzhtrf +twobhbtvtwo1three +ftbdrfnffzkllk59vc +6ncvrsm +7ftcmjbdmx +12fdnnnqvrrd3 +eight3fqpqlhfvbrqlhhvpdonedzlfive +fourktscmbltflone92fbcrpqhsevenhnpccrhb3 +qbtz5mdksqshdqxft96dvsix +tfpfour75dtgjjmzgjsgjbqdkpd +pxjvfivevhjbmqz4 +tknhlnldjm8five5bqbhzbsix +45zqht +3jrsvctdzpjjrbxznf25klxbnvhpxskthree +foursevenskzzthntbfivefive5 +eight84jtllflx2five8mqjnnl +5xxkcbgx6952qpzgpmczsc +five3mpqdccdmone +kninezsmvpjfhdeightbcnctnf8twosixone +34lpqxkcfjvsixshpnsixgrm9 +glhtgtsq4threetwo3 +eightjbtpnhvhxk46sevencfklxxvdvveightldqqtdtk +fsdfhthreefivesixrkdrgk1thjlfflx +ninekxr6djghngtqninefivethree +3qszkcdvcdl +9sevenxzcskrpgfiveninevcdmkpqqpp222 +jmgt6vftshlq1 +4mnmtbvdznmpmpkrp +94nine972 +rzthreebsjvthreenxqm2 +dxhrstvj344seven +1eightfivedtsstwojbxpnhjnzrgx9three +jlkt3 +fivethree7rfour1fournine +rzggmhlvfivesxzfour363 +4npxrvmxmmc7qjbcrhzsix5lbvkjpp3 +eight7ninefivernpv4cddqhtvkb5 +5threesevensixonesjvxjp3 +5tppjjgj4five +boneightthree92nine5tjppmvhtrfive +threettgpkqcvjzdbjgzk9four +6nzllfrrqkbgseven4nkgdddzbnhr +czjbvrqkone3 +msffqxbxc4294 +one83dxstl7 +32ghhrdt5 +eightsix27two851 +1pmkltwozrx295 +j5982 +81pspmvbbjninetxvpg +six4pprdn4twozpqndgdninefour +3hfthcgqq8682fivefcrfxxgd +nineqtxeighttnine6dttrznddl +htktrcx6gqv5 +txsixsnls1 +52eight +76fivefour9 +eight8tjtc +four3onejlqvgl11436 +dlpdv36 +7foursvdjchltr7qjsj +pknqzgvv3qsltsixfoursevenzggprjvz +3eightfive8one2two +z2eightwokcx +2sixnlhfbfsfeightseven +884qmtqcdcrd4 +keightnine9lpmspq7ninefour +43eight4five7 +twofourfourfourtjfmflt7hcxfpf12 +sevensjpbqjfnqtgcjtktfjhrdv5cr +6ztdzvcsqm +86xsdx +eighthmfgbvsixxcd35zfblslpthree +seven8twoeightpnzrsqlcv +fivezmbqpxhfnnmvbsv61seven63 +5vvddrt1onemvmdsvvfive +7sixpfblcglgj51 +s29 +qtdbb4oneone1onethreesevenseven +drj7six7 +6cfhssixnnjgcxgnmssevenmbfzxps +xbqdclktfrmlq5eight294zvtqhszfmtzd +8rnrcpphkrmfnc +seven77 +9gntctbb +tjgvxtbcn55mcjhmkgzkb +fiveseven9dfllnqdntjonemdztmclc3five1 +83zxfive +87tjnbrxnhzpnthxpnxgczmlghjppfgghzsixfour +6rfivetwonerhn +3cnzlm9eightlqgtjppxj +onefrttlfjthreefive3eight7brmcdrzdz +threeczbzscthreefive551 +2433sxdfjzshrfdpgseight +92gfsjbjdbd9bhsqjpx3nkdpjxs +71foursevenone +6ninedlf6ldnxdzhdtwoseven +fivegcpj6 +xssdl7 +3kcnqqhc9 +sfsrtwosrpjlhbcng6 +mvgeightwotbnzgrrc2tz22bpv1eightfour +94msix2 +tdzkqnbdrmrxfpm7sevenfivekqmhqldjfour2six +sixthree9three +1953seventhreenv5 +2onemhgmxdktf +5fiveoneseven8 +frfvnqxtmthreeeight4 +rphdqh24eightcpqxfjqqrchbtwo7 +76fivebjmcnfrnvpfour +8nine6mrxvppgvjsevenlhtrtnsxmzdnkhhjfcnfd6 +hfmjnine8 +one3rvbjqtfivecc +five6fbfkpdvvpfjq3kdbvhtrkvgqz +two2sevennined7 +five8fourseven398 +sixqccsqhgvhd3k1five +4fgthreesix +4xqgqfxltzx28jrfpqdmbtwo +three35twozhgkpltmvbfsdzkfpbrkq +zxcdrkhd8onepcmtkfmtkrphbhcfivetqhxrnttwo6 +six36rsvpjcj +9fiveqqdklbkonejpvxxteighthvthdsb +six32 +five83rthcrgdjqxsevenfive3 +ninerdrthxkhnz7hlgllpkgjc +jmzsq3two +seven9kmcmbvztgsseven7foursixfourseven +xpgtcr5hxgjgdxrz +rvgdt1b3sggthcldlsevenseventhree +seveneight5fbljmnfsdqc7sph5 +onetwo1nine8jpgthree9 +6ninekfqhgrtplninefive8 +fxsmdhnjgx3ngqlsjtjnq4vqcrmgfqcnffnvdgt5tmddtbhx +z49 +5eightone +6fivehkv8xtgthreeninesix +hshtfdbf82 +bgvonesevenrdtbhsl6zqxn13 +hnlgrrsmhskmxbmxnineseven55 +kpeightwothreezmdvm35onefiveseven +threefourskjcsmhjr32 +154nine8nineone9 +sixtwo77nfgncfzhbcbthree +dnxddftf7qxnxt +six2qlkmkgsfgdnch35hfqpcbvk +145 +xtqpx8nlzqhmbfpjcqqz9sevenone +kqspr8gbqfsvnttcfnfhjdncteightj4eight +bhrmk5fxdtbqbrzv +eight2prrttwo3five7nine +ninefivenrldsh1smcpzvdgmtzhbone +42dplrfkksn +psixtwoz5 +nvxmgsevennine95eight5 +five2onebxjtkkkzddcxfbpg +87ninebcsmzqjqhrfivevd6 +1eightclgrldksdkzt7 +136tgxrm +smzcxqsspl2hc6eightsixfour4 +51lpvxvzvjpdt72 +5rflgvvkrqlsninefivefoursevenseven +5eightssfq +qrvlvn46threegvcsqnpbbq28mvtvpsmfch +sevensevenfrk7threensxmfn +36fiveeightsixseventhreefour9 +lvxfour4three4q +sixlnrbbcvzdztwo3tj +eightclvcgtcrpmbstpeightmnine7 +2five4five6sevenvhmhk3nine +rjone4btcbrsix +621fiveoneightpt +hlv815fourtfvkr6 +two4657 +one1zninertmjxntmkdgrdsixthree +7one83nqxqdppcsxmlrcdone5 +dlctxttzvz6fiveseventwo96km +8xfkfkbp +79 +eight1three +11rrnrm4vfqjfkmfleights +9xglzqljbqhlseven +8lll2btggdnfsjteight +ddtwonekgrhnsffd8rdlqjmzfv599 +two2sixhdvgjz7three +7flfpmnrl1mhcgzblfourbsvftjkgbg +5sevenzstvcgdvk59nine1vn3 +kpkdqrp3two62six +two2nmpzfour8 +b2fivenine67 +ffgf1pbztdtwo47nzdxrcz +8two4s +tztwone5three +3lzbzqkgkh3four +18twonezps +fivefour4rjnsevenslkqltcdpznmfprnbzbztfvnseven +hmhlkcg6zp +3zcrdv16four +hnnlsknrjk4one9onezcfrx2cddnrbtq +4xbkl +6jdkxcvmx +4four1hb5tgfrntttjszgdhdq +vttlslpjtwo7fourqfzpbrninepr +sevennine5f +bcphcjvp7three +8q9621eight +88tth3 +7gddrxzpsix9jxstksdpkseven +seven3zc72np53eight +txxrlgqm2859 +1sixsevenjpqp +five24seven +6fqjcmngvthreeplxxtrklleight +eightsfpxsix439two4two +2sevennineone +ninexh8four9pdzjpnx +fourninecfzsrmonelcpdnsmhn5nvzp +onecpvhfvxsmnffcxph4 +hbljxvthree5twokxpbbmpnmhtmzbqmnlpnine +threefddbhtseven9qsplgqjkgstwoeightbqchst9 +two5six12 +ninebp962 +1two2eightsixoneightt +nineone1oneninethree9 +sevenone1 +fivegone4three2threefour +plbvtpgvdtwothree1kcnvxndf5 +svkfoureight294 +5nineonenhxfl2prgv7xj +9kjzjtdmcsninesevensmdbsxh +32bbcbggpsdvnjlnm5 +hllsdcxhtqhfkzsixgjb1cnjxzghksllfour +sixkqjkzfxnx6 +4fpmfour4three8 +gzbgcvf523onefivepqsqkqone +8one83 +sixbrcsix8fdhzvxcvchvlhx7ddpbltgxq +4sixhfrdpshdsixlvptxfjcplscxzg8 +fivebrxjceightone7 +twojmbxonefivefourmsqbnzxsgxbbh2 +five5lrzrsv17 +rtsgveightljjrkhskhqkseven6seven1 +74lcrchfoursevensix +49tlnbghzm1 +36nineeight2 +fivecccctcftfourfivetwo41 +foursevenfourmlrcjglthjd9 +94ninetwosixvbqslbxlone +qjjk76 +3six35onesix52 +612dfpgjlgfourfive3fourdmrn +9one2kctccfct +vbsoneightscfiverrvmsrxjcnbvpeight2onekkqhsjtx +742fiveeightnvjjpx4eight +139sixskbgfc2sevennmlsll +2nineztlb6pxgqtreighteight2 +six58bjjhsrxgrheight9 +nrmncthgr4bggpj +1pgjpxjdbhj +four5tjqsv47ninetmpjmmpcgftjmqq +threepnxphfourplcrpjfngjsgdninepv6fzghjjmrvn +756onejrtbpl3 +sixglcb8 +jqcfpvq46xmffour6 +sevenfbhqztmn96eight +2fjlcxsix8d +eight9fourvjjjpninepndvffivenine +mctmpckkjfqmdhgcdng5sfk6bgbg +onethreesevenrdgcqsldlv8jddcfncninetwo +gmkkbtndjlnzhqfeight6sevenggjrlqkzqv7ngtkfdpjr +4tjpqcjjvxndnhrfdllddptwo +lzjzfshq71ndzmpf6ninesixxjgrvqtrp +sevenhxtmvftb38937 +gxnrvjvclckvfkksslzjgf6kvqgpjbtwo +one9sg7jsvgx28threevsmpxtlrc +five4vvvrrmfj +1hkzflszztc45nine29 +36qbhjdxjr +glfmnmdqlfgxrzfsc2vcxmxcvjkrnltjpdsixgsrpgjnrthree7 +jnbgtjcnbvsf7hhmb +three9eightspggt +4f77sevenkrsvzkrlr +ztlrbheightseven6rcsflgpxnvfkrntbsevensbxjgvsb5 +six7nfcsksevenmkxone +zoneightnine3eight5cdgzqfq66one +8threefourkkkhvc68four +fourthreer9eight +dxzxrjptfmttnppfskctvbngmf268eight2 +2onethree +rtwone3seventwo72 +eightninegmfct96seven +4rcjltsng7threebxcsneight +nine54pghqbgrqjgzmjrgeightrzlbghr +nvggfgkzvknfiveeightsixthree43 +4fourjpzglr +83sevenbn9seven9 +mvgxgqvpbgmrcvdsn34 +sfjlninejbckkxlf8seven +three72threebsgtrtb1tmgjbngqxm +jqlx44 +1threexdftqfjcvl +nnkjmmlqvdseveneightkqlmmzzrpfiveonefour8 +9nqjzjjhhps9twonex +lzqxtpvztwo6 +47fiveeight8gnhcgldm2tlpsxfpsb +5one316four +9lzvbtlkzdgzcxrbtlthhqbdvklgkz7nine1 +threehjxknjnthreeseven2one7 +threeninehjbslk13 +sixeightone6pvdkkbvseven3 +gnlszqcmg8twotwo6 +gxttbccg2khzzpkdtonezqsteight3six +vtfjnxjjkmzppsjx9twofour +twoplbfnmkgql5fpfpzndddt +2threeeightjgkfivevcjlmc4onetl +2bzngbghgkdhhgqpgqkonesix1 +2fivenine22 +lhpxstx1mhgpndxlnk +one7ninetwo2fivethree +seven2sevenonenine9 +onezgpeight81ninekzgqsmmtrpqz +681qchvmrdldjs +nzlqbsvteight11nnnbhkdbvp8 +sevenxgqxtjdjpq3 +8ztonetwoeight +9xkmjfourfz +83four6 +m69 +two1blfseven1 +jdmkrkzkjjsdkkdone5 +7six3 +3one27ninethreeninesevenqzfkst +6nineseven9eight3 +one8zfrvtwoshlgvbl5ljrftn +one1165bjcpkpsjfxlnmz6 +72eightwoh +seven1one94eightsqzhnrfbx8z +sixeight2frplhhsxn46two +7gppcfcdl8 +nine94eightkjxpmzvq +nvf8sjqrncflgpdbone3 +68fourlnc +two5ppgttnk +nine28sixzxnhjr +7kdg38 +twol4qmspdsixfiveskjsbrfsxxjpkqdtsmkgpbc +five5nzlcdc45clclzrrkjthreeoneoneightsd +cvmxgrvfddx3rdthreefdqhxlzzb6 +sevenhzxklrz1threebzvgssix8fstqhzn +tfv866fivetlfive +knmzhbvhzfvrbkvsmnl7sixseven +zmbq9 +vqxqnzrpqvtdtmgndhs7eightnqpxcntfmjr +4vzpsdreight337hgvq +jone4ccn8 +nftdkmtmcz4 +nlnineeightmndkqz8nineonenrqm +nrhdxfsqvxcbcghf35eightthreeseven5 \ No newline at end of file diff --git a/inputs/pb1_sample.txt b/inputs/pb1_sample.txt new file mode 100644 index 0000000..1ba8437 --- /dev/null +++ b/inputs/pb1_sample.txt @@ -0,0 +1,4 @@ +1abc2 +pqr3stu8vwx +a1b2c3d4e5f +treb7uchet \ No newline at end of file diff --git a/main.cpp b/main.cpp index 30e6d62..a740aaf 100644 --- a/main.cpp +++ b/main.cpp @@ -1,6 +1,18 @@ #include +#include "pb_1/problem_1.hpp" int main() { - std::cout << "Hello, World!\n"; + { + std::cout << "Begin Problem 1 part 1\n"; + if (const auto result = pb1::solve_problem_part1("inputs/pb1.txt"); result != 0) { + std::cout << "Problem 1 part1: " << result << '\n'; + } + } + { + std::cout << "Begin Problem 1 part 2\n"; + if (const auto result = pb1::solve_problem_part2("inputs/pb1_p2_sample.txt"); result != 0) { + std::cout << "Problem 1 part2: " << result << '\n'; + } + } return EXIT_SUCCESS; } diff --git a/pb_1/problem_1.cpp b/pb_1/problem_1.cpp new file mode 100644 index 0000000..768617b --- /dev/null +++ b/pb_1/problem_1.cpp @@ -0,0 +1,100 @@ +// +// Created by postaron on 06/12/23. +// + +#include "problem_1.hpp" +#include +#include +#include +#include +#include + +namespace pb1 { + using namespace std::string_view_literals; + + constexpr std::string_view digits = "0123456789"; + + constexpr std::array digitLetters{ + "one"sv, + "two"sv, + "three"sv, + "four"sv, + "five"sv, + "six"sv, + "seven"sv, + "eight"sv, + "nine"sv, + }; + + std::optional read_file(const fs::path &problemFile) noexcept { + std::ifstream file(problemFile); + if (!file.is_open()) { + const auto error_state = file.rdstate(); + switch (error_state) { + case std::ios::badbit: + std::cerr << "Fatal I/O error occurred.\n"; + break; + case std::ios::eofbit: + std::cerr << "End of file reached.\n"; + break; + case std::ios::failbit: + std::cerr << "Non-fatal I/O error occurred.\n"; + break; + default: + std::cerr << "impossible to reach.\n"; + break; + } + const auto path_string = problemFile.string(); + const auto msg = std::format("Failed to open file {}: ", path_string); + std::perror(msg.c_str()); + return std::nullopt; + } + return file; + } + + void part1(const std::string_view &toSearch, std::size_t &result) noexcept { + const auto first_digit_pos = toSearch.find_first_of(digits); + if (first_digit_pos == std::string::npos) { + return; + } + const auto second_part = toSearch.substr(first_digit_pos); + const auto second_digit_pos = second_part.find_last_of(digits) + first_digit_pos; + result += (toSearch[first_digit_pos] - '0') * 10 + (toSearch[second_digit_pos] - '0'); + } + + std::size_t solve_problem_part1(const fs::path &problemFile) { + auto file_option = read_file(problemFile); + if (!file_option) { + return 0; + } + std::ifstream &file = *file_option; + std::size_t result = 0; + for (std::string line; std::getline(file, line);) { + part1(line, result); + } + return result; + } + + void part2(const std::string_view &toSearch, std::vector &splittedLine, std::size_t &result) noexcept { + std::string line_with_numbers; + line_with_numbers.reserve(toSearch.size()); + for (int i = 0; i < toSearch.size(); ++i) { + + } + } + + std::size_t solve_problem_part2(const fs::path &problemFile) { + auto file_option = read_file(problemFile); + if (!file_option) { + return 0; + } + std::ifstream &file = *file_option; + std::vector splitted_line; + std::size_t result = 0; + for (std::string line; std::getline(file, line);) { + part2(line, splitted_line, result); + splitted_line.clear(); + } + return result; + } +} diff --git a/pb_1/problem_1.hpp b/pb_1/problem_1.hpp new file mode 100644 index 0000000..3ba8528 --- /dev/null +++ b/pb_1/problem_1.hpp @@ -0,0 +1,17 @@ +// +// Created by postaron on 06/12/23. +// + +#ifndef ADVENTOFCODE2023_PROBLEM_1_HPP +#define ADVENTOFCODE2023_PROBLEM_1_HPP + +#include + +namespace pb1 { + namespace fs = std::filesystem; + std::size_t solve_problem_part1(const fs::path& problemFile); + + std::size_t solve_problem_part2(const fs::path& problemFile); +} + +#endif //ADVENTOFCODE2023_PROBLEM_1_HPP