From 8604b925eed01b0a7785e7f2d06e10a9b8616f4d Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Sun, 6 Dec 2020 13:44:35 -0800 Subject: [PATCH] Day 6! --- inputs/day6.txt | 2061 +++++++++++++++++++++++++++++++++++++++ inputs/day6_test.txt | 15 + src/bin/customs_form.rs | 82 ++ 3 files changed, 2158 insertions(+) create mode 100644 inputs/day6.txt create mode 100644 inputs/day6_test.txt create mode 100644 src/bin/customs_form.rs diff --git a/inputs/day6.txt b/inputs/day6.txt new file mode 100644 index 0000000..ecd89a0 --- /dev/null +++ b/inputs/day6.txt @@ -0,0 +1,2061 @@ +b +b +b +b + +x +xfkj +xb + +ovuxdgiheszjbaltw +oxwjiubhfylzavst + +se +u +j +se + +eaxzstqkujdlhi +dsinkoqhjxz + +ekgoxuhrlqanziwc +iakunrgqhzcol +zohklgcuriqan + +dhyesmq +pjcvihxwyz + +oqvxlyrtbmshfdneug +vekdxczyhwtoigpsa +gjvpothdyesx +vethogdxkys + +msnciekrhtxpd +ncdtsexihm + +nrkupytxhbmzwecojd +rmjxwpeychzudobtnk +ymbxehuavdcwzrtjnpko +kywxzbdphentrojmuc + +gveoh +htn + +ftvysenlpgqhod +fetpqymghsvn + +athepsdku +utkshdeap +tahsepudk +uedsathpk + +mklxicuaepzyt +aux +jxuaqdv +uxogda + +hg +kdwjrylp +csqnhx +sevq + +xiusfzle +eztxpli +ligjzxe + +euq +que +qeu +uqe +gcpzuqdae + +aoruwfbsynj +anoysbfjruw +wuabjnsfoyr + +brfaewkucitjndsyvm +unsiwektfjyrmbavcd +dweutnkjybsgafxvicrm +wyafndjctivsberkum +mivjrawekysfnutcbd + +wsxevhifu +uxfhsie +jruexikfshp +uihefvsx + +dfpeokrbjlwuczixgn +iuwefokjdnzpxclgbr +rxuegjbokzidnflpcw +lzkibtdrepcwnxjofug + +gyxqailszejuofwvrncp +qoapfiuwgkryz +zyrgowiupfqba +ozfrywigumptaq +quyoatrghpfizwd + +mchow +cito +czqlno +csto +rocd + +vg +ph +wtq +aiedobncylu + +fwvjochurznexsmli +lhxcifsejwmvorunz +ylohxrmcisfwzvejun +vjorwlhcmixusnzfe + +e +y +e +e + +wgickvaqbyu +bvgiyocadw +wygzlnmbavic +wgucyviba + +voaigy +omtwfxlysgjdv +ovgyn + +jtez +juztne + +kcvzspygnbwfxt +csxfynkpvwgzbt +svnwbxftcgykpz + +xncjodmrf +dhrokfyn +rmndhou +ofcrynd +sagzwrbonidt + +cswntgjq +twvsnjckq +cywjsqn +cajqwvns +mhndexcfuqowjpls + +fzhno +f +uf +f +yfj + +icuswrbhgdez +uzcdisbwhgoe + +kphyd +dyhwgu +hwgyd + +udj +odajy +xgepsfb +aryjd + +phfnjbszxokyctlr +tokyzlnbxhsjrpcf +xbfjctrylskhonpz +bjqfiturkcnypszxhlo +rypxlfnkctsazojhb + +enbpstrgyjdlx +iylbhdsetgjnux +tnyvxjfgsdhle +ljetgczyxdqsn + +qnczatkgdwro +wgqrxontauz + +efqgxzjwk +nebwjxmzrgdqfpk +wjkezqvxfgh +efwaqzjxgk +wqfkjzaxeg + +gey +egvz +eacrg +zghe +ygbes + +tbaskzmeucndhil +ufwbzqvncirxek +jciekgupbfzony + +twkydxrvfl +oaienhmjbvuc + +izrqwd +rwzqdi +irwzqd +qzwidr + +orgdjeqxnbwfputm +goxqzbrskhmel +qgxrbeomvk +eboicqmrygx +geoxqrmb + +cxzhptwmjeovlanksfuq +vntcxkozyselmjqwpuhfa +epzucwqnsvmatjfxhklo +jbxkagqzmhnwpcovfutsel + +zpajo +zwj +okzaj +ijzc + +ajmskfeqix +cgqdptvirxzbw + +uj +mj +ju + +vpxfiy +invhxobfy + +pjxgirohyt +yrgxpojith +pyjxrtigho + +dfley +afldy +edmyfil +lydsfa +dylwf + +imdkxhle +kxmfldhi +milhdexk + +ubdhztqi + +nkwerqdbzumojsi +nqzrejmoswkuibd +dzbsirwkhqnomeju +nedwiozjkuqsrmb + +p +y +c + +vxjepscumzo +rpylnwqtsj +tqshjlp + +gabrpxntz +pbxantzvokrf + +sugjmdncblftkqzvaeir +urafezyhxtiqvcboljdwmk +qjbuozkechrdtxvfamliw + +wrasqukyohdnlfptemxz +ewofaxkudplqynshtrmvz +lkrpmdoawsyutzhefvxnq +uqnmflxsokpadrzyjtewih + +uayxptlzkqngisjdmef +upgoamcshtqfxnkdvrelzyi + +oxz +ko +ljos + +wufhxpeqvd +wgjnutchisybv + +iyg +m +ubkd +csfpt +bdvz + +wzqjbgtc +hoqstm +tfuxdarqek +qplsmvct +igqnt + +quigtkyzcrnhmsdwl +vbzpscltjqoxheyak + +fdolznbvhwjgc +wgcahkelospjzmfd +vjrgocfdwibzhnxyl + +bmrshknqot +hkqnrtmosb +qokhsnbrtm +qtrbhjnmkgosc +orsqbkmthn + +gzuawmyntlih +nwthmugyizal +zywimtangluh + +okmf +vmkfon +mkofn +axfklsimo +ofmk + +ljhfspnz +jouznfp +pznjhfox +zyawdcvntmgpjkrf +hqjpzinf + +x +e +e + +rdktnjmoegapy +jtadnmp +tnpfmjdaq +jnmtapd + +bcjislaphd +udklziajh +hjxadilo +sjhiudzal +ldgijysha + +qeiauxbpkgochdz +eazxtjuch + +ienxvuhtadbfkszoqwcjmlgypr +lcvnzodxwrkqsmbhpfyuaeitgj + +tvcdfwbqsizljrypkuneghmxa +rujkdxnhzevimpfcyqbglwats +vejflcztwqhnbaudgymikrpsx +jvaheibzngxptsqdfklcwmyur + +avnhxmlejt +tcvhljx +jvxtlh +tslxvjh + +pd +dp +dp + +knbodsrlfygjhv +ivxcpbqkefw + +clte +cetl +letc + +ufhvdqjiycsl +dscxqrhfljui +lfxicdvhsqju +bzlequsifhtdwjgc +cjiuqhfsdl + +yzbdxphutqwos +pzoqxdyvh +xzqhkvopydm +qxhopmzdy + +mivl +lim +ltiuf +il + +aznklvpxmgsri +rpkginxvbaslwz +ilvnkzpargsxcf + +latpicsubj +qgfsjcpiulae +mzylhnxrdjvwaiksp + +ftokzunhcxjaybesgmrpq +gsohdamptnxeyzkubjqcfr + +y +y +y +i + +uvon +zt +zwtrqj + +mhvkfoqipcxjrawdb +jxbvrpwciuoldhmqka + +xop +umxy +sxy +x + +yfpclhdtvaxgqnjzkeor +deaikjoyxlqtvgrhcnfzp + +qfupgvlxhatneocykjisd +qjvmhkexualgfndyictpos +vqlshpduxigjytfocnkea +xujhaogcqtilpednvkfys +ngwfzrbitoqspkduahcjxvyel + +s +s +s +s + +lugzarsecx +jhpfm +dhj +tohw +pdbht + +sybwojrktflmghpuzvnc +wpzrtsgnyohblfumvc +suyfmvlcgnzphtrobw +nhgtrpvomzlucybsfw + +pgxe +gpjex +xpeg +exgp +egpx + +qbyuv +woyqvun +qgyuv + +twdv +zpym +qymf + +vxm +vmsx +fxygv + +jmz +zmj + +gpvtdmaukcbl +rvpmglzacdfsiqyunx +haplmecuv +vpcsajwlgmur + +tvhjrfpwxlcoduzeymqa +dnmvwrehocqlftpyuzxa +capxquwyotmzfdevhlr +dclempxbvwiyfurzhoqtga + +dylb +balym +yfbleo +btkpgyjlx + +malsfejwtvryhqozgbkncidx +dncebgiyvahkjflstqmzxrw +zwjvycnbaiqefrkthglxmsd +pqctulnysemzvfbhjgdkixawr + +vxnfdbqytp +txqyvbpnf + +b +mb +b +b + +wcvhuqmpzx +qxuwcvh +uxcsgbqh +uhcqx +cxuqlprh + +mae +aem +mea +ame +aem + +uldbw +udbwl +udblw +dwpubl +bwuld + +tko +lotk +tok + +tmzde +edztm +metdz +mzted + +ajmenidgl +vcfa +xqyza +tfubays +cszab + +anqemfkrpidthvz +rdnfvatihekmpqz +eqphdravftickznm +hoevdrkatmfqlpnjzi + +oyz +zyo +zoy + +rynzptbkfogjdacvumqls +gtlpvmzfrqduokyabncj + +ztifmrocq +orsfmqigcz +rmqicophfz +hrisopmcfqkz + +i +i +i +i + +uxwc +mfn + +hv +j +j + +zkmxwncevbsdiqf +sgdrjuxpbh +dbxs + +buderaonkctzfxiwjqsh +jnxcwifrkbuqdthoseaz +ntbyjsuxeoagcwkhiqfrz +natxhjcsofibeqzurkw + +lkdcumixongrwfz +kdtsmuwziogfal + +wjlnuos +siolumwt +zcwsohgulb +kslwaovu + +pimkeqaugtcyfzs +kuisefayzcmgtqp +vkdgfetaqiylumpcs +ufskgmiqaytpce +guafeiqyptskncxm + +mgwtnzjy +tzjyoxngwm +uzgmjtxwyn +tibwjfgnmvzy +gtjwyzmn + +lboewpsxf +jdtinkmqurvz +cygahj + +bf +uyk +b +f + +agkfzlitsjenrpwcodv +amslepkjtvcyzdrfgwo +gselrzvwdpatkhfjoc + +oqgstnrkwpzecbuxfvd +xzbetofgmuaykhl +oegfbxmyzktu + +cakshypdgxtnwveoq +xvateynfgokqcwhsdp +qacenwpgvsdhxtkoy + +ualrtojgvbes +gsjroadbvetlwu +urlnbazivtojegs +ujcbergovtaszl + +faszbopcne +zscbnofeap +odpbazcesnf +afszcnpoeb +aczngphfeyobsrv + +cq +qmc + +brnkmxwj +xbmn +wbnjmrqx +mxebnpy + +q +qg +q +q +cq + +o +o +ywg +o + +dmzqruvbfxewathkyjs +tyuxmrhskfjedwagb +sxtewdmablhryjfku + +ywnavrdktmfxul +vkwoqlfhixn +kpnxjivweglf + +hgk +hgk +ghk +hgk + +jux +dxj +nzjvx + +ilgtrkpoyxcuvwejh +roqpcuxtglvekjyhi +cliuetyxhojkpvgr + +rmpjib +nozdejxtfmwiuvby +lmkrjbip +cibhrjm + +qxag +e +e +u + +cn +g +g + +r +r + +lor +lro +orl +orl + +nuvfdyborctpgwqkxs +rsdgqtncbuoviypzwkx + +ipjeubwhl +ilwupbje +iuljpbew + +nrxy +nr +nr +nr + +huqrozmxgli +fzagxmqjetrcyvnb + +g +g +gsqc +dyng + +nyhimaq +yiob +yig + +rc +rc +cr + +urpwnecs +prmjeancu +irekdcnb +thlcernygz + +iwgebjvx +jbmewgivznq +cgeywfrkivxjpzba +sbtidweuhlgojv +xjgvwreib + +lbtfhr +lfbox +deqwlpzkbyn + +neb +ben +enbj +bne + +qsyanfxjvmbwkdoic +aoijcpdnyqfkbmvwsx + +hk +kh +hk +hk +hk + +wjy +wj +cbjxwf + +bghkp +kgbh +ghbkp +gzbkhl +bephkng + +ulmkigbjc +zvnsgbmcifyrlw + +wduyi +qsp +tkoqv +qktm + +uynqgcvisf +wnqugvlsfiy +zpgoqnrsvyjemifxu + +bdxrc +rcb +cbr +jcbr + +qbdsrfnt +dtgbnsfxhq +dnptfbwsq + +vgprxkaozmjuef +exjfyuohbnkpgv + +iumpbjwgvxsnt +ijvwgsnx +jgwnsvxi +nixsvgwj + +glsxhciyfzwevmjtrnabkd +zrykwnmscietvbxhdjl +idcxtplenqmbvhkjswuzyor +hdzxrwvlbicytejasnkm +enzhbxsdkrmticvywlj + +gbuzlfyaokjndwchpmi +zcnjuodliywbpahgkmf +ywlobdnfzkpgciauhjm +hqbulkjynfaegwmiczpdo + +cmhjsxg +ldvcefbjptrkgam + +cuegyomjwnazplh +numaozpgwych +zgnorhmwjauypc +uzgnhyarcpowm +hyuzpnbmaocgwd + +luzpn +udnixvzlg +zuyrntl + +druixgzlefaw +beqvkhm +omvynesjc + +gx +ydgtlx +gx +zuqxg +xg + +msdnkrxztlgyoqeu +kjduoyznletqshavcx +uayzownsqilfetkxd + +la +al +al + +bkcnafujswhelto +tcbjfkoalesnuwh +cnkfotheauwslbjq +fusocemhljtkwnb + +hlrtsvkcbinufpegywaq +hwktblgsuircypenvqaf +akpwbhueyrfqivclgnst + +divlhqxeftzajkom +wnjfudqmteiyaxlg + +yvdghmiajw +vjydxiotwefm +vdmnjyiw +dwjimvyh +jiubwypmvd + +frobsqmkdtunw +tbxodqkwmns + +yszu +cshul + +drlxkuap +xrgwiualt + +youtewvaqnpifb +vmyiogalbzc + +gurty +ygtru + +plynkugbqcxz +itahqwrjesmf +qdyculxnvbo + +djmewq +wybnv +kgzswto +weq + +sdrjqumbganhp +habjmzpdsvokruec +zaijhsdpmrbekyfu +umjhbarpvds + +ofjvzyasbkreclunqmgwpi +cuvzebqglwyaomprnkisjf +vymcasrepfgziqlbknwujo +rgqnsmyaifucwoblpkjevz + +lm +my + +em +esyvf +me + +n +n + +fxsil +xsilf +slxfi +fsilx + +uomekxqif +umghktofniexq + +wdh +dwh +wdh +hwd +whd + +nvrqjbek +tmskejvn + +gbkfspxydh +hfdbpxysk +yfsdhpbkx +hksgdifxby +xkoqybfhsdn + +n +n +n + +wylzqspuvtkgo +qyolugwzkpstv +puogzkvqsywtl +tcgyopzlvskwuq +gtkszwlvqypuo + +gkflvnwmob +xeahzijpyuqcr + +wxon +nxwo +nxwo + +zwbvqhlpdcfs +lczqwhfpbvds +fpwldmscxhzqbv +sblgfdhvpqzwc +opklwhfsdqzvantbrc + +lfjhuqzw +uzqfwhlj +hjwqzlfu +jhlqzwuf + +xjhekor +roxjhk +jxhoruk +herxojk + +qdmalkhonuryzpbc +yuzmpkqdrhlcaonb +rzybueopcamqlkdnh +dzrbmplnhuaqycok + +hisbytn +nbyhi +tayqnbhi +ethnymbi +bzjvhnypid + +eqmla +lhejbm +ezwtmslcio + +gxqzhrlsuoa +xhogzuqlrsa +grsolxzhuaq +ahwluqzrsgox + +lsnekfxh +nxkheslf +xskrhlnfe + +qsznxaichtmbyfv +wriveqoamfzsygdchbutx +vixkaznhbtcfqyms + +zbqdjtakylvhmuo +auohymtkdvjql +dvajlymukotqh +qaljmokyhutvd + +rtwbnacmqkpjhedg +dnhkgjwtecbqpra +glerjiayhvdbwkcsnp +njdwhgrapqcokeb + +ipsgmjvhzcw +ogn +gton + +bdmklhyafneowcrqxtsuzig +dhzqwfncabtkeoxmusgril +canourtdwimsgbflxkheqz +ecbahxtqmgrisfpuzjodklvnw +karnobqxdzguftmlwchsjei + +e +g + +ygnbpvcdus +abtker +iszubylf + +mwpdzqsxhyuc +xdhmqwpsuyzc +qzsxphydwcum +cdxwqhmyzpsu + +qimoahnjylkbuezxwrdpfscv +knqbvhixwjalmsfudopczery +cpzsdkiqaoerluwnymxjtbvfh +kuobqpevcjmyhiwzlnafdrxs + +esfriqxjaunpghmk +sayejfuvbhknixrgmqp +pimgkjnqshaxuref +nemkuqpsjfaxrgih + +lqbrdkwxgiemhc +qeivxwghdrbklmc +rehilwkxqgpmudcb +fhikdmbselrqgyxcw + +hsq +cgqkdujzebpno +mqyvx +awq +mfq + +xiyzaqdrfkmgbwuoel +zwfleaodmubrqxig +ecmibdqfgusxwzapjrlov + +bhgjepfi +grlio + +mtn +mnt +ntm +tmn +tmn + +gayxpnviewsmh +iwmghsxneaybrp +xsiwgphnayme +ipxnzsmewgyah +weayrghminspxz + +xblowyctzunefqmv +zkhbletcyomxnv + +qkdyjretoxvfahlpbwmucg +yhxtjwepgvmflkuobqdarc +pxdkrmbcteoygqwjflahvu +vdwmtrgelxqcuybjfahkpo +jxyvaorgubdpwlhemqfctk + +q +pybeu +ixf +fq + +fdpenbtkmvliy +dylhpbnkmife +bimeyptlkdfn +yzbilwmdjkenfp + +emljyhxotrdzgi +trmgeoidxhyzj + +elqwc +lqecw +ecwql + +cl +pvoml +mol +wglxjitnz + +vea +l +zpxwcnmk + +mztgy +bzagmlo +zgmv +gmzs +mygz + +chujtlszv +rulcxjyzahv +lbjzcuvdh + +zspelxuy +yslpezxu + +aogtxqmlhkyzw +qohgflmc +qmfhglco + +vldsqhfxerzpjbatuckom +svwqdogxeprjctzaukbm + +owfuxajcrkt +bjrmalwkuxdfc +uskxferajtwc +rcwkojaxnugf + +berwh +oewar +ekrw +rwe + +ycfbpgarhltxesidm +txaslyhprcmbfedig +friceygadmblpxtsh +razbcsfpltxieyhdmg + +nmvfyjiebozqwlugr +auimbeslqzyrf + +xfbgryoqtkhiaedj +kodlhebgfwatu +udztfeaohvgbksp + +ftwyokczedvnjuim +zdwumjycehoksti +cmjektoyzduiw + +dhjscrba +rhtajcbd +hdjbarc +dabrhjc + +q +p +xsv + +qmctauri +qfecohjigm +tsikcqrmz +zrxtkymicuwql + +kqubnh +eqisrgu +xjzuqlvfom +areqyuid +dqwu + +dtrpqezbnjwcvog +zotprbvdgnjcqew +gvpjdwrtcbenozq +jovqzewgdctrbpn + +xslkiaefmjuyghpqdbrnvt +inakxwcmtlogfsdervbzp + +jocypxv +zocymvxpj +xpyjocv + +iwbgan +benagwik +igwnbsa +nsgwiba +abgnsiw + +iz +tzli +izs + +zanirljodvwh +whjvazilrdon +vanjdoirlhzw +nvdaroziwhjl +dwlnzioarvhj + +kgu +kgu +kgfu +hgku + +bjuqlsyemhcwnpd +rxhnfogjyumc + +eypsdcrwukxqhtfnmz +lhmbziavtpuwkxn + +qkfdpvhri +vqwipkrmhda +prqvikhfd +dkviqrph +idhvpqkr + +oyaxpkhmnejglcfrvqbwtz +dyilnzugrmhkbtceo + +bdmatycg +bmgaxntzh +lebtqgjamwp +dwamrtibg + +cbvgiszko +uwptnfhdmeljqi +irs +rsiza + +d +d +n +d + +mxohltybzgar +oyqpswj + +fuijwyglstrmaocpnqbvxkh +imqhrjbcvtouaxpwlkgnsfy +alexpmsuvoybkjzrtdnhcfwgqi + +ympaubxjrewdhqnsg +ismygqlxprbednwhaj + +eadptucsyxjiknzbwho +jyubqaxticonwedzrk +kgujtzemwcfoynxdbari +zcfjyxdnkteiwuomba + +ach +hac +cha + +vlhx +vngyh +vh +vh +hixv + +frhc +csx + +hdbyfm +drhnfw +fhrnd + +pchqnfzlxjebd +kxfezboncrlad +suvmzncwftyd + +irkgmeyzfbdaptjs +zrbjafisdteymkpg +yjbtkzdgesfmpiar +skjebfzidprgytam + +tikux +efdnv +pna + +bnfulscmo +scunfolm +uhmslcxafog + +uwtqklzcsfvyenig +lgictksfunzyevqw +ecqfzxvwslignyukt +lcskqzyntwidgvrfeau + +sjazeqxvymf +gojiwsezqukv +lcnsezivjq + +dgxcbhwi +ekqxzh +jphxf +xvluhyr +jfhlqkuoxts + +mhpfgyb +bypfgmh +fpbgmhy +fmbdpygh + +w +u + +jsqgepvnkwmloztyfcxb +iekognwqfbtvcsypmljzx +qyjstbxnfewmugzpvkocl +wkptcjmezxnofvlyqbgs +yrvnqjmblcexgztowpfks + +vf +f + +xhbvkyupdsozjnfwt +tsfxhvwbzdopkjn +mzodnkgitwjpfvxs + +lqteicwuyrvdpnazh +tlcwzuqnrajhepdyvi +ecirpqwuvldhyzjant +arhltvpzjiwdynuqec +pvdlhrczkuqitnaywe + +zivawcetr +evaifr +eiavr + +ayiqjvo +koivqjys +jsoqyiv +voijyq +oqrubyvjifx + +whsxnlu +damkrfp + +cpzirwfojtynsqvuhdkxl +bodahpcwvisruknzqlfjtxy +hnxyfurvqzkdsitcjolpw + +y +dt +loea +t +f + +myjaqcgkrue +mcqyakgreuj +ajkmeycprqgu + +lnbcs +cnlvubxs +cblns +bsncl +sbncl + +asgfvbepy +nfapyvjg +gytwavfp +fpdaymvg +mywfaknvgp + +heumglctkafqjb +hfqcetkmbjlug + +mujdv +udvjm + +zho +z +zwieo +gzh +cpujqkaz + +uyndk +uynk +kynu +ukdny +nuzky + +hkxrpyanvgbdqsf +nrzxlyhdkstvpamg +gpykdxnahrsvc +xaskrupivyhdng +ykxvupasnrghd + +kywc +gftce +sqx +vmwtkry +ha + +kfjqelzihrpxobsncwmtduyvag +inhjblgqzaxcmutowdefvypskr +dcmjhvyqtokrilbxzunegswpfa +ralpuiqxcdmgjewykvbhfnzots +hqdigarvkyemopncwtsfjlubzx + +aris +wbrldxmzqvptyk +rc + +nbtdxp +stp +tp +pt + +suti +utsi + +otiubvjmlcgqrdp +plomtyjdubnrachviq +jpxiqtormblvudc + +osgwfkh +khgswf + +gbhkxlioraqytejzp +erqxbgkoyslhitpjvz + +tjfiwzyuhklqmcrnvx +abnhfvyrulsizkjwxcgmt +ofxwrnyvltmpehujzikc + +gabuhmojfdqerptzwkxlnscv +ubthqfjzeocspnmvlwkagxd + +jbnpdti +bijnt +jtdnbi +njifvcxbt +nibjtu + +nbkfc +nbckfe + +emfj +bcfhqjmlx +jftm +fmjwid + +fqzbiejrh +hfqzeribj +gqzrbfeihj +iqzrejhfb + +iamkuehxcrg +uebgxdacr +jgxeuacr +sugledaxcr +xjaerugsc + +p +p +p + +zsjvhmauelgdnwbqip +exzwqiotsjylrvdbpagunh + +istjukb +uxsit + +kws +wsk + +eotdvfhbimpqycguaksw +rtixswzykboedjqvf + +iz +zi +zji +iz +zi + +udtmywzsh +tmzwjhurisdy +mwdtshzyu +dwsuqthmyz +dmtaywzshu + +jgfhcvw +wfgknvcjh +vufrdajgspoxw +fjwltyqvizbg + +fewicoqhstvn +zrfxksnjpy +dnfbszl +mngsf + +uljvabq +kvaczujlbn +flvjuqab + +sonuibpkr +knulesqpirb +puvoinbsrk +bokirspnu +sknbriup + +yjqprwhetbxlkvciamu +wayxjlropvdtehubikmq + +wbxlzhka +bhxwkal +kbawhfxl +wkxblah +lakbxhw + +zhgxfawkmeulyinsptcvbjq +rxisbkvgmczynwjuatfpeqlh +zmjlnyqaibkgstpeuchvfwx + +koqlzwinm +klinzqma +xeikmfrzqu + +pgrjybcxfvst +fxsmgqcvyjpbart +wgesxrnjhyvcfpbt + +odnygj +gdjoyn +gjoydn + +foapsrhx +pouxasfr +jaqxoprbs + +roacyvmhdiwp +ionjwcmadpyvhr +vphowadiycmr +apdcmrvyihwo +mhycopvwrdia + +xrgyqztkneavfd +pjqmlbsufcxowivh + +yaloqskpvejtdubwmgxrh +ghpdosemlkybjtiwaur + +axmqje +qejaxzbmc +aetmuqjx +wmagijxqe +vqjauxme + +ahbeoqklgd +lgekdboq +loyqjdkbgeutp + +xqyhmcvpki +ipyhqxkcmv +cxmqyivhkp +kcpixvmqyh +hxmkypqivc + +hvgpmz +grls +rb +jiw + +kclgaewhiuzy +ezwghkylaicu +ygawliheukcz +klaiwegchyzu +iyklwuehagzc + +cytlidureshjanm +hnwymetrzcbjad +hmyzepdcanrfjtb + +tmuqdxyhbkerzogpa +wjfxgincvlse + +tapjvh +itdgsj + +pblz +plzb +zplqb +blzp +lpbz + +hieot +hoeti +ithoe + +gvmoaydfpturzbnleishcw +tghpwmldsciybvzoaefunr +wplbfisnagtyvrumedzhco +urdtvsfhpinwzbcegmylao +uvtrmwsdchozbpeiayfnlg + +eyszpbun +bepizn + +qotmwvfnsjpb +wxjbsfvqptmno + +t +t +t + +qfsurzjmwh +cezmhjwuas +ungmwjxidkhvso +qfytuhblmwspj + +yog +ygo +tgp +g + +ezjgtaposwci +qfnzksjmhudpv +xbszropalcij + +qzd +kf + +rvd +vzdr +vnrd + +myub +rsitb +kdfbe +biomas +bhpjcng + +ciskbjrqfwzv +bwqskzodui + +nahogml +pta +qtieaf +iauj + +lketrcadfxywj +hexwaclfjtdikry +txrcafjdyekwl +pyrcjxktfdaewl +tmexgcvyadlsjwkfrq + +q +q +q +qm + +eozljvxnisgmw +onseixmwlgjz +neidczqsjxlroygwm +zximnjogwelspk + +bdtnyemrfo +dyftnbeomr +ftemrnodyb +bymftrnoejd + +jfgermhbqysxzoc +byzgcjoxfhime +ezgxmychbofj +gkhxmjecoiybfz +hoyfkmzcxblejg + +kdv +k +qk +k + +ypcqldrkze +esqycrpdxnz + +ctfkwybrxdu +dftnxbkcuyrs +dukryxzoceihtbf +cxdbtufkry +fjctybwnmxkrud + +op +reco +fgk + +unhptyf +xsidwptj + +navkxrcm +cmqrax +gacxmtpudir +ixcqbgtraym + +pkacx +kpxca +exkajpc + +gepnybxclzwiqmds +jlsyefxzbgmkpdc +xfhapebycmdlsgz +eydsxpcmjgbtlz +gdzxemkscbply + +haix +ahxi + +ojizavmplhctxef +cpfxtvazeojhmil + +gwnbdjzpsr +ztsgkrundywbj +gszjbpvnwdrq + +qtxisacmklrzehwpjb +agmvujcbwelhn + +t +z +i +z +s + +ucihoqtydjkzpfsmvrgw +uqdjhcekpyzrfstwgvio + +zdinyugqeh +eorsuhpf +oexuhp +efuh + +vt +vk +zev + +joytsicnrgzufqhlpxdwvkmeba +tlxhysqmjbwpgdufekraziocvn + +wlvsdzho +dbhlaro +hyldoa + +sbryxtkipuje +iekyxjupws + +ovdnrlptimjhgsbfc +qgviturydompjhac + +lqra +fbvaloq +zrlaqi +lazq +lqa + +tcmpkdjozyg +opdgmkftyrc +ugxyodimztcshpk +oedamtykcgp +btnpqkgcvdlywm + +zxowbyqmdi +xryoizdqmbwu +sbidqwoymxza +ybdxowziqm +wqbmxizudyo + +sjomew +swje +mxwsj +sjwx +srwjgiu + +raqme +raeqm + +tqmhsiuon +vtbulysxqm + +bcphrzxytklisgdvme +vxkzysghrdtieplmc + +dngfh +fglho +ukpjsvqrxy + +wpbzimtc +wqntlb +hftbwlsn +wnxhtb +oqxbfwht + +ynhrcmqdj +dnyqrchmj +mqdyrhcnj + +j +j +lyj + +hvxoqjswybderaunzgptkcmfi +agvrnuyhzedbtcfomwskipjx + +ehqnzdvksxb +uwjbskedmaqhynlg +iskdrhnqeb +skobchnefdqz + +htvqgujzwcokd +vgwcozhdktuqj +zvocqkhwtjgud +kcqyuzjdghatvwo + +cvulbp +baovclrz +lzvckb +tubvclok +hqijlbcfvye + +bemi +iexdp + +powxgrjyaliztq +xzaqyitpgrwjo +atyzqpiwojxgr +jyqrtawzgxinop + +tsdoyiaevflukxnhqmgjbrc +tgmifevcsdaolryujhqzkxnb +naghlmsoextkyivubjdcfqr +ingcrbuwsyoxmdhjqelfatkv + +asbmvyqih +lnk +fket + +psomihgczqbwt +hotwcibzasgmq +rgohzsmbtiqcw +iqwzchlsbtgmo + +pqscnmkzgxfivebyjo +nbgmdyephflxzqoscjik +mksxnzrgeyqptojibfc + +ekohq +gjicobtns +ldjixvgpos + +snklgiefb +sfgqrelknoimb +libegwfsxkn + +zmqrpfu +mqpzrfu +umpzfqr +umprqzf +fruzmqp + +nmzghyxdkasecir +yfsmilhpzqbvj + +znf +w + +dkeyujfprlxa +fejarulkdp +slupfrdokajqc +aueklrpdjf + +ngpjmr +jgsnam +gjmn +afgmjn +kymdjngu + +pnkrywdhqvcbmzfi +fcqpniyrmwzbdk +aypwicqmrfdnzbk + +eykzau +uzkeay +kuezay +eykazu +akeyuz + +vb +vb + +xbuomkzenqhtspd +mtqkozhubxsdenp +sudkbpxzrnmoetihq + +dmsvqlgiznwuha +muszaioqgv + +eyrlzoktuxcdabniwgs +tijalekzyxgbncrwuo + +o +p +d +o +qv + +dfor +rqoj +hrkdo +elruotv +kwro + +aoplc +vfcoxla +loapc + +cvxwplubdsyniok +fojaclrkqtvxw +mwghvxcoqlrka + +cnsb +boynmw +gbn +vnigtb + +n +n +nyd +n +n + +olbu +tlhjxfasqgp +evl + +ohftbspmzaxqwrnduy +nsehtmixyjwqdzp + +reczhgojl +wqfpamykitdvx + +ovzwn +nvowz +mwnvo +owvn +niwvo + +femajichbyuq +baecifqmyhuj +mfieqbuhcajy +uebqfamiyjch +yicueqjfhbam + +mylxwufeadjgk +fuyxgzdpkwbmajnetl +lxywokujdeamrfg +ywgjlufkxcmaed +fwljeydaukmxg + +jwyqukabdgohnefrip +sclphkbaqgorf +vafghbtpoqkzr +akpvqfgbhrxo + +tlboypj +nsuamibqhtlgv +tcdlzkfwrb + +p +abwpg +p + +l +h +t +h + +lb +xaibo +pmb + +kmpqtlndbw +dbplnktcmwq +tbdmjgiplfnwyq + +wgdx +dxwg +dgwx + +jkv +tuyvw +cvd +bvpfgd + +ngkuy +ping +nluyg +awognhcszx +ytgne + +jivcxytb +yetjioxbc +gcbstxynjw +tyxbijc + +yivnckjzfdapqhsbw +sxupavqy + +t +t +te +t +t + +bvy +yrvt +pvy +syv + +lpadqozewui +zaoveugwldpiq +lekuaozwqdrip + +utlmpjrbkyinwdahxzs +wipbtzjnymlxkhdasru +lwjtidupksnbraxyhzm +txdbzjhwinumlpkryas +umnftbkpizlrhjxdwysa + +wcsn +cnlbwrm +dawunc + +dutnyvrkga +kgarntvuyd +vrakyotgudn +dtygurksnva +athndyrkguv + +wshgxtbqjnieyf +ehqyfxtbgunsj +ngtshfxbqjyve +tfjeqnsxabvhgy +qznstjbefghyx + +pd +hdv +dvn +fgcstd +dkn + +zlgeohajxrpnq +ejqphlxrsznog +pnoqgryxlmijhe + +mtadhulzv +vsnaqlpzjg +ozrfumval + +irashpoczfqwbuvyxkg +jyzvphlnqgbeafios +dqivyfsaghzopb + +gypwtbkdai +blgawtzypesk +stpwaynkbg + +hpfw +whbfpz + +bdcqvlsejugir +cbeuqidlvrsgj +sqdlrcbjgveiu + +vdapgceftnw +rthgnfywdxcj + +r +ur +r +rb +wr + +j +j +j +jc +j + +yxmdlsicvgu +qivdkuox +idmjxucv +hvfziubdwx + +frkdwtxbquvhs +uezqhbcmptv + +fiqjzeg +gdqzfibm +afmuiqydgz + +sqkrxoztnihpwbmj +rigkjtzbxhnsop + +oecjx +fdtjsur +zcheoaj + +omljut +olmsuj +mluhjcnbxkoep +tlqjomu diff --git a/inputs/day6_test.txt b/inputs/day6_test.txt new file mode 100644 index 0000000..8fdfebd --- /dev/null +++ b/inputs/day6_test.txt @@ -0,0 +1,15 @@ +abc + +a +b +c + +ab +ac + +a +a +a +a + +b \ No newline at end of file diff --git a/src/bin/customs_form.rs b/src/bin/customs_form.rs new file mode 100644 index 0000000..110b7f1 --- /dev/null +++ b/src/bin/customs_form.rs @@ -0,0 +1,82 @@ +use advent2020::errors::TopLevelError; +use std::collections::BTreeSet; +use std::env; +use std::fs; + +fn real_main() -> Result<(), TopLevelError> { + let mut customs_forms_any = Vec::new(); + let mut customs_forms_all = Vec::new(); + + for argument in env::args().skip(1) { + let contents = fs::read_to_string(argument)?; + let mut current_form_any = BTreeSet::new(); + let mut current_form_all = every_seat(); + + for line in contents.lines() { + if line.is_empty() { + customs_forms_any.push(current_form_any); + customs_forms_all.push(current_form_all); + current_form_any = BTreeSet::new(); + current_form_all = every_seat(); + } else { + let mut person_answers = BTreeSet::new(); + + for char in line.chars() { + person_answers.insert(char); + } + + current_form_any = current_form_any.union(&person_answers).cloned().collect(); + current_form_all = current_form_all + .intersection(&person_answers) + .cloned() + .collect(); + } + } + customs_forms_any.push(current_form_any); + customs_forms_all.push(current_form_all); + } + + let mut sum_all = 0; + let mut sum_any = 0; + + for (form_any, form_all) in customs_forms_any.iter().zip(customs_forms_all.iter()) { + println!( + "Form: any |{}| / all |{}|", + display_form(form_any), + display_form(form_all) + ); + sum_any += form_any.len(); + sum_all += form_all.len(); + } + + println!("Checked boxes (any): {}", sum_any); + println!("Checked boxes (all): {}", sum_all); + + Ok(()) +} + +fn display_form(x: &BTreeSet) -> String { + let mut retval = String::new(); + + for char in x.iter() { + retval.push(*char); + } + + retval +} + +fn every_seat() -> BTreeSet { + let mut result = BTreeSet::new(); + + for c in 'a'..='z' { + result.insert(c); + } + + result +} + +fn main() { + if let Err(e) = real_main() { + eprintln!("ERROR: {}", e); + } +}