diff --git a/input/2020-day-06.txt b/input/2020-day-06.txt new file mode 100644 index 0000000..295f5d5 --- /dev/null +++ b/input/2020-day-06.txt @@ -0,0 +1,2227 @@ +edmzkxfoprcnhijtyvl +adxntojykfcvzermplh + +jbhpksufcaty +hevsuaibjkt +jbusytghak + +ixpckvbrylgtdm +hpyojlsgibtvc + +sga +sag +gsra +awzgs +sga + +jnwcqfisokbgmt +jmtcubwnsk +bmwkctjsrn + +ekxwotiyfhagdlmqn +hpvedxwscgqjlkrf + +drtguxboe +uxotwejgibfdrn +rkgxbtaeoupd +kohedbgzurtx + +di +whdg +d +d + +pukeyxjrvmowta +ejyxrwopkhtu +upojtrxyekw +cjxubkyetrowp +tgxwyorqnejiufzkp + +nqbraty +ybrqna +qyanbr +ayrqbn +aynqbr + +ezljbkmhionfqv +hxvtnjqr + +fuwsngzivcjrk +kprjnfucziv + +wonvukgls +wkoslgvun +kusvtolgnw + +tieldgxmys +dilexmyrvsqj +dlxyiems +sylxeimd + +gfapnyrzlwhscjmixb +yramfspwnicghblxzj +rnwmehkbjzpalgyfiscq +jfyclgmabhrizvwpsn +gzsahifrytmjlnwpcb + +wfyrobghlqcjn +yzwhfjlocgqmbn +yqgojhlnwczfmb +whlozqfcmnjgby + +envihwzxs +ivsw +iwsv + +gjocrpmlhnkbxevdsztq +rvoecmjbgndlswphzktqx + +ph +hp +hp + +vmzyftwk +vtkfemzwy +tymfwkzv +ktfvwzmy +kwzvytmf + +yntcgdfblkz +dykfcmnltbz +tmzdnylbfhck + +jyuwnazhbtrdvlfcoxmi +mlxowqarbhnitjfvcduy +hvbjknialucoptxysmfgdwr +fihbrodmtjcxvnwalyu + +xdicwhvujszagmey +czjrmdyauevw +muweycajzpvd +vayjcwedumz +uwyvcedazmj + +zqniybfcr +rizunqtpcyf +cqyizrnf +firzchmlnqy + +ckezaduhtxoilyn +kliuytzonedax +ulkxznteiydao +uanxdpetzlyiwok + +opgmiufxdkw +onfuxdwmgki +fiwxmokdug +pfdiumwyxgok +fodxuywmigck + +fg +zgfb +ufg + +z +ze +az + +scwqjukmhplzxafiyvdtr +mpwyerhvqzbfcdikxualst +gkzrwpcfnqvxtiyuodlsam + +enzt +yzprno +mcanslzq +zonr + +xlsqjnuobfymtd +obtueyxdjkciafqnlmz + +fcowy +ycfow + +timwqdnebkcsajpolr +hycqdueti +ctgyvidequf +xiuecdtq +viqetcdz + +atlqfdinogrbm +drgqxloektiambu + +jd +jd +dj + +cknxalfwburopditehsyz +wtigkfzlchsrnybuoxaepd +vaponqfukzcsiybrljwedth + +rxhuz +drzhkxumtginj +rcaxzohevyu +pszhreux +ruxhzpy + +ceanhqvbtkgiplr +mlpithvrkcaqng + +lageimuyjxntbwphfs +gpnihamyelxbwsu +yxmiswngulepabh +wxsbnhpylmgaieu +ayximuwebhpnlgs + +begmvrkqptz +hwsfjlxdciyaun + +prmkvejosyubtnz +rkeoynmjavzspubt +huomzbtnwyrepsjdvk +ebskrvtzjmyuopn + +ugmwobeiyqtckszvpaxn +sivuazqotwxykcpmbgnhe +ugovsircnmqztplwayxbke +sxibehutwazpgqynkmvco + +gmfipesaykorxbwjl +ojlfpxwgrnikmeyhqsba + +c +c +c +m + +dapbveo +armnqopxhvie +aptebovd +vpoeza +aotwfepsv + +i +ic +i + +pftbquhlydrs +postnjxlihagdzbywce + +xcivfymjdrzhesqb +fzrcmjhbsviqyxe +vimlnscfwxbyrhjqupeo + +f +f +f + +usnh +rmupglay +uqv +uqw + +ldb +ld + +sbrqvouly +sroylqf +qsryitoe + +wntmgqjauybzoldvfck +gldqtkbaeznufwymcj +lrchunbjgdykzawtqfm +mcabflwtyqujngkdz + +rofcihkmqbwgtexjavnz +qfagcjxkhmiotbvwnrez +ntkqjiyzvboafewhxrcmg + +bv +tv + +wtvepsd +dyzhir +jbqclkxnmguaof + +gzbtsreonmhxlkijpqu +kxhmltszqpnorujbige + +hpeakzrxymigovt +vrtxgmkoyapz +pgzrmvyoakxt + +lbygrmxoivfucw +rcjivowfgblmxs +rxoiamvclujbgwsf +xvrfpibeclnmwot +lofcxrivmwb + +jhxbfydcqw +msoagpirvktelz + +wczxsbnqe +zirqonwpbxe +nqwxsezb + +ydwo +ydp +yd +axdsvhjmfy +dy + +rxtujw +doahz +rtsym + +pbic +bc +bc +bc + +jxsbfr +bcsrfjx +srixvdnbwzj +rxmakbsj +sxjmrabf + +wruifa +rfa +arf +asfr +fra + +gyi +giya +ygain +kigy + +tqoxh +lhetqrm +yxvtkqfdh + +ytkqvup +mkpuqv + +jreztqmwvgisnh +byrhwtzedsq + +qjo +ojq + +xbhzsotugeijrk +gkziyorjuxbepds + +kusymzbclghf +quchlgfkzmyb +jurvyclihkm + +whvkxzmrl +krszxwvmhl +zrmhlvwskx +mkxrwylovhz + +sakfigdb +afskgb +kfagbs + +vnyo +uxwoyn +sbpzn +imgtna + +dqjtmskpzify +ktjmeorfaipd +pmatejdofki +fjlpmidkrt + +hauldscwin +tdarhinu +nhdfuavir + +hinbmavoc +virmshcazb +havkrcomib +viabhmqc + +tawexm +xmatew + +opg +gpo +gpo +opg +pog + +vkbznjquy +qznuvkyb +kvuqznaby +qkvuyzbn +nqzyvkbu + +ocansuzdmvwei +hasyfpwqj + +vmj +sknpejom +vjchumg + +mhws +hmsw +shwm + +tcpbdzvarixyj +dxupoyqfwnkvesbh + +dm +fomdg +dm + +yz +zj +jz +vlztahq +fizg + +itvnmlxphycf +fzmcpvxhnityl +clpfnhixvtym + +remig +egu +stzcnbye +oie +lepag + +tzsnfhweuqvoybjim +vxzmptudbrowfyneghcq +ywmlhaotnzfukvbqe +qltpcbwvmeuazrfonyh + +hcytfwgve +dycvepxlhzfngws +vwtcgyfhme +wfgeyvhc +cyghwfev + +lzhbuc +qeczhl +kpfzvhjyscxlita +lzdqmgchn + +qyzgcum +alwesq +bqy + +guxcprsfqezajltmwd +rqltsuzcgamxjfwepd +jfmuzeswdqxalgrptc +jtelwdfcrpagxsumzq +iaqjxeyclgprwmzfsduth + +zcghqfuprlavsjbktxoidmenwy +cxbmwnlogdiqrhujpfsyzketav +cnaugxstkhizjodpwrqlefbvym + +sgvfzhp +fwnghspu +ipsfgah +puhfgns + +prtxkifmoyqwbdsh +iryxfhobqstkdm +fmtkdsyqrioxhb + +irfcynskv +cenorvkisjyf +srfkvynic + +njdshblezrfx +fesodhrxn +nqhiautvrscdwfe +nhdreslxf + +rceub +uabflro +szvxtkyqngd + +ewobrfqcspym +mpqcwfsoyber + +klrxyaf +alrykf +ykaflr +fakyrl + +ezqwmua +wamqeuz +eqmzawu +mqweazu +zqweamu + +jkfqgzhlpwntmduoyscxbea +znflctasoqekmbwhxdujgpy +leqakghpynzjcboudwxfsmit +czuyjtdpfxlhakbeognmwqs +skbqeydcjlfoazmputhnxwg + +haqvxtepiczsgymlkbw +yusgxiaehlbzwmqct +tqnxiylhmzcsgweab +yiatzblcgxhmeswjq + +ogzmupysnrt +lugmkypqizocnvr +syfurgmpnhzow + +pgrb +opycugr +tjrngadp + +swbkulnao +pmkdrbqyzonicuj + +pfzl +flpz +vjzfpbel +sfpzl + +yrboxuhknlwzc +dbiurzxogajcpwyl +xblcywuohrzm +rxfowylzubc +clxqeurwzybok + +earvompiks +zrmsoieapk +gekposamir + +mwvlrtae +mlav +lamiov + +oghqcsvlw +qowhgvcysld +hqewcgvosl +glqhkpcsrvnftwox + +mpajys +mywpjs +jyspmv +lpsymj +sjpmy + +rebc +oxbwcr + +uctgdqwxe +wctpdgjqxeu +qryotwezfmgdixcu +eqxtwdaucg + +motajvxdi +naxtduvoizj +lpoxvgdsfyha +wedvrocakx + +qorxj +ekqzpxj +jqx + +nxl +cnlx + +fo +iot +vuxgo +uo +xio + +gvjefxzi +adsjpbchuyw + +gvbhodi +ogbhivd +hdvugbio +goihdbv +igbvydho + +krdufhbgymvlxiqwepco +ldxuyefjoqzmr + +sy +c +nj +n +j + +qwiyz +qwz +gqkrwfzb +qzawj + +bsax +xwabskm +bxjas + +fqpazsenjukgoyi +ugznyxfqkaopesi +qysokeapnuifzg +epfaqiyugnsozk + +vrxpusdht +phuxsvbn +ahfyvpwislmc +sjqkdpvh + +unkgmj +gokmjns +gkjmen + +skuznvcheflqrpygjm +yjfqghzmdplsnvcuer +utboqrgvlfzjcmxnehy + +i +fi +ib + +p +p +p + +jfwtyhdvugirql +fvhyjwtumrqgidl +fjwayensghtikvqlurcx + +qb +bq +bq +bq +bq + +uyxp +xpyut +xytpu +xsuypc + +g +s +s +lp + +pwugetkcb +kpbwtegnuc +pekwutbcgv +knwgbeputc + +eouscxlnt +epagmtcn + +xlmyghutcbkif +bqgmlkvdhrxc +alonbpzhsjwg + +mkhsnzxbjo +dyvgielqcpfrw + +yftilrxcavjgkue +tkrwlzqnmophbdsj + +itmfbkclyzushnqex +ixbtdfqzlsychuveokm +bfhqejyzclusimapxvkt +lfqschwueztbxkimy +txsmcbqlrgzfiykehu + +yvubdecpxqrhizltskomfj +vrmytoujzcghwlxdbqsefp +oavjfzndulcbsqrhmytpex + +gkrym +yjtpbkhr +ykidmr + +gumiaoex +macfxhie + +qbtgemyrwnalj +raetqlnymbg +ltaomngsbyzerq +retmybagnql + +tvoxad +dxavjo +oadvx +xoadv + +pcbxglukra +klrabgcp +rbzkadlpgc +cgblxpkra +lcbrpagk + +zeaxivumdroypf +uakymxzoirfpde +pexaoiyfcudjzrm + +gjomtlsxyfazdcnrubq +lydrncfamouqxtsb +dqxybsfnglmrctou +dlpoufkbqxnyermcst + +crbwqjdifg +ivrjqz +qoihjr + +jm +mj +mj +mj +jm + +oshtbargiydzq +ospmtardbhqfyiz +ysdhkitabproqz +shjyodqbatmizr + +jxizf +krhizdp +eiaqz + +zfebwrltvjns +xpdfvumj + +sqk +sk +sk +ksf +smk + +mtrqb +qai +lq +xqhnk + +gu +ugp +ug + +klvxuwscg +kvgslxwcu +xcgwulvks +wulgxcvks + +wmnhyu +tdyhxvkc + +oaq +oqa +adqo +aqo + +nyi +wsl +i +ri +zf + +btfdzqxpskhviyo +agjyxruvpdilqoswk + +fwcsbydqlkipejh +ehbpidfwjkclzys +lfwmdepbhjiakvsy +jedyfwpgbihls +dtisfhlpuxjoenwbyr + +veifzdrlqxn +tckliywjhngobap + +wgnmsp +ngmwps +cmsgnwp + +zxvljcnetoakbfqw +dzjfovcexgbaknlqwt +qelvwxckfbtnaojz +wtockbxaezvfjlnq + +gmceodryf +dmfbywnvus + +avx +xav +avx +mzxav +xva + +ctmiqovawrydlxbekh +bydemtwcoqrklhiavz + +twx +xwq +mdvfowhk + +fgqwkstldzmcxon +zmdkxfgoscqwltn + +vylsuqgaripwxbohejzk +rofkhzuqxbwsvpagyt +kvpswrhoaygzbcxtuq +gswqzhxofprakvuby + +x +x +x + +kwcsmgzxfqdiorab +kxdawsocqbr +rhxvoastqpdcubkw + +bfeaqczjvt +azkjqwoercf +czastxvnmfjqeyl +jeqafzcxnst + +gpemfwkaz +pmgwzeka +regzaonyc + +jhmaivsq +paxqsbev +vaiqs +sqvhia + +abqnlgzroie +oigbzqlnuaer +ljobnzayridqgce + +cndveqaglm +meaqndljvcg +lnvcdagqem + +nyklzsdig +bgxhqidzukln +nzlykdigr + +jwqmrfcvay +rylwfmavc + +rwftqvskhylxmbae +pgxlzaywnqorvhfmitskjc +ybarkftwvdlqxmhs +aqwvtuxfslrkmhyb + +n +y +np + +nefprhauytbcoz +rucpehbntoyfaz +hezyucarptonbf +rahfuxtneyjpzobc + +zkwylmvsi +hxakrjm +rktm + +zgfhmak +jqhukg +dxnshlvrpgbk +khwzytge + +lkry +dykltxnor +keulrbqm + +td +td +tvxgdamz +cdtp +td + +xdhmnfgbkjaursotl +gzaonesmkjrxdhclb + +wsixtvoqm +nlbkf + +cxilrsjbzquov +jqcsirybxovluz +vxruqzsijlboc +oxqvsiczrujbl +bhulrzcxivqosj + +wiylpn +nlpwi +iwnlpk + +pniluyobxfvzdta +zmweqgkchrodjtisnu + +rplgxefjosmhdkuzn +cdbpszvhtrawjyqgi + +tweaqxrbf +qyhrkwbuftxea +eyqaxhwftr +frwtzqxane + +yqcvukg +cpuvgkqyo +vuqckgy +cygukvq +kucqvgy + +nagfcwoyuplivxzsbe +xzswvyianfbepuolg +xaovpibgzufnswley + +qpgre +ruqe + +pc +tpwaroqsc +ncyzbiehplfg + +eykizclxhovd +kzlcxhdvyeoi + +m +m +xm + +teyvjkxclfiazshqdrp +zkjvflpqyretxdisa +yetspzadjxvkirlfq + +nqjykmcu +pkytihj + +qypkcxsoetmvnwarjiu +tkfjapegswrbqndzlmh + +gfatnypkol +obasqczptgnik +tgmkewxupojanv + +kn +kn +kn + +mwjcfkgy +wfncjkgmyt +ypcgmxwsfj + +iqsbwkyezrhfc +rhwcqkbefszyi +kibyzsfrhqcew + +opxftzlyceqvnahg +xncgzyqeathbopvl +nyzgfvxdcapeqhtlo +jycxtvlqonezpgah +dhaytonpelgcvxuzq + +vjcwy +vw +vwmps +kzdwgievaxh + +lp +m +p + +mxraeksqfvozb +lyxsfbkiramh + +k +dk +qki +k +k + +clgqtvawnzop +pnclqvogzyjswta +xzqcmnlwvaoigpt + +htv +vht +thv +tvhdw +tvh + +fontbezgmcwli +clgezmnwfit +inzgceflmwto +iwtmncvrygze + +zhotuercknvpfwal +nklerdafopcuvwzh +phvwkfeazoucrnl +fncorhvpkeauwzl + +egqjtbi +xgmt +lpudwoakt + +nzpyhsfbijwelckumxv +gcwbmzpxlevjksnfyuhi + +brivn +ojrinbv +irnbv +irvnb + +xziegsqjdy +xsyiedqjzg +dgxizjsqye +eyidzqjgsx + +crmdneqtojv +ormadvcj +lokzjvrcwsm + +taqlnfvh +ylqnvfhtaps + +aghxmfuo +hgmrfoux +guxohcmf +fxgumcho + +w +w +w + +lxw +lwx +wlx +wglxo +xwl + +gajyxn +agjnxyu +xgjayn + +fporwxgqdkih +dovpaeythlnwkz + +hkmut +uitmkh +htukm +thkum +mkhtub + +aepugjlmbkrszfv +moflauznjbrp + +dwl +hdwf + +mdpyheoa +opmayd +opadym +ypdmao +yomadp + +vt +lh + +fc +cf +fc + +gcspkvqxzntea +vxztpqcbsgknaeo +pacmnsezkqltgx +vextncpskiazqbg +xcngdatejzrspq + +azjuwiqtgxysvkh +iayswhobudktr + +xbeijk +bjxeki +iekbxvjq +kixejb +ebxijk + +gi +gi + +ebgutwnkjx +jbkzgtnaxyewu + +pasecmxbjrtvqkznwgh +jcrmpagzvqhetoksxwn + +glcverqzhbdij +ljzbgiqhecr +bcgqzerijlh + +sbkjoza +as +seqaw +hags +qas + +swcbpyi +ipcswby +iwbpcsy + +x +x +x +x + +lnju +ul + +hfvimysr +hfryisvm + +qhzdvuiacyxw +kqbdwfizyvua + +txeouhancpqbgjwlkmfs +mdbhoapjuclrwsngftqex +ecijlguqfbmwoxnaspht +qapehxvtoclbuszmjynwgf + +mtuilgpbkjnav +vktduhmynlabj +vujxmtikanlb + +mcrebzdwvxs +kndlxj +nxtad + +w +lq + +bdajvilhso +jisoqhld + +jurqv +uhs +spuh + +kuwgybfixdzs +tifnobygwlpeqx +xbihfwvygjda + +hckgfqlbo +ntgklfbhrqso +zkjgoflqbh +ckbqmgfohl +fwqkolbgh + +stan +tsaqnd +sant +asnt +ntas + +rfxqzjdvy +zrjfx +jbfrxz +jrzxf +rxjefzg + +ixql +dtqrs + +dbhkjqez +eqcdjbnk +eqjlbpkd +hqjdbeyk +djoktmqsawbuexfvgr + +xfzwparuv +wxrzknavo +xrazwpsuv +rwxmtaivz + +qhrzt +tdyuamxrnihc + +ojc +j +j +jr +rj + +ipgxrlsakotynbmv +bgortknxyuplmsiv + +qowdhilapmk +lwaqkhpimdo +ikpwmqcdgohal +dpilrwaqkmoyh +manlwoiqphdk + +b +cb + +swqtmuhygd +nxqgsyehdtumwr +stgudwmqhfy +gytmswhdfqu +mwhtydgqus + +t +vb +im + +drxzwkcg +xdzr +ialdzxr +zdxr +rxuzd + +fzlpvcm +fvoplc +bcflvp +vyfipcbl + +opfkbmxsvznguaq +mpufsqbnvgxao +smxgofbnaqu +rqoadwbhxmngusf + +xpelhcvbgfwzos +losftcbpewzmxhy + +kvjia +jviak +kavij +aikjv + +ukp +pku +kpu +pxku +upk + +nahgyxbfijdzukrtlewvc +ilrhdujgvcaywbfxkto +ugdrxacbkwthofjylvi +xdtaiuhjcvfgkyrblw +ubhrwaivcfxdkjgptyl + +wbs +ws +wzpjs +rsw +swx + +ecovmudkg +dckvuomge +cgeduvkmo +kexrumgcvold +ogdvcmkeu + +otzhibuwylnpdjk +fqesgmvcx + +uhibntjedrqlkza +zutlekqijbhadnr +lrudvhnxtqbejiwkza +knqdjlhzbrtuiaes + +lzucndsk +kudnslz +dculwnzsk +unpzdlcyk +qutlnrhdkgb + +imvdyc +uym +myrebic +jywxqosan +biry + +e +e +ey +m +ey + +pu +pu +up +pu +up + +nxywbazjhfpmqrl +ptlnhfrjzbqioy + +jhqrpnacxktuywmzolbgid +rcldaozfinhtywukjmgxpbq +xknlraouiemtcjwypdvzgshqb + +hjtbfsawmyqreuxzp +zkmrxelqbfgaijyucvws + +tmuodpivjkbesrnxwhgqly +gkhvptmqodbicuwjsxlr +upilsotvgqmdbjxkwrh + +uchfkdwgvoysazr +ekgnrmjidtphxzlbq + +peynjb +jdetnbha +qknrlxemosb + +okcxgpmeva +camkegoxvp + +ivetwsloarduh +etsdjwviqoau +tsmfwviponeakxdu + +vxoukn +oxvunk +uonxvk + +l +l +l +l + +xpates +pnavtsw + +p +w +u +w +z + +erqphaigsvmkc +aigprevkqmynhsc +pdarkzqcsvbgmeih +gpiemhafqrcksv + +gnfxpcvhyeqklb +nlyegofxhcpkb +pbfckgywxnlhoe +lkshmjptifecnydugxbza +ychrlgnobxkpqfe + +fswnqiyamkrthzeudxlgvocj +ytdzglurakxihjcnfmvesow +wtclfvjgmksuinzxehrydao +gkhzvswmiayludfcexnorjtp +zudegfksxvlnarctwmhyoipj + +hkvuctrxgeqbapdsw +peqskrducgvhxwj +oiqmhekpwvxdcg + +vxzygrsldmjoq +pmbfvrjzktnsyql +rdymqlvjwzs +zomcjlqyrvsxg + +t +x +t + +hidmjcszvwtyulexap +vxpuhsmtiecygjarzd +yipxsazecjhtvdmuk +tveujidzswpmhbycoxa + +bjhowspnxqrilgckzvya +lycxpnjrbvghiwzkoqdas +gnljyzbxswqvkcaoprih +urpoiljxsvagbfkqyhzmcwn +lnjxibqrcpvgszkyhaow + +rxdjupsboghfyqk +ghpcktodiysbaf +pygdfskohnrb +swohdkpgbxmfyez + +qfoyjsuiwglp +dsajgouipqfeyxwl + +ybv +sh + +akgwp +neftcidsmlxvyu +jpb +pwr +oghzqr + +m +m +wm +m + +aesucfwnbmzjixol +lwcsejaniomru + +skrij +rjisk +ieszonkrjbv + +sqil +weulqzi +sqicyl + +hcouimv +moiucvh +ouhvimc +iuochvm +ugihomxcv + +xcdq +kvlwysm + +s +d + +faqkwzdphtslbrm +bsmryfzpkohlnaq +uqghrailbmpzfjsckxv +skdempaqhyflzrb + +iftersaovkmq +itrosfkmvaej +bavftmiosrke +kuvtrsoajfmei + +qi +q +qiw +q +qx + +cbmhaqsynzlkep +ebclhpqsnamzk +kbeunmspclqhaz + +k +k +k + +lsjd +djls +sldj +sljd + +m +m +m +m +m + +tnkdizrqy +injdbgtk +tcisnwa + +oimrgebk +objmgrik + +gzpfiuentbvyrcm +zcysfenlprbutmvg + +iakzlspqyfdoxghevnwctu +vuwhodnxyfqagtzpsceikl +tflnyxasiozdgcvuheqkwp + +a +pygardx +eau +a + +maht +tpmh +hmt +thm + +ociwpsvnjykabufmrgezqldh +famcsnzgvlebjyhroqkpdiuw +zvojpcqiufwkrgydnasemlhbt + +upkhlt +slea + +wxukirhvlfmgo +exykvrhugdblomfw +hlkizfomvgrwxus +sholafwvmukgrx +txwfsmurgvkohl + +ju +l + +wzpf +qwmef +wfe + +ewmxovgbcnijhyk +uklrsgdyzcaeft + +baflvedsuohztjx +lqvzgwxsatefdc +saxbltdefrivz + +cdvmaqkngy +tfrdgkam +agdpmkys +kdmcjag + +ajnpf +fnpaj +fnjap +fpnaj + +waslqkuv +uvwsjakmq +pvyuitqrbwcagoxkzeh + +pcaowt +optca +pacto +poatc + +ephg +gphe +gehp +cespgh +gphe + +bcpo +edcps + +famtdwsbrznj +jdznfrtwmbya +dfrmjawebgtphnqz +jzmnrtafudwb +rbaznwtdjmf + +qmyhwgtcepkd +gkdqtmpyfw +purgdkwoqmtl + +zhvstamfpdc +dtszpcfvamh +dzvhftcpasm + +rgwyks +yhkgfwre +yrsgxo +cadirygtn + +jzdatumwe +hclk +xirsyv +fcbkng + +dtmkaiubljq +mkivbojl +imkjbl +eklmijb + +yjtp +tjy + +jvipbosutw +josgipwkutzb +jsupowbrti +bpikjtsouw +fojtpwbsaui + +e +ehg +fe +e + +fbdpoau +ijhroufmvb +cfbtoul + +rwxplh +whpxlr +wxlprh +lxwrhp + +pncagr +rgnclpa + +vhjyokxtbpu +skuwogrqa + +yratqdoxwcpk +sorywjbenudlxhvapi + +evsktdfwogcuh +zidwgnrcelxyvjmkp + +jcezwrigomdt +hzcdjtiwre +tczweijdrh + +ukcewyhfsapozlx +wciopgukxheylazf +lwekafhuybozxpc +wyhupafeclknzxo +ezcxlkphouwfay + +klfjutwxnhvicympbdrz +npkzcituovfldxgbhwjms +txhwjkifmvuzbdcpln + +ifr +up +p +p +gswo + +xkimf +mxikf + +td +neqdi +wfz +lbsahjokvmpry + +wez +wez +wezr +zwe +ezw + +stfjbc +twfjbcs +bstjfc +tbsfjc +sfbjtc + +asjbkpugrnteyfcomdlh +yoadpfjmubrkltgcneshz +lkrfnpmteyjcsubgzoadh +xghijfescdwtoykpabumqvnrl + +ug +du + +qrvyi +nv +v +vhz +zvm + +uoblqtenkysjdcwmraivfgpzxh +pckigqsolvfnmjauyzhxtwdebr + +wdkrlgqmvuhicnxebatj +rcdvkftqnuiewh +cntediyvhwukqr +vrhqpsiounecwtdk +ounreidwqchkvt + +arelvfzbhkdinoxtgjpcsu +szocvdbfjhranixtkelpug +einpchxzdrktlfubgovjsa +cvbnriuosehxjgdlkpztaf +uzdfcxejbhtvolknrspiga + +dsxcfuzphk +roifcp +cyifvop + +jmil +limj +ljim + +smrjzlwuikq +holtfauyim +umncpieftbl + +kq +wkq +k +cktp + +zoncjltqxyhasigkfwurbmdv +uhbzojkagtxcvdrwlsfynqmi +xhlyswojgrzcvktbfqidaumn +qtgswjoaivybnhcfrxklmduz +nhvwitqxalkjrdmsguofcyzb + +su +nhu +us +u + +stxofjnyvhizmelagbdwpuc +rbfnweycogqztipsaljxkd + +rmyclkwgqfheja +qgjucrzyemlwakh +kphqegadcwmuryj +taxrkcevbqghjymw + +lugcahsyrjnoxpzem +espgjrnyzcuhmlaox +jmgrcnsazoehlxup +nfepgjluzhcadxmrso +srlnjcpzmeoghaxu + +bcqrkadhz +dcbhkza +hzndimkac +dqkczhba + +qglersz +vszlehq +zfjueilqsd +eszlq +zsqler + +twcekgfq + +rcmyhawqtgbjiflpxezn +aelwqgjmtzycrfpnhxib +xnrfbgjtqzyaplmchwie + +yhacs +mawnvjkeyqcighs +tuahycs + +iw +tdgkpi + +nizjlemapcwx +tsuoqkjbhygdv + +pyusefbwjrvgz +bjfzpwsuyegr +jrsxohcegwfpzuyb + +ekxdmsjzuntai +zxdaujmtnikes +jndizketuasxm +njqakpsuzitefxrgdm + +ehvknu +hzukmn +nbtdksxrg +akn +naehok + +wipbuyzs +ysbq +dxyqbjst +gsyxdb + +smhkvxwtgj +htkgmvqsxcj +tujghmsxikv +hxvsmytgkjd + +ynm +un +ykn + +qebgu +qgrblhej +uhrq +mnfokqxy + +mcvy +tsaup +us +kqhw + +vwm +mvjwq +cmswv +vwjm +zwavm + +enfqx +enxfq +fexqn + +xsmzl +bqpoejwhzi +gxzc +rfzn +zrv + +oueayjq +jyu + +xrzqts +rz +yegnbuz +cjqwzxisr + +dnwqumcg +kntyfqhm +tnmfq + +sy +xh + +esknr +brpym + +syh +yia +ykn +bpmyzo + +ebhmyz +mebyhz +ezhybm + +omzvarex +mzoarex +mrozaex +zaomrxe + +fecarzihbklsodvp +vdbhpaizlefrsc +rfeiapvszdhlbqc +sfpbaiqvchlrdze + +zvjxlgfokbhupn +aluigxdtwqves + +cseko +ose +ecso +wsegjoa + +bmdru +nw +nia +ija + +lnapozb +anpbzolhy +zrbajnluop +lopznba + +iuhorckt +dsitafk +xlkvefit +dfikxzltg +lktniv + +ibgjqwx +biwqgjx + +ofpcnjzmwxtvglbysuqrkadh +qfghmrdljbksxzovuawnctyp +tqxkvnmrjgpahylcsbdzwfuo +uqxmlkfdnrjovatsgzwpbhcy +jfsagdqxrvpcnohubkzmtlyw + +nsofzrtgc +fjtcsgoni +ftigacno +houpnqfcgt +nfctgvxlyom + +gtlrszh +tlghsrz + +ciygwfesbtv +hvcyb + +otupmldwkhbvyxrni +bdwthuylsvpxkmnor +nxktbmlyvpdhwsoru +mkbantvwxyguophdrl + +vlx +xlvh +lxv + +falrxm +abrml + +cz +fe +ltxz + +zh +hz +zh + +vlpungo +vnploug +nvupgol + +aihvwxomyseqjrup +vxtbglcnhoewqszud + +evdfhlanzowmj +wjfakoizvlyume +jeadzfswclmvqo + +vofnaxpuqdjzk +tkxouzdqypvaf +sfaimwuoerx + +yiqjnrmwg +cnkzxdebopls + +mxuyznpkdslobfqethjvgcwi +dhygwolniuzkmfqtjbexpcsv +jtnbavpgulcsfwzmeydkixhq + +pwqcdsagneux +apwdslczguex + +ochfgitkpjmxvbwsyalz +pqfoehjmklytngxzsa + +zwcdvjyuxm +jvxuczdm +jcuxdmzv + +ex +xe +ex + +bruqxpnt +rtnxqu + +cqmpedhtwa +hjnweafbtmydckvgi +coxdwrplmheta +owmdqctaeh + +eonvhayprlubmkdxcwqgt +mbuqcnylwxekorvtphda +ltqohvydpemxknabwucr + +bviypkgrtaucmjeo +jpsbalymxkfcvdzoie + +vxlqyrfp +vqplyxfr +yqrplxvf +lvyrqxpf +rwqplfyvx + +x +x +x +l + +yuvo +oyvu + +dqevksywtmajxhuorncgziflb +saberqxvnhjiwkgdyzfltc +kvyjwgqcathexndlzsbfri + +rmpl +matsrkl + +dqw +dwq +wpdq +wjsdq +qrkwd + +vmoltnku +wnatmlzqgo +nvoutlm +ontxmvl +tolxmn + +rjqvugxpbwd +jgdbwsprqvu +jdqupyvgwrbe + +mkibxclpud +cumrkl +hlztkmasvcwguo + +ju +u +u +u + +hvoizamdru +puqftvdjr +rgwsctbvdukf +vdlkrpuxte +rjxvwybudq + +th +aqbf +tqfkyv +ocw +lnxzijmpu + +isdxlmekbpyvrazoqngjhfw +nczselimvurpbxoywgafhq +ymbhasxeliofwqgnrpzv +xmpnzhyiablsqerguvowf +vumoseywazfinhpqblxgr + +w +juv +wi +c +vw + +fjx +fj +twayjeqo +jhx +jzr + +w +cq +fj + +pnysjzkwmeaxgtirdf +itgzyernwxkapdsfm +rbkawofqxsinmzytgled +sfnxytiwzmgakerd + +ygnmzdhkxpe +zktnlepuh + +jsbfpuwvkiehgr +ejkrifnwvbgshplu +vcjbhsigfukwpre +pbjfhesukgwvri +wvkrsbeugjhipfy + +oxzwnftk +oxwt +wouxt + +nycmubiopg +gbutcomnyp +uboypnkcgm +poxndgyubmc + +wpodjnyhtqukexc +ihjlvwdfguzpnxaet +tojydphkwcxnuem + +dfyopwrhjcmxbiku +mbawgjorfhpildyucx +uihbwdocmvnspyqfx + +brgjymfaw +vrjywbgpf +ywzbjgf +ibeckofyj + +sktrbg +ulyndkbs +kuvzabse +jpbhxsomck +ksbqfi + +lrkbaizhtpguwjq +vgnouwhlabzirkpjqt +tukpjrbzaigqlweh +ulasbqtpwhkzgijr +zktiwbjuqsahlgpr + +ipasgukbhcfwlt +gzswubeqcalpif +wpslbiguxaemfc +napwlgqfisxcbu + +tgcirbmwx +agxyqrmwztc +qgxmczwtr +fnoxrwgjklmtec + +iqthapgwsyzumejnd +dxfvsceugokqlwmbyzjpr + +ixms +mpsi + +gjoxrcmt +xrjgtomc + +rxikogsafteqbupm +dgtqnkwescbrpmojafzi +regptqlkaisybmfo + +gcsnyeojwl +ljeoyhcng + +rboeafpxktihsqnc +fhjokdgqinwze +oihfmkynqxe + +rjuyhaqmliwckg +ximcfzgwyrlhn +hlrgtcsimwxy + +wpfqculrmxos +cojqs +qcszo +ozcsq + +ilbezokgtpwmu +rkdfphtzcyw + +xda +bfqugt +eadh +h +h + +ejvpamsgd +dgemiloau +dmeasg +jademg + +jfagcbmxyl +bycfgjlmax + +gobmlcir +roicglbp +bicglro +ciobrlg + +jiqowhr +mbiqr +qirm +qrbil + +eamlhtgvzsjoxyuinrpwqbd +btonqpwgjamhrlsixyvzdue + +rhnamzcvkqbdpftgwi +tmbpkihdwzagvrfnq +wkpdtzqmfgisbvnarh +mwkbihgpfrnadtvqz + +pdstumbzqalr +amzqwdrutpbls +rqubzdpatmsl +stzprabdmulq + +lf +f +f + +jdegpfinlz +xplfnegdzj +gnalepfdzj +xjeldpzgnf +zdspgnfwyelj + +ubly +neqswi + +efrjdg +xwdrbtj +xkjdvb +pjuadqo +dbj + +yrwq +yqr +rqy + +vsxcwouzegqak +ynfcl +lrbc +rcjh + +ikxnftdovcphzae +adpitzckovxhnef +cilfohenpdzxtvka +ehitodpkvfzxcna + +te +famtuj +intfreudw +sxopkqgbl + +pmjsxaekqlrdobwufnztvg +wuqrkvbgopatsemlnzxd +svonbdeqagtzwlpcukmrx +ksuzlaernbcwovxgqdpmt +wxetnlqazbpgskvomdur + +skpvxloqduizwatrgfnyc +xaeyvgcfwpikoutnd +gyanbjxwmitocpkufdv + +ntuwlfqjyvrak +txivfyoldejunacg + +n +q +q + +sidtzk +lzsondqitk +tskzid + +hopdv +hpdo +ohrcdp + +ncdj +cjda +ydkjrv + +brtahsneojzq +zejbnswvqoahyxr +rmhosqeabjnz +aebsjoqtmzrnh + +a +yq +mj + +zmcfrgsxenlkja +vupsyjwrhq + +grbxsd +kpsygnarx +rjbgsex +ejvgwlsrx + +dqrzwiux +iurdwz +uidwzrp +zwidrum +uwzrid + +exmywtp +wempt +tpwem +tpwme + +arlhfxdcmv +vsmrhclkqfi +vrcphfmadl + +kylhz +zly +zly + +tal +tal +a +al +daevb + diff --git a/src/2020-day-06.ts b/src/2020-day-06.ts new file mode 100644 index 0000000..bb2736a --- /dev/null +++ b/src/2020-day-06.ts @@ -0,0 +1,96 @@ +import 'mocha'; +import assert from 'assert'; +import { readFileSync } from 'fs'; + + +let input = readFileSync('./input/2020-day-06.txt', 'utf-8') +let example: string = +`abc + +a +b +c + +ab +ac + +a +a +a +a + +b +`; +let tasksResults: any[] = ['N/A', 'N/A']; + +describe('Day 04', () => { + before(() => { + }) + describe('task01', () => { + it('Calculate', () => { + assert.strictEqual(task01(example), 11); + tasksResults[0] = task01(input);; + }) + }); + describe('test02', () => { + it('Calculate', () => { + assert.strictEqual(task02(example), 6); + tasksResults[1] = task02(input); + }); + }); + after(() => { + console.log('\ntask 01:', tasksResults[0]); + console.log('\ntask 02:', tasksResults[1]); + }); +}); + +type Group = {ppl: number; results: any}; +function task01(input: string): number { + let groups = parseData(input); + let data = reduce(groups, (g: Group, k: string) => !!g.results[k]); + let counts: any[] = count(data); + return sum(counts); +} + +function task02(input: string) { + let groups: Group[] = parseData(input); + let data = reduce(groups, (g: Group, k: string) => { + return g.results[k] === g.ppl + }); + let counts: any[] = count(data); + return sum(counts); +} + +function parseData(input: string): any[] { + let groups: Group[] = []; + let results: any = {}; + let ppl: number = 0; + input.split('\n').forEach((line: string) => { + if (!line.length) { + groups.push({ results, ppl}); + ppl = 0; + results = {}; + return; + } + ppl++; + line.split('').forEach(i => { + results[i] = results.hasOwnProperty(i) + ? results[i] + 1 + : 1; + }); + }); + + return groups; +} + +const reduce = (data: Group[], predicate: (group: any, key: string) => boolean): boolean[] => { + return data.map((group: Group) => { + let results: any = {}; + Object.keys(group.results).forEach((key: string) => { + results[key] = predicate(group, key); + }); + return (results); + }); +}; +const count = (a: any[]) => a.map((i: any) => Object.keys(i).filter((x: string) => !!i[x]).length); +const sum = (a: number[]) => a.reduce((t: number, i: number) => t += i, 0);