diff --git a/day6.input b/day6.input new file mode 100644 index 0000000..97f699a --- /dev/null +++ b/day6.input @@ -0,0 +1,2119 @@ +onitvpuwxqczlmkabsjrgedfy +epdjqbxlnimfaowtzgsyku +pejglyqnwuaodzsbmfxikt +ojkpytdhignxuqebzlwsfma +gfadqolubinjxtkwpemszy + +i +x +i +i + +nmtyqwsoglva +nyvtsgwmlaoq +ysgmlnwvatqo +nvgdamotqyslw +ylmgtaqsnvow + +uoqwrdpbntje +cqpjnou +jnupyoq +npojuqs + +tbsafengq +eabqsftgndmx +beaintysgqhof + +ygtdfwuaorvchpnqzjlkbs +fatqvskwudbljphryogc + +jgewimpbkdaoslr +ypxzgdwqteshnau + +vdytrl +rcltq +ztlmkoi +tylr +gtlba + +oxgpa +ogaxp +pgoxa + +edi +jtm +b +jmug + +deoptcxnjhrqu +termcldofphxv +ckgbwhedpsroxt + +owhkn +hotwknq + +hscufpqg +tfnupahqglb +rqeigmxdov + +ndvbgkctqhyia +cdbnaityvghkq +akyqbivhdcngt +qlikvbghnctdya +kgatiqyhcbdvn + +u +ue +u +ku +u + +oky +ok +ko + +oiw +zch + +fxzpdcutqrgye +fdtxqyaeuzgrnpm +bpfwrkxzyhguvqjiosl + +edgtrynxsfuojq +emxulhvaqwzkd +vzbucdeqxip + +ine +no +gn +okngv +uqtsnb + +z +zyr +gwblk +cy + +ujgweobsncqvkl +suloibqncvweg + +vyaqhlx +uignrjlbhoa + +jnwgzhxivb +niwxzfg +tgckdqiepwxzrm +yzigxwnu +zwihjlxgov + +hz +t +kfbye +hr + +mxbjytcpdv +jbtdcipmvy + +djnzloupqgftaibhyvexkcms +bkopljahvxiecdmnygzsftqu +sbkefojlvmynqgzcuhpdixta +gusvkbqtxemailypcdnzohfj + +wos +uscwo +owzs + +esbmgprfvaldcwxn +scdxpezwvbmflagrnt + +qimplaudwo +wmiopuq + +lrnha +rhjatnl +lnahru +arbnhxiel +frnalzhj + +lpdusr +rmpludz + +dmqtpnaeloxshgyj +syimnjqhctolapzvxdg +kqagxotudlbwnhrmfpjy + +dwjkfgmpq +ijgdqtf + +veymdkxsfuhbr +xhzdyfskvirubme +fubrhyvdexmks + +pcujgseytofn +tvngpoyjdsaeucf +jtrgbfyhezoinkcwsp + +mpnfcvwurqazyebxksdj +esfbmwcykpdrxjqvzuan +sewamfyrqpkjxncbzvdu + +nqafy +qjvpfl + +amrvdhswyljkcfgiu +mvugwaifyshrdlkcj +hujmrwsfadiycgvkl +ulfaijxcdwgryvsmhk +gylidvcfkrwhujsma + +uzyhklx +lxkyuhz +hulyxkz +hyuzlkx + +ipmq +pq +apq +pq + +nkvjmtseoh +njortvehs + +vdijn +vjnd +dejnvc +jndv + +k +ku +hk + +hkdvnlzwmxsftuqjpaeboci +kadusyblhgfxwcnijzqpovtm + +uetrqkvm +gerqtvkmu + +kfhaqnluzcmsbwodyp +cbzohfqyknxlajdwsum + +gjlenkd +ngkledj +dgknejl + +tjqoxpuwlvhns +xzcmderkibgfy + +cgyezvtbslamrfd +ruvafyeztxgko +eifznvgaypwq + +qw +qyw +qw +wq +wq + +dihagsqjwoceu +gcqoaduwhies + +jimcebk +spdyvrqw +mhfanubejt + +vbxo +xbvu + +crdvtbnqjhwg +tqvbgndrhcjw +vqgtcjwrbhd +sgrbtjdfqhwuocv +bjlvdrthwgqxc + +hplsrmuwevjbkxzoticg +pkbajhwzqgevyf +bhpdaekjgvyzwn + +yc +qpas +xyu +rx + +icyorxhzfmalsj +brvfamjchlxizyw +zmlbxcijafyrh +iahfymzxjqrpcl +hcaijyrplqzmfx + +jihyxlsepo +pxyceoijlhs +rlubjhemitoayxs + +qnpfsugkcv +svjidkgmrlun + +ywzrmlcpdvbua +acxjgytmfbhoq +aysqmibfkjxecnh + +inbhzjcevlwpgqtuxf +mpcyvenfxszjthguaqwb +nbivgwqrjhxfzcetup + +dosgweiakxtqzvnyp +anixdzlewskyqgtp +eqswifhymrzpaxujktdgnb + +uebmar +abepugr +bupare + +xqieovmrhwzautbd +iqrmzdwxbevoua +aezmburvxidoqw + +guhenaisrqf +fheruiqgnas +pqkhetasgnrufi +eulrghsfanqi + +zrdkwol +dlnojk +dkvzoyi +yzokdjih +audpbqgockxe + +zjnirkef +jknb + +briyfaedx +darnixuyfb +rmafybxid +jisaywdkbfgrx + +azh +qw +qwar +rd +unmpy + +fbs +hjosrzg +fs +ns +ys + +nscofqwtxrejvdizpablgy +pbzoasryeqcftdxwjvgl +vtjfelbgyxcpzuorsdqwa +afvbgxqcpdestryowljz + +qkxsgtlfh +omytrzvpe + +ocrn +kyrmhafteuwbqx +sncvdr + +dymo +hgqsvywocfb +ukxnejyz +hpoyrwvia + +hmilqvgzybu +qvyhlzmigu +vzqlgxihumy +gmvilzqubyh +hkqzduligymv + +nlbgx +glnb +glbn +bgln +gbnl + +soqgwx +gqivswxdo +sqaoxhwgu +wxogeqs + +jognfqazltusc +osfjzucmlng +cfulozgnjs + +ajiwzbgc +wagbqizjc +azjbgciw +gcwbaizj + +zk +zkux +krz +rzk +zk + +xiyjlscpkevnbwthqrg +pgklxebuhysrjwnq +jlxkweybdrnhspqg +jnagbpxkfwrqusylhe + +uaznwpjg +cndbywxp + +htnbgrxzfivoucyqlpdeask +uaolphsrgdqkzbnefxctviy +aodbyvclisqgefnzpkrthxuw +apycbhdszlueonitfxkvgqr + +r +dq +x + +zjobcalmydgnhusekvqw +lcvmepodnyatuhsxzjrgiwq + +jivelthfab +ilebvjtf + +d +l +l +l +l + +arpq +qrpa +qpra +arqp + +toimfp +fomt +moft +fotm + +mkclzvg +rhubsxtydaw + +o +vk +o +pdat + +cpiyjlemrubfzqaogth +cfzajulomeqgyhirptb +yfhieolpqcutzmrbagj +reblamiyhtfkuzoqjgpc +ybqotecahrmigzlufpj + +vkze +zvwke +zevhk +esvkhzb +ezvk + +gpqyzlomh +kvwujrsbtcfei + +pzrhvoi +zipvrh +vzpihr + +tpymbsjurcafkqhe +hmwaqtcbrfpksgyd +ofmlticskynrpzqhba +mhbscykqtepvafr +vmybqfashrpktc + +uijrscazfylboqdxnwtgmh +cgirasfjznohwmqlu +hogunfcswqiajlrzm +wmrfqlscanjpuihzoeg +izfhvkmaocqjswlngur + +nkqtoa +tnakq +qknat +qnakt +tqjkan + +r +r +r +r + +fvoxgbwtdhsculjpmaeyin +iubywltmnzdhkxaqrejgscp + +fcyozjnkersqbxlavihd +lewiyqkzdousagjpnbtfcmr + +lwiznrea +bvcu + +hrexab +hpxrbka +cxizabrgh + +khugcpbyrfmqnlesidx +ncdpfxsaqkevmyhlrjbug +ekfqpmyxsrlvuhgbdnc +qmfbplshxkdnercutyg +gknlmueodxqfphrbcsy + +d +d +d + +fub +vlsztofi +brf +kfn +f + +japfuyzrshdim +fjmzudyhsopir +izypruhjfsdm + +uectrmvolnqh +meqochvunrlt +outlrqechnavm +tcnhvolruqem +hmortnlqvuce + +xjnidhwycavrpqumtb +anjwibuqymtpvchrxd +vpydtrnxuwjqimbhca +tpbvxcwrjauiqyhmdn +gbxmanylueiwvchtqprdj + +xbkyzapsjiqmng +qoizbxkrapgmns + +ixrmtpknofzs +rpmefklhzitxs +ifxlmhptkrezs + +tdhez +ldzet +zde +zxqde +dez + +cfgbvipxdjarhulmtsz +jihxbgdlcuvrstzma +bivtadrjzlcxgumsh +scxhtdvgrbmauiljz + +qakxy +qrygaxl +qxyar + +hcydn +xcdyhn + +msi +mi +im + +pcxmjag +xagpjunk +xfgpjaqlr +xugbjwpyna + +yzhurm +yumehn +yuhpm + +gutifmzkaew +nrxdpsv +qvxn +dxrcyj + +xwycftgsnebjuhomvlrakdz +thnzfjymrlaeugxdocswbkv +qteafygurvnxdkzjpshomlbcw +gnrfkezjbloysvdmtuhawxc + +r +r +ry +r + +a +i +a +a +a + +ibptdxrznheslmky +ondzfrpjbklxtimys +iyrautgpqvblxcndkswmz + +i +zked +rq + +epmks +svekm + +plzebc +lepbxcz +zlepbc +zbaprclqe +icpzbel + +xphyvtwqojigkrencdublfa +frkonpbdyavxtsheigwujlcq +uipdwgytjzoxhvqfkranclbe + +bd +s +qkezvgrh +f +fa + +p +p +p + +pij +ptij +ijp + +fygbrdcukwepmno +hlsvjgatiqf + +ogflexkqdsbj +yxosqbdel +odwblxqspev +dxbesowrlq + +lhtiqaonj +feirkvqjxlby + +hojr +rjho +orhj +ohrj +hojr + +anwtvc +adjmtnevqw +wxnastv +txankvw +uavnwgt + +wdzbrt +scuzt + +w +mtw +w +w +w + +ve +e +re + +ehko +okh + +rdg +mr +ksiwurf +rnabqd + +loqz +mothz +oze + +mprcz +zrmuc + +led +del +del +dle + +fdmwrptq +rpdhfntbml + +zmsvdjkycbfritqoxeulgpan +cuztqjedfmialbkyvprxgons +delvxkjcqbmyzogiftaspnur +zmepnuadxfbctijqroskylgv +ausvpbkzjcdxqmnlwhtoigrfye + +jvfrtmluiks +kohpgyvxuidzbqeamcnw + +ztwk +tlwzxku +kltgz +tjhzvk +kzciqt + +let +letr +citlejhm +tle +xslet + +xyzteu +xuetzy +uxtyze +qyoexutz + +jedkqlhbxrvi +xdqilevjbkrm +dkirevqbjlxw + +dizgv +digzv + +muzhqcxlasvfw +shvqgaywb +hvaswqiry +navsehiyqjtw + +wkpcqalunzdogirvej +evyncwpqbifrl +qlncvpweixrt +lwhfnrqvcmpie + +zidupyhwxqjog +otfrnaycbes + +yt +tyi +ty +ta + +nigzxrupcdjtvasobhwq +sidgrxeofmvpwknuayt + +x +yhd +z +s +sx + +xdbsmwqihoutzgepjlkva +hjxlsdbtwigkqpmueovza + +kmurn +mkq +dkjm +km + +olhg +xldfykhvg +ng +uemiqpag + +bsjyltpnm +mtypbslnj +tmsjnyblp + +exomfdarziwubglvqc +muakbqnwdcrelviop +lfqhcuveoriawbdm +ehvuclmwqdiraobz + +hy +yhve +g +zl + +icybqeaxgfrhwszpnl +fqrdgnxpchlebysziw +qyghlwxrfpzsncbie +izwxresfbygjlvcnhpq + +hjqifdbtmcl +njcix +pojcgik + +dnwkpexog +xfqgso +brzjvyuogt +lodcngw +xigoda + +lwicsbax +cidxwes +wshiecxv + +vrcajmledfihkgt +ikvrelatjmchgpdf + +gmiwhofuse +fgwesihumo +fumioewhsg + +mtulgwsaojic +sijwoclmtaug +mlatsuowgijc +wglajocitsum + +qb +e +va +b + +viqkzfug + +qdgkvsenbmxwhufac +gdwskcxfnqevuj +yckzdsxufnvegqw +qeukcdvfswxgtn +wegcfqnvdulkxjs + +z +r +r +r +r + +ujcfxtgeiz +jfuceitgxz +fzceuigjxt +ztufcxgjie + +lnpquewxgaskbfhdt +mzirgovcj + +fcribz +axdkwbiz + +iuxdqygkwhrzfjn +mzheixfgatqvlunk + +clsixgjnqvphyztob +njzmsxotywvhqclgp +fsovchjpxntlgzyq +ulycvjgsxtznfoqph +sxyvzpgjomlqtuhnc + +kmblztu +etmzbk +qfzktbmi +nbtmzk +utmzbk + +kywjs +wksjy +kjwys +wskjy + +prncsbljtyxgamzvkouwhdfqe +cntevaiurfxjzohlpskgyqdw +kotwhepfrulyqjsdxzngacv + +y +y +y +y + +zrtvjfcsidplxakh +wmfknyolebhuqr + +jselqogdxnkai +ojxgnekqadlh +axqoldjgnwe +ondksqjalvgexy +utafgeqndxojl + +vxmbn +urjmbv +bmvu +mbv + +ijrdocnlpmasuhxevz +ijnzyavrpxlhecuws +ouenvjizlcsaxhpr +jlrnxsaeivzupch +iurpxnsjzamecvlh + +qbtympkiw +ibpqtmdnwyk +yqbtwmkpi + +omlxcenguahbprt +srgwlxtfvzpynocqh +lbjtxnapdohkgriuc +nkhblrcdtogpx + +bijzvwspuergxfykhqnot +zoyksqjpuxrwinetvhfgb +nkifyurjszgtvqwxbeohp +nfsvrwtyjiuexbzpohgkq + +vnbur +nrbv +nzrvb +vnbr +vrbsny + +zrbhlpuenxygdjaowsmiv +lmrvjnyqzdhsoxaguieb +jrzuhsgyveldnximabo +hozsixrndjbmuyalveg + +fiynrscvz +lnxricvs + +zd +dz +dz +rzds +dz + +ucqoi +uib +umbief +uim + +cjbhpyaxmsknwuqrfdvze +kjczaunprhvwqbsdfxeym +wuzpjkrcyehmqdvfbnsxa + +zy +yz +ywvszd + +flykisxv +fdxsinvyp +wyxtirvef +ivhqbxfyl + +ieyhcbozswt +xymwa +qyvlurwgj +wdxanly + +sdnobwuzcrepmhkjq +johqkdlerincxbsazuw + +zpngeckafjmhq +pcjfzhnkmeaq +eczakjhfqmpn + +chfdiv +fdsvrct +kxmgfvcapyd +wqdnefzvc +ctbefvduw + +jqlaf +dqflja +fejalq + +vunyzasqejkcp +pcjkevzsqymau +vqyznpakcsjeu +ksyucanqvepzj +zyqacepkvsuj + +vfgtirsalzy +tuzfsgvrliqay +tifsgrzylva + +nyevhuadf +unoqbyh +uynhwrk +bynuxh + +twiqrp +wpqi + +votlpuzghrkewfmjs +whkduvpcefqxanzjylosim + +urlnqsfopxekw +mrgqolfcuepav + +n +nh +n +n + +x +ga + +yihp +hiwpy +yhpqid +pihvey + +brfenzw +dxkybzrie + +vywmnzepihscud +msihuoypkczde +upyimedhscz +hyuzsopmdeci + +tdkxzwvf +jvtywi +etwvi + +ypjvrasilunbtqdx +broguvayljzpdtxqs +bdjtrvqlsyaxpu +fjvldbtipaysmkqrxu +phjxybqvtmnleursad + +paqnxcdr +xrdcjpnq +qdrpxcnz +dxcqeknpr + +bacuhisopvrtjly +ivuohtjspbcayl +htaljobyuvsicp +dvbialtyspuhcjo +txjabqhcpiewuyslov + +xqfiwaorpengbyvkujl +pvewxnbjuazoikrflgyq +oewnfuphibgxmydvkalrjq +jflqibpgkwxuyaernsov + +lnm +jlnm +lnm +nmlz +nlm + +ifkvgwbux +yxguqfbvi +uixlwgvfeb +gvbufix +eifxvubgjz + +amecyjkpf +jmyecpqdn +rbtjdpwack +lxszhcovgp + +ivnfl +ihol +fcil +silyajudb +ifl + +ywtnmdfeaxqr +eqyfrwntaxmd +axmntrqwefyd +yexqtndmroawfh +xeqfwdnyvmuatr + +xfurwyjgmh +hurjgymwfx + +hmzctpxvk +pchvxtzm +tchpzxmv +zcpevhtmx +oamchzvpkxt + +q +q +q +qmn + +snfjolcvibwqah +hlvqjfnciawo +qcnodvhalwjiyf + +owmzkiehgnabfpysrduj +kpyehrdwqoacmiugzfjsnb + +sqwxtuzajvibrhmc +rwcbuzaxpmiht +omftruldhbnace + +zwmlydvatgrfcuqpsb +yqbdmupzrtvwaf +fmqepantxwvzubyr + +xytefoikzngwd +zflkxqwayb + +g +g +g +g +g + +wkofhpezdnjutg +yhltejszpi +azbpestjh +zetjxhaip + +ht +h +h + +btmo +mobt +mgtbo +bomt + +zskl +zklsf +lkzs +skzl + +wnbdjeruyvslpzxmckft +kmcejnuldyvhxwoiftzb + +nigmjydoukv +gjkumodvyri +mgvwkfypedzosuj +vymjdukoght +lyckujovngmd + +cvgusohbrn +iacuyzmqpetrflx + +gpt +uefzyhb +cgkvsmnl +rdivwgqtlp + +otv +ltzycvxq +tvfwp +vtfgdwh + +gbqzw +wzhbqe +bwzgq + +shuvla +quzyjhdv +uhscjdey +aur +otipfwnbkmxug + +ocpvhuwqdbmneykfzaj +ovpyqwnefazbuckjhd +ifhotawzqnkupyrbexcvjds +ojlauezvknfhwydpbqc +yoknplcqzfwhvbdujea + +ghzj +igy +lzsv +qumbofr +e + +ayhikcwbgjml +jwtcgqforxsekva +myzjwpkncdgua + +vicomdrjquzshkbwtlpnfeay +ejcadvbtrypzowksmqfiuhln +cxypqvjksamwtdnozrflieuhb +dpjacvoqenfyimbksurhtlzw +kfcatrdowvpuynzejmsblqih + +cr +wacduy +c + +djv +vjd + +ogldnxqtiys +elmfqcohdygkri +nslduvgyaqoij + +clymkfiwz +hzkylmc + +sakvjmyfizbcq +cyzmwkivqafbs +cabifmykjvzsq +kcvfymzuaisqb +qzehysbvmckifa + +hditryzeu +juwpvnzo + +ufqxci +qfuxicps +iucqfx +xcqfui +iuxfcq + +pidvxwycu +zievnqjbgoyt + +vbqmihp +evcntxykjubf +qhovdbm + +jdfonaphgyxi +iwynxpajhog +nxogaiyhwpsj +ogaxhpsniyj +gjisaynpxho + +zbrepv +alqfzgtdw + +yfsoxnqjuz +xojwszfnqu +onjqfsxzu + +lgvpdmnkiurtabfhsqz +zqcwafpibmu +mpfeayziqbu +bupfazimq +cuqzmoaifbp + +eycspolqtmgxfinhubjdrav +cyahxpiqduemnstbflojgr +mpqntasfhbyudloxjcegri + +orljgtybvwqczm +klrymowqtfgvjbxz +vrmzwtyqbeioj +bvphmtzsraywqjo + +faylgwiq +faqigywl +qygawilf + +hfywiasvurbomednlctkzxqg +roxedzcisgvawtnmubyhqlkf + +vuijyqr +jqvrueiy +qturvyi + +mpbxraufws +xfmsuwparb +buprxashwfm +wxuramsfpb +rsumwxapbf + +erkp +fyugptxac +wqskpv +hsqkp + +nogxpear +anpgoxer +rnaeogxp +rnpgxaoe + +adnvfrotiqpzwyuk +bspxoalcjzyemk + +qjzunbtcfpeka +uzxcakep +ukzpsace + +kwyxcvnlqr +chyrqlvfkg +qjbpmosckaverydl +utvrzkhqiclyn + +riahbufynqtdlmpvcgwo +pehyarlosbfdtnivwgmu +mjorpdwgnflhbtuaviy +lqpifrbndahtgyvumow +rmvpdnlbgwyohaifut + +gpavjibrknhcqlm +qcvmghripabjknl +jqtbglpvanmichkr +cimhlvjgnarkbqp + +ymacz +maycz +myazc +amczy +zmbyucak + +agpsur +wuxgha + +rzuhgywcpiso +wyrdvgziumco +cxgarwbziytuo + +lpdzmx +dplmz +lzmpd +zdlmp +lmzpd + +frdoayezvpsktjnmbg +rmacqnotwlfgxksbjvpy + +wfqrzcyal +fyazqc +ykaqfbzct +fxzapqscvdge +afqzc + +jhgfwptyqxkivucbzmslanodre +htbepirmlaksfncgvxyqudojzw + +tw +wt +wt + +iqzpnoyek +eqyzkmpnoi +gxwqzpekinyot +zndoiekypq +zyqeonfikp + +yq +qy +qy +qy +qy + +wips +ykwp +fhrjauwd +wiles + +dxvsrgqwaouphlbct +rtpvolcbagshdxquw +tdrvoqacpbslwguhx + +oif +oxfisdj +fio +foi +ifo + +huizasogdpx +zuki +kzrtui + +d +d +d +d +d + +donxvciuf +tfcvnuldqaox + +x +x +x +l +x + +plnakucoyzxit +legpvwuhxzfr + +lvmjdfwynebaqhstrp +sbayepvdjltnqcfmwrh +vejtmbnywsfqhrdlp +fjxetdpsylmhwrqbnv + +makszcoungtfb +bztoacmguknsf +ugowhxdqanbtmijpvfsckel + +wmbhjfrx +twbramjf +vyjswufdbpk +lbifqtjnw +jowbxif + +irfpwxjenl +ewnfpxril +xwkrfnepil + +dpwjzq +xjdszl +djz +eydknjzv +qzdj + +duwmogcekjaixlhv +jkdovumgeihlcxa +gvpiaxlzuoejcfdmkh +lhgmvtxcwkjuaioed +meghjviuakodlxc + +xoelhpvztacqdwyusrmgf +hscyfqwztglikpaduoxebnr +pgacfzqxtdjurseowyhl + +xbcjsif +jcxbisf +xfjscbi +jcsxfbi +cjbixfs + +gehfpztbindcma +zhitnefadcbmygp +mnedhbgfzaiypct +zpibghtmoeadnfc + +oaypzsngw +ygpnouawxzsc +ypsoawgnz + +pkfmshoulytcb +lpmsdtacyobhfu +dlyhusbtwomfcp +lymutphbcfsdo +fpsmctbhuoly + +hyiaronfpjx +ypjnhixrofa + +rlz +zlr +lrz +lrz +zlr + +uztaxcpbngj +wkfngj +nsgj +egnjik + +kzprnhav +ekrgafzvd +kvzaer +rfzvka + +hmzesytalnxoidpqkucrvjw +kiwxhsetqrujzodcavlmn + +fzpcawsbnhmrg +bganrmwhtcpfzs +qngcawipbhrmsfz +acrphnzbwsgfm +hnzsgbwrmapfc + +tgsbymldoazj +zmbwkdyaostpj +szjdtmobqka +thebzvsrxidjmoan + +lfamv +ljbamxf + +r +f + +lmpqfbsuxcagowh +nrucpjgwhba +ruakcdtngwhbvp + +bdirz +rmnv +cidr +kuyxewtfhr +azrl + +rshfoiwdcjyzktaqulnbepmg +rpkmtozysqifechajlnbgwdu +hafwblznqsuiecpgdomykrjt +efqyidlogkbjzapcrmswnhtu +dsaciglerwjuknfzmhotpqby + +d +dt +ltd +cmd + +wfktqjrhoul +pjtrhlqwkuf +tlrjuhfowqk +ktcmhnujrwlfq + +xysfd +wok +t + +ckbxnjyolfdawize +yefwxjbzoinpkcdl +cdyhkzfjiboexlnw +wfjdyebvrngcliokxz + +nwmaljtku +wlminujkat +tjflnmukaw +wkcjnlumta +mjukonlwta + +ydlsqjrekwicu +sidelwyx +yibwtloshde +lwuydesi + +ygmh +myfdh + +rftdqabxkunzgm +kbxnaufmqghtzd + +u +f +f +vma +i + +hxgncyiudjvkszl +lzsxkajufyighcd +yilkujgcdxzsh +ixdhzvjykufslgc +swymbpzdkecjguxrilho + +p +egpf +p + +iqec +ecqi + +zubeh +huez +uhze +uhez +zehu + +evtip +tvpei +htpvie +tievp +vtiep + +zqydx +xzkqn + +akfrplijmcdwbv +hgucpnykxtimfsa +paqklbemrcif + +zqxdnfkgmursvpwh +emblatjicyo + +efkobr +oefrbk +bfroek +ebofkr + +sgpwbkcztuxflro +zopatwxrucfgbl +wkurcxbiglpztfy +xzurgntwbpcflh +ftrwulzbxcpg + +zldgofcmki +zkhmlfiu +iekzdma +vikyrmzbpxqjt +wsimkz + +qzjapnus +pnfjqzusa +pnjuqasz +funsqzjap +wqayjzusnp + +akqhvfipw +hwkpiafvq + +vqwrumak +aruvyqwkl +urkvawqf + +tzmonhcwsdxy +keiutlpaqf +tpvfbru +etbgj + +txq +tn +teli +tvl +lt + +zgtsjdlk +tjgzs +ztjsg +ztsybgj +gzstj + +zinaqxudyplvbmf +furbycpzvixlnam +ulpmbnvyizxajf +bauqplnvztixyfmo +soumpbfeixnyvazl + +a +ai +a +a + +kaolnziybtxrd +xdslyktbicrwomn + +fybupjseqcmt +yjufempcbstq +tpyjuecvbqgslzxf + +nfvxry +vx +vx +xv +xav + +bycphurqtofvzmejg +scthbufvmyergqp +ypvucorhtxfegnqkbwm + +fpgciebqjo +eftqgjpcibo +bczoqpfgiej +jobpcfeigq + +ikflzmrobax +byoklfiazmxr +aolpmgxzfbrki +tauviflxkmhjznrsbo +rlzbmkafpwoiqx + +zxgrsheoqvmand +jgkivfhmaxo + +qrhwlmfoiakcxbnu +mizvykdfwnqegpu + +tqghprcaowsxemivljzbn +bwrlnqgijzckdtovmphxsf +gvtnixcrjlhszqpbowm +ntrljwxzvmpgsobihqc + +vnrtyixgah +tmwyihanvbf +ytahvinp +sarntyhvi + +igj +ij +j +nj + +cenajyhz +lkfsutaic +jyormceba + +qoarlzhbpjsfdw +tbecnyv +gbcu +myxkcbv +nbig + +cvh +uza +ysqmw +ukga + +ckvohwuq +mfdgtbovclji +ovaryuec +cvqszxro +okuvrcse + +cslo +loicw +clo + +eibdaftnpkvozslur +tnvaeskduolfzqbri +frebanpdsovilztuk +baokzvdfnrutlesi + +scqhtlwkxodgvmfjaebunry +qcvsihbjdrgwxezaoulmn + +nkzlugqfheivcmtbdp +tghqkribvfpunlemc +jqlbpyouetmihxwkvanfs + +emsjdnqwakiflxc +lkfdiejnwaxcmqs + +opcsalzm +wazjl +fkapslzw +ilqabntz +czjalrv + +evolyu +vrseo +ztuvoe + +r +r +c + +kcyva +kcvay +ykcva + +vpfyshuxjl +jsxubvhyli +uhxylwsiajv + +qoaxbgipkj +qpixolgykajw +kqcxnagpojhil +gzjmpuxtkfqodia +igqekojxap + +tqgkxizfral +zxkgftqd +dkhqzgxfts + +di +lt + +zqapsde +uezarpg +zeap + +vynpzifqelhdc +fnykpqdcvi +dpyvfncseqiz + +ivcfyqpuzn +lyprisgjzb + +omecvljytrqdhsizbnaku +udqhsrwziecvontbjyalmk +rziounkxcyhsetbdvljamq +dcvbnoeifhmujztykrqals +oyjivrleknaqutzcdsbmh + +ojahsn +jcsnhoa +jxdnagle +rcnpbhja + +zqt +zsqt +ztq + +vhz +otkn + +arvqefczkdbyptwhn +izhcpyvadbrtsfnkwqe +bwhzqckerydvnpfta + +lega +gael +gjlae +lega +elga + +sagqpktolcjnbxduvif +jraphlikcvofdtbngsxuq + +ueapyvcxjzkmdtofwhbi +kxfntzweyojaudbhvcmip + +esqtdbwny +ktihlxyozbepr + +kptwgyqjlshinzcmfraoue +ecqfgzrmsnjoyuwbhptiak +fesyrhanczkopgiuqmwtj +htszfijegmapynoquwkcr +gpvuwrtoeqscxhfdnjkizyam + +jupyabtgzqkenwxmdov +khpzbtidyxevwnfjqragmuo + +nrjpulko +snepoclyku + +lizpwtmqu +bsvrkjhdancye +noxyegsdcfvk + +sbg +k +cz + +a +a +a + +xriamvkljbzeyqpg +lwbxpmygjizeavqkh +vaqizxjbkypglem +iybvglmzpekaxqj +plyqrzibjevgxakm + +vuksrmtnxypfhqjd +rsnkhjydpxvmtqfu + +kwzxnla +eibgtvqrpof + +rlcvxobkwaigdtynu +trincuyxalmkowvgbd +gtwnuicvyloaxerkbd +ultgindkaevxrbcoyw + +zeixf +zxeif + +vxdztljhormq +mvjodztlrkx +orxdlvzjmt +ltoxvsmzdrj +lzpomjrdxtv + +mdjpnelh +dhmpjeln +pedjhmln +epmnjlhd + +l +e +g +k +egl + +ntbzqkajovmluxfiwrhc +zlwjvhonifkqmtxcruba +twbckuareohvlzqmxfnj +lzhkrxudbmfvjtwnaopgcq + +qtfswx +ftwsxq +wxtqfs + +jdfrbvegyaxnkpzuqc +fxvrplchsnjzquig + +ncdwaxzjpurlhvogiyk +iuyzanjhlkwgcvtpodx +njkvwoulacgdyphzxiq +oluejdmzhxvknfwgbapciy +wkuydhvzjlagpcniox + +hwzt +htw +twenp + +zyeaxcopib +mjygholnrwzxcp + +hlcyaim +clmhya +lahmcyu +yalhmc +lhmcay + +twiyljbdfpz +xwlzbfdyj +eybldmjfwz +bdezljnfwy + +beokvws +bokevs +svkoxlbfe +emovtsbkyq +bxkovse + +v +viczk +nv +vo + +wioycgnlvb +gnzivbwl +bilvxgnmwt + +tfryxampokhneblv +oyhmpbvknjlwtax +atcphobxykvlmn +lkyvnxpbamtho + +lfq +mzfloh +flr +rtfkdlx + +zob +ztobplj + +agfhdxkitvezqupcmo +dmqfevwiacspouxzgkht +izchgpefqamtkvxduo + +jshdzpmqy +psdyh +dshyp +sdhpy + +wf +fw + +obtyelgzwunkramj +ogzwbjtkauenrlmy +lratujbnowgkmeyz + +kymsg +gnhw + +zlwhvaxn +kciabjwq + +fvupikynhtdzwcgomebjqras +raxifvbdpyuosjwhmtncekqzg + +ifsz +waek + +iyjeknxqbc +xkqibpyeac + +ln +oln +ln +nl + +nldwurygtea +hfkenyl +sfckenylvhq +xylqnce +lzpyevn + +mrqjwyzdfpsk +szfrjpdqym + +vqowkpxziunbrdhfgat +fblonvrwithaugpz +iwnaohtprvumzefgb +rfcaopswtjuhgnbivz +rfngzabviowtphu + +uenzqimokwrcaxt +otemwixzrcguqa +qiufamzerotwxc +mropxcziqwtaeu + +lbqtschfuxdo +bfcvdhqxtslgio +fchtzbxolsdq +xqldtfcsoheb +leocutxdhbqsf + +ldoeanfmyprbujqgztsixwvhk +ahnflzogxyitbdwvmsqekpjru +ujeqmnofkltvryibsxwgdzpha + +gjzm +gmvzj +zgjm +zgjm +jmzg + +vtcadkes +nvyzpas +asdkv +fatsvd +vsa + +esxdcznpbqfl +szdfplcvnbwrea +cxdnobpfezls + +kfqazixnrcmep +xwdkquriylohfb +kruiqlhdvgfx +rqktxofviby +qkrdisxftlwb + +uxbvmtedijgfq +rxwcnasiyvluzjgq + +qryboljcgs +klsyqjmg +qfgytjsl +qkavjystelg + +ihwaotvbldgjxp +wqcipsukoynfrez + +f +j +f +f + +dxky +dxyk +dxky +xdyk +ykdx + +mfoswjcylnuqxzvtdgahr +ovwznrdhptsbxckuly + +brxojtnefkhdqp +imwshgcuzyvjel + +cyrzobudkxh +hixnbwkudzcpjr +gsqvhextflabdrm + +ya +sfti +g + +fezqityovsnbpglcwjx +jvxwdmtrspglykez + +dizgh +ufvzlxsdah +ykpzirhdg +rzdgyjh + +slgb +bgsl +kybwlg +bgl + +ejknlhwxsmqvdizburay +khbvdusqrnmlzwjeia +jknvwrqzbhaisuelmd +ulivmajzknedqwsbrh +dzvbejqwlatkhnrimsu + +c +iesu +myvr + +zw +iphg + +b +b +b + +uvgqi +vgqui +uivgq + +rapwh +wahpr +haprw +awhrp + +nyhmewt +wemykn +wnmey + +mwgtdrpha +yeorucslfkvxbqni + +wb +xju + +xvhibjznw +vmzhygtfiq + +iklqa +qaliz +aqli + +rjgvinpzwtumc +invuwpjtgzrmc +tpuijngovwmrz +mtcnwivgzrjup + +yimhdz +ocgmjnvbaxdhq +mrhzd +rhmd +hymldz + +xcsebkmal +bxefamks + +fcahqgr +xaqg + +ayiwouqbekslfmpx +sbilmeoxpyqkuaf +olyfiubapqemxsk +qiexlfpombayuks +poaxysfulmbieqk + +clsjyio +jiozy +axjkoniy + +uwzbjkct +ujkcwzbif + +cdkguobtlpyjwfrzhem +zmtkjwdnohercvblaf +rdjhocwbltkzfme +tairjewbfhxdqlcmzko +rzkfocjmwthedibl + +m +u +fie + +hryqbcnxvtg +xeazwsumq + +jmiaz +mbjzia +zmwaji + +ajm +amj +autemjh +maj +pmja + +qfpietdhbxy +qdahtybepzxi +ixqyhftpde +ihmywkrucjstdexqopl + +enktj +vqgxdrs + +gnkcevrabxsdlzoq +rqogvsbeladxcznk +kdscagezlorvxbqn +obnxaervsgzqlcdk +rnkzvxgesoqcdlab + +kfngqdutbvxiaemc +dxmqecbauivnftg +udxaqicmvtnbgef + +ranvgxdpe +ngvpde +epnxvgr +ywepngvu diff --git a/day6.ml b/day6.ml new file mode 100644 index 0000000..96fa610 --- /dev/null +++ b/day6.ml @@ -0,0 +1,42 @@ +module CS = Set.Make(Char) + +let set_of_string str = + let rec aux s i st = + if i < 0 then st + else aux s (i - 1) (CS.add s.[i] st) in + aux str ((String.length str) - 1) CS.empty + +let all_char_set = "abcdefghijklmnopqrstuvwxyz" |> set_of_string + + +let read_lines name = + let ic = open_in name in + let try_read () = + try Some (input_line ic) + with End_of_file -> None in + let rec loop acc group = + match try_read () with + | Some "" -> loop (group :: acc) [] + | Some s -> loop acc (s :: group) + | None -> close_in ic; (group :: acc) in + loop [] [] + + +let part1 filename = + read_lines filename + |> List.map (fun x -> x + |> (String.concat "") + |> set_of_string + |> CS.cardinal) + |> List.fold_left (+) 0 + +let part2 filename = + read_lines filename + |> List.map (fun x -> x + |> List.map set_of_string + |> List.fold_left CS.inter all_char_set + |> CS.cardinal) + |> List.fold_left (+) 0 + +let () = print_endline (string_of_int (part1 "day6.input")) +let () = print_endline (string_of_int (part2 "day6.input")) diff --git a/day6.test b/day6.test new file mode 100644 index 0000000..0f5b3bc --- /dev/null +++ b/day6.test @@ -0,0 +1,15 @@ +abc + +a +b +c + +ab +ac + +a +a +a +a + +b