diff --git a/AdventOfCode2020.cabal b/AdventOfCode2020.cabal index 05ad01d..95a9825 100644 --- a/AdventOfCode2020.cabal +++ b/AdventOfCode2020.cabal @@ -17,7 +17,7 @@ maintainer: gael@depreeuw.dev extra-source-files: CHANGELOG.md, README.md library - exposed-modules: Day1, Day2, Day3, Day4, Day5 + exposed-modules: Day1, Day2, Day3, Day4, Day5, Day6 -- other-modules: -- other-extensions: build-depends: base ^>=4.13.0.0 diff --git a/Main.hs b/Main.hs index fcea873..35859d5 100644 --- a/Main.hs +++ b/Main.hs @@ -5,6 +5,7 @@ import Day2 (day2) import Day3 (day3) import Day4 (day4) import Day5 (day5) +import Day6 (day6) main :: IO () main = do @@ -13,3 +14,4 @@ main = do day3 day4 day5 + day6 diff --git a/input/day6 b/input/day6 new file mode 100644 index 0000000..e073d81 --- /dev/null +++ b/input/day6 @@ -0,0 +1,2101 @@ +mswxhfpl +xmhulfp +jhglrxfvmp +xtldhmpf + +c +c +lc +c + +zxe +ex +oxncuje +vdex +devx + +xjylztwnkbma +apxzvjlwnbdyk +zlnbrkyagwjx +ykslxwbjuzang +wjkbylazxne + +aekysof +ecfokmdaysl +ykiosefa +oxsugykeaf +fstyoake + +svzgnfiujobmc +kjlvfbnwimuzdqtgsec +cgijufnsbmzxv +csfnzvujmigb + +jzofxqebrk +zmverjxoafush +ozclfjbierx +jforizlex + +cedziyl +lnemy + +oujdnhgwlqfbmpcrevktaizs +covqbthupgradfnijslexwk + +eawjhlxrtc +ahjlwexcr + +yhnidq +ehznqy +qhyn +hcqny +qywnchd + +skzfnylhmdqcgjoiuv +zwlujnyfismkgdh +nyfxlmiuwdgzkj +jnekmgtdpfuzilbr + +gecslpwytzojbv +retwyjsaclbdovzp +cjuvysbwomlphqnkxz + +xtqpviho +gqvpiothzx +thfcoiqvprxk + +jthwqvmbodsi +ojdhilmqstv + +cflmw +wxvmct +aihergjyzdqob + +zmesxd +wjcx +gcbx +xpbv + +sx +ph +fdxg +fws +fa + +pbjtdyizfqnrgloucmax +jdfmibnyuzcxtavqrpgsl + +j +vynjf +kueiaqgod +pfmxby + +vdjbnwz +zwasclpx +wfzr + +pf +p +p + +mch +h +w + +qkeadjmtczxrps +cxrmjkaqzpdtes +esctpmdjxkzqar +ekzdsmtxjqcpbwfar + +edvrzgwkcs +wsvdzkgec + +rsu +rloufsk +utrs +urs + +zprftcsdnqxkblyuhvje +kvdrtajflzeqxhysbp + +mrf +pfrm +urf +nfo + +rcympeozltx +uztmycxl +wutxyzmcl +dvwcztxylbm +qxjhzamykltc + +hoxcl +lxhco +xhclo +ohlcx + +eybugcnido +oigyeunbdc +gnieobcduy +codnibeugy + +zvqjxpwakbdtygemulifhrsoc +qoxapdubyhmcgkeftswrvlizj +tysoxrkpbfhvmdlzaeiujqcgw +uxeiclqrvwpmhatjskfodgzyb +iudalfpszevwjtxcbmoghkrqy + +o +r +k +o +r + +i +iqs +i + +ntbydrsj +drvpnfmbgxowi +rbtdn +reynubd +dnabrz + +wsmlkzp +klmwpsz + +cdpkmfyotaxl +hcgipntkua + +wdphxlyagcvtf +fahvdtwgexypj +fwadhugxivtyp +whpdgvxyrifta +xadtyvhpfwg + +nzliogx +e +je + +c +e + +yqlemtbvrohpk +zmpbvthoqunkrle +tblrhmpkeoqv + +qido +mdktovwalfju +sybod +qdboi +dnbog + +qpgj +dypie +jaq +yf +tusvwmncr + +knwsuztcfrqyvjb +edtrazumclkjof + +vo +vo +v +cvmf + +cfxyhjorspzdbqnvwa +yvbhnqusrcpxawfjzdo +bzqnwfajcovyxsphrdk + +kczjha +tzqalgvpx +kauz +nawuzfeih + +gwknqytrvpusc +gnpucwskqv +qsvunkgwpc + +cfxuqsywnbrphelktmi +qrfhskmluetxwnbicy +ymtbeckhsjfvgnuzwxqlrd +tuynrwxckehqlbomsf + +mzkyn +uyoxtkem +rselkop +vigbhwfdqackj + +hzoditwmkseaqvr +rdkstohmaqvez +pikrasoehmqzdv +hyovremdqsucknzab + +bnjywtdxvoq +cdbqoxwrt +etmxpdboqkwhuzl +xqbwotadn +xsnqbwvodyt + +fxqkozj +rtnslf + +dsknxltjremvzo +nlozxmdvkrtejs +mvoerklsidjzxawtn +nzkmsrxtldoegvj + +l +blc +l + +mbhdfyvxzciou +oyhbiuvcmfdzx +cixfdvymhuzob +difuyzobhvmcx +dxycmfuizbovh + +fujhbprknwvltcm +njvrxsfbdqagecoumliz + +fctvyqsoulzwbmdparigx +luhkiejfgyoqzrawndcmps + +fbdxwpecovh +pebxdhvfwoc +edofpxwvcbh + +ptesvjkbdawr +zxpwuhrelfybnjv +regdowbpvcj + +t +q +nugiav +es + +h +h +h + +rzbhp +czbhpnr + +ftovldbexga +lobgkcxqdrejy + +z +z +bz + +bigtxjsafzm +dlnzjukcxbvtwmp + +fp +fp +pf + +zxgovsrcfjutwqkelybpaimd +kgsujzbyqeiaxcmvotfdprwl +eqgmvoizprfsdlbnykuahcwtx + +axfcs +faxsc + +t +t + +gjardhk +gymjrhf +rlohugbszpj +hrcqgxj + +kdyaqxzlp +kdypxaqlz +xadperlzyqk +dlpaykxqz +ydlpxzaqk + +bumwf +hmuwbf +wbumjf +wbufm + +gvtrbwyoemajicfqkpsznl +ntpjelqbrwosaygfkvcizm +joqrgykmftclnwiesvzabp +vacpqzebgytkiomnsrfjwl +bpklgfwonicthezvsmyjqra + +fyhblqmotxiav +vyziosltfbdnkxjquch +ilfbwxevoqtrhgy +nmxshlouqbiftyv + +l +l +l +l + +wt +rwt + +bdyqkonw +nzybwkxd +dwkbhyn + +yqvzrxgwhkapjfbtuocnmsei +pfnatxsmjeoqzuwygikrhvc + +ejsktcwgrhuf +irjhkzogfbepv + +nxqfubpw +fpnbwqurx +xunobqgfwp +puwqnfxb +nbgufxqpw + +cwyd +odwyc +dwcy +cdwy +cwbldy + +ftomgqcl +fomgtclq +fgmtlqczo + +lvxjqb +inldekpms + +gcprvyta +vtmypzrgaiqoswun +yxrgvbatp +gevatypr + +clmoytbvweaxpuhgzfdki +cpvzahbtxdiwlf +bzifpalhdxctwjv +atfbvxdpzlwhicn +pvflhxibtzsdcaw + +wcrvztqdlboyhajpsn +zcnrkvlpyqwbdjhotxas +nhlydqcvbirtpszjwoa +tdhlebrcfmzyqavponjws + +mibplyvrah +pyblgkriam + +ocyudmgxkelbznavf +msvgbzkoduahqecnwx + +hmcwetindlboqg +pmqesoxwbvfyndctjg +lwoktgnbdqzcrmeu + +dzkbgjcwripto +jigscwfptnv +pijcqmwgot + +ey +y +y +y +y + +sajmqc +jcaqs + +pbwcnxiksumzr +twuplsmrnbczxiak +muzxcpbdkwsinr +vzwspnrubkxcmqi + +ismvnoaxj +iajomvsnx +nosjavmix +jsoxvamni + +opvzkytiaslxc +ucoktzvyalpexis +oazstxklypivc +sokaiylvpcztx + +nvarkyce +ctxrjkyevb +ycrzevk + +gjtovuln +blujitongk +oltugnj + +bktapxzq +zktapqxb +tzaxbkqp +bxqazpkt +ptkebzaqx + +jd +qje +apcbl + +mavsrdnzwlkhjpbqxcg +qnbakvirdpmwgsxhjczl +qgamhlbojncdkyxpzevrws +kclvwnazrhjsgpbdmqx +ptfkzvmwsgdhaqxlrbnjc + +pkaywuzgvlbhf +wypbflhnxauvz +pzuhrgbdvalfwy + +jubkivaofsqcdrwynt +svogcltjufxznirqbkh +wftqnsivmrokjubc +yukepnbijtdcfqsovr + +jiehxtqmu +mjqeuxsthi +euqtixmhsj +ibemtdjquhx +jmetuxvqih + +pmatrxqlygbo +tygralmonqpx +ljkgmeoyraxpqt + +txilwvdspnukbr +wcimylaqr + +kzcygblopsftxu +fyupmztolxskgb + +khnoluj +oyngjhuq +bjwsafv + +rstwnlif +lrqsifwn +enflywbsuirm +frvilwsn + +hsxelyjfwucpmrziqtgo +yacmkivbfsxgonqjz + +vdpukihqgnc +vgprqiscnthkud +dvchuipenqkg +haivnkqpcudg +kuvcdipgnqh + +zcrdpbi +prdibzc +cdpqbrzi +rzicdpb +ribpczd + +yfazwxeihqvocpr +bjmkhuldtgsn + +p +xedbl + +soqby +sotkqm +pgresbm +vpsm +nzufwljs + +byakldxptwcjsiveho +owuizctyslab + +mhrzloeiqcs +hokimzsqclr +hiscqlmyorz +mloqisrhczk +qoimhsrlcz + +uzr +gwequmljtsz +uiafzo +uzfd + +sp +p +lmupfk +p +px + +cgkzn +aqs +yl +as + +qpujg +hsqpyvke + +baenkcjylfm +aerkcnlmqfy + +vskbapcx +kasvwxp + +empwustrcoxfhq +xetsqomhfjcpuwrn +wqxershpumofct +pqushctreomwyxf +qowfpcrsmxehut + +ngtuvzhswm +uaejfomtkdhxg + +fjyg +gyfj +gfjyl +ajfyg +gnayfj + +beunsyft +ngwijdahyu +xusltnyeb +nuymc + +ehjtypbnz +nzbpjeht + +wlvjeuonfxamtdkyh +zyxetvolrfumkajndh +yhdelsnmkvfxajquto +dajvxkmoulywfnteh +paxvofkdijcuyehnmtl + +wokleznhtfujvsyi +esuihwtvmolknzyfg +wtxounhekyflvsiz + +jmxdruoe +mroqxudeh +dumexro +mudorex +rmudoxe + +znwimsoye +lnm + +iduvmxqajc +dicaxomvuq +cqamxuido +bmuxadqci +qsuxlraehcdmkpi + +fsvkmx +yejowu + +c +c +ce +cx + +rgisypzduoafqenlvbtkchx +ubrpaoylztchesxinvdfkqg +hxoeztdngyfpavrqibkulcs + +xwudgpln +hdvbyfergxlu +rdgxluy + +duzxrwnbpam +mnrpudasbxwz +pwadxrnuzmb +wnuxrbdpamz +punrmzbwaxd + +txfcywbrpqdo +xtdrbcfowypq + +ph +h +xcah +h + +dupzmylvkoexhbnqia +hnbxjpdylvakezqmic +mxvdkzpyqenhlbia +qlihkeuzmabxvtdnpsry +lndvfyxzkopbiehqamw + +pzhqidceusavftrbmj +mrhftapzujqdb +qrufxpbthajzdm + +ejzrvwf +rewzfjv +zjwfevr +rwejzvf + +dh +hd +dh +dh +hd + +unpxarehjdtvfcbi +neutmazvipjgxdh +ahvdnuejtixzp +vjmuyldapnkxhtei +ntvkhdxpgozqujeai + +hwxnscaozpdvmykfr +ymnakxuocsbwtlhfpir + +zjrxsc +xrcnzisubwjkv + +ambgxr +argxmb +gxbam +gbmxa +xabglmh + +hdoqbximyjpsanc +qjyohadpbiscx + +oaxmgcrlufztn +gnatcirxlmfz +umxarzfncgtw +zjgnqmtdpckfhayresx + +ivtwqcunjp +vqfucptljihw +ncuwvitjqp +tcjrwpvqsiyux + +fjixvbl +lfvbo +lfbv + +zojqrydtabghp +drgxqynj + +sk +jse +nxcsui +deos +szfk + +tmikxzohgyndcbjafuqpv +cvybqpfouigjkdhanxtm +xvckufbaqnhjdmgipoyt +canqkvfgmhipdjbyxtou + +bjqcdzy +zxjtcbyeqwv + +qcjtnyeurskdmgixbv +cvdmrtsjgxbyoekiqu +riytuqxdmevgsjkcb + +kzmfdtouep +omukctzdepf + +tjo +kfpjx +wjfuo +cijn + +bcoepgd +xcduofge +eodgtc + +ourfgclz +mjyvexginqkop +ughfadtbos + +eyrojsbd +jsbrdeyo +jydebsro +erbyojds +odjgzbrisqehy + +ejtwasqflokdivyxmgnb +xscwtfmyuiqrek + +mirxqkfatbysz +viegbdjwlpch + +egnvzfmbxduh +jbmvkgdneux +xnvumgyrebd +omcivlsnuwegbxad +tuexnmzgvdb + +kpyfabhiq +hpqkibya + +ryqlscavmi +svlo +twslv +ovsld +suhvkl + +d +xda +d +di +d + +gmydaz +pvjyrhx +vxrhye + +pmxn +pxm +ymxp +xmp + +lsktqzeodcf +zldkqojstfec +edfkqsocl +skdeqcfolw + +wjocuxbgyzt +jfkbwxutgzcyor +wuzjxyortibg +joyclzxtdigwub +puvgqojbztxmwsy + +bgnpflcimzu +emidgawlnpcf + +cpyvdfhunkqi +iouja +wiub + +gydetkof +dlykgethi +wtameurjgdbky +kegqyvdti +hnsykdget + +cf +cf +fc + +rvfjwkpmyxaunl +knarjfvwpmuxyl +vjapkmrlufynxw +yplafmknjvrwux + +vguhiezflwxspkbtqmoyd +puteyokqzbigsxwvfmdlh +khuwgdieqlxsfbotzvmpy + +xji +yjx +yxj + +ialzkged +ikldea +idak +adnik +keidal + +zb +ezbh + +shjrvnmbu +mvrnjhsu +ushnmvjr +vsjmrnhu +sjhmnurv + +z +w +w +w + +ngbfjzuyilokmwvspqca +nwqdcjigabukmsvolzyef +aihjuwsbkvnqgzltmxfyco +dfuzmajnlqgrvbwskycoi + +ialhtkpdrb +manyitxpv + +zroguqymhbvlc +eysrdiwtbzl +bzflyxtrd + +abtzviypku +abitpvyu +vuiaybtpr +rpybutiav +ptiuavyb + +sjuyplfgmxae +jyfegmxlaups +xguypsajemlf + +amclkusofjvxyz +xowfsvjkcrzma +msvckofzajx +vmcsoxhzjkbatep +xukoznaqvylfjswmc + +yzu +yuz +cimhkuvyfa +zyur +tyu + +lmp +gvxj +trhe +ozifaycsunkq + +hd +hd +shd +hd + +m +txm +nbm + +nqlaphdgomjebrfvc +amchdvgpjbonife + +zerdfgybc +dfcrgeyz +zergycdf +frdkzoeyagc +dyrezgfcl + +xabho +hoxab + +fovcsphual +fshuepymgc + +igstwqkfryhceomauxz +kfeutacrzgxwqolv +zxdwkfrqcjgutvaoel + +uorhnjfdmezspvblw +hbzvupelftkmarjwnc +jlxqerbgvwnmfyzih + +epudwyxzovrh +tgfmnqyeupb +yuintmebp + +bjv +bvj +vbj +jvb +jvb + +mnyzfq +mfyzq +fzyqm +zymfq + +dpiv +pidqv +dcpugiymwvlzj +pevid +idnvpe + +kxybcriamhlfv +mavlcyikbhwjx +amvicbxyklhu + +tv +tv + +elyvghamdrfzsbwpijqx +kszfhbxrmgdeyjqvnlpw + +hviyodxzabqkgljtewprms +dqeacvbpiglkwxmjtroyz +dvgajqriwekbmyoxltzph +ylomtzqwudgnfevprjaxkbi + +pbyfdcxwezuvkm +myfxeuczvbsw +umzxewvbyfc + +tygrhvlie +ymrgjistqlzv +lpnuybxwkr + +aj +a +ai +a +a + +u +u +u + +juobn +odn + +wvacjmth +paghjmcwtqov +thvjwmcaz +zchajivwmtu + +cfnwp +pfnc +pgcyxfn + +ocrhstamfnjqpxkvzw +brsafjgtzdmviuoxhqnkylp +mkpeqovsjnrfhaxzt + +h +h + +jsgoxre +yujew +mcaenfdlk +uwte +vqjies + +qxsabopvlgudneci +sngcubqeopadwlvihtx + +tidnobhwfp +xezavqskg + +isepzym +eysizmp +psewyciz +zeisyvmp + +dejxbcgqaoypsv +cqsexapnfybdokvtg +ovegbaxzqpdmscy + +jbqeftpghynaowsxvlmdrizcku +wrvipautmecxlkqyfnozbgdjsh + +vtlxswhrmpay +tvyaremlhpswx +vnmsalwhytxp +ixmtyphlsbawcv +lvatxswhuymqp + +ckzyfdrjgsubi +oagesyvdufzh +gyfauzsdh +yshuzfgdn + +khmvfunqtcyj +qujktfnmyohvc +jnktycmqufhv + +zeyfuvamg +lhnm +wxjiptqcbos + +g +g + +flrvoenpzjasgdi +bsvkecnaoqmfhxly + +lkws +kwixsloj +asy + +g +g +g + +egquipy +yagmqsdu + +uyxchzlpnows +lphyoc +oihpycal +pyjohlc + +cjh +jch + +k +k +s + +cisxvrpqumhzb +jagkxfvml +dkwotxnmglve + +ik +iks +ikc +ik + +rfoautyjcs +qhmebwn + +ovcetwn +tnkecwivg +wlntvec + +fyxmz +txiwmfy + +cwxjzeruktg +wrypvkdzo +nkmxrzjlw + +gyvm +lch + +vitykdw +dtoiwyvk +dwkiyrtav +kvdywit +kitwdhyv + +gljscbkptmuwdarehvfzx +cehwadmkxprgujfiszbltv + +tpvhwogzkn +hgvznstjepo +gptzsvnoh + +orcaxvhnjy +vrclbsneqzuth + +v +v +uo +q +qs + +uiqke +havwbnrmdyxs +jzo + +nwpytxsofkqc +mkslngctoqf +vmtolaxsqfczwny +efsdctrnujboqi + +sdphkmevgfojqw +edwyulfgzsanh +hiecwsrtvgdf + +uhf +fhu + +lzemtjfyhpnxk +txlefznkjmphy +zmhftleynjkxp + +pqtsgmdjhcwlvxrkfuaoz +rkvqpoamlxdjsfwugzthc + +pe +vwnm + +xlihufqvdbgsjm +lfjsvdqmxguib + +p +yoj +pk +k +m + +ohyktq +kyhoqt +khoytq + +xgtdc +m +u +j +u + +v +v +v + +zpxcaklowhdqyr +dzarhwckyoplqx +kzqyvalcdwxhorp +wpkcqyorlxdhza +qyjwzalcxhdrokp + +tg +sxoudyrhjc +lgpt +i +ie + +skm +ifgbx + +bvewndxcjsmgpquzrktl +dgbpmzlqnxcstrvjkuew + +t +q + +yglwujzrontkcbi +patmekqvbd + +binesf +spfnkb +ytbrdf +qbzflmuwh + +ezqyinodawmughprsbtl +fwmbavreqtpzdyugcho +tpgvuqmwbzexrodhya +augozfrhtjekyqwbdmp + +qbil +qsvilbd +dliqb +ueblqn +qbvdl + +kywszda +cdyajwh + +ivyxf +xnfv +cfvkx + +msbprdixz +vujcwqktb +wvnfgjlob +qknehauybfgt + +ijdlktyzqahucpxvmngb +uwstlbykiofpzejvhmqdxg +tkudxzvmqrlpjhyibg +pmuynigkxbdtlhqvjz +xqlizvpthjdgybkmu + +bszwt +sbtw + +krnxtjewz +xhtamyrpzwcnb + +hfpbkaxd +fdazxpikehb +xapdkhfb + +bucfkosvdwrhey +ljxnmiyhfaqrovpuet + +zby +umaeoq +r +yctf + +slzfeatm +ztealsufr +fzrselat +zflghsatev +zlfsatek + +u +u +u + +hrnpfxtaucywvijgkm +ckxmhsvwbyuntrpia + +hfbctj +cbmqehj +kupijcbh + +zqoakuwsilpvxcghryj +kwrovlhgqaixd +gkqlvimrawhxo +exkagblhqovwri +qarhivxkgbwlo + +zagubty +ajteugbyszp +aiqtgyzvbu +vbzatygu +gzybtua + +fuegqxobhnrj +ohbrgenfqxju +djqnwgoaxebrhu +bxergfujhoqn + +zhsvktuoiljaqcbfmxpdey +emzklbtdxjqfpgcsvyowiuha + +zyqknjwifrgbosd +izxynwgsfdqrjlobku +hnrbqdzfjkyigwso + +dqwkub +dwacqubkve +luymsfbnhdwxqk + +rksnm +smnk +snbkm +skmn + +vhxsaniezkdyqrbpowumcftl +mhkgarwctovznlfpsxbudeq + +rpmkdzohwslfxbvu +wpkmuxblzosdvrfh +orpmuvxlnkbzhfdswj +wmflpkorxuhsdzvb +dfpszxmbwhkroqvgul + +awkrmqyfugihdlc +rnqlfacihdykmewug +fdmagkltuczpbyqirhw +ufcyhwqrmldigaxk + +iedbftckjlxrsuwq +tiqwbgdrjefanulx + +qeimrg +tqzmeki +kefmqzti +eiqmn + +zqufkvrhcbywijaxd +tusldcywvofazqrbijx + +lehzwtvxfyoc +qsukjbgm +rpiunad + +kfelouicxwp +uplkfeio +ohfpkeiul + +tqsxozawihuvprngb +tnxghrqabuovizwsp + +tjqzdv +tvgr +vt +ztv +vt + +dblxqy +dqlnyxb +lyqdbx +qbxydl + +qwy +qjwhvnpt + +c +c + +vranojk +qipvkrteaw +basxdvulcmrgyf + +pgozlmirnsctahb +ivuykjmdpwe + +yaipskjmn +xpew +zqhepg +bltrp +vbput + +xetlrksbqajwnhdicypzfm +lqerwsjxphmkanzitfcdyb +zjnpcesfyhrlambwktxidq +dbfjlwapietrqsmkcznhyx + +zsjy +maxcifhlq +n +ys +jsn + +ugidx +qxdu +dacuxq +ezxwydvhslpormjkfbtn + +recfdjwyo +jrouehwydxp + +tiyvjfrq +rqdtfp +ckbtqhrozf + +v +v +kv +v + +vp +p +px +xp + +uynizpqwjxkhmbvtgsfoclr +buzwrpmectjsgloivqfkndhyx +hyowxkugrpitmjnfzblvsqc + +xhiycdtgepjl +fxphgbjktyerdq +pgyitehxcjd + +oxldsck +zywgis + +likygc +lcikyg +yilckg +gkyilc +dwkcgliya + +h +h +h + +prgqxumtzovicelsh +euvhormzicstlgq +snihlgwfmzvuocqyre + +kitcamjohx +pusaltxich +tchmxkia +xchiat +xfchtzigaqv + +cgr +h +h +f +o + +kj +kj +koj +jk +kj + +rcjq +krm + +swnj +jwsno +wnjs + +vsucrmkdjnpbyt +ehxgoaiqwls + +ojywsnupzdbgt +zqoptdyujsrgnbw +gzpotujiydnwsb + +ozjwdi +tmvarxqc + +twp +pwt +wtp +wtp +wctp + +zibgtnfowlkyruxhpe +uwziljodbxvehysqkgp +bwnheixgoycutlakzp + +ehsrkiza +rxkzihqv +hmzkrcb +qrkhoz +ywjfdhpgklztru + +zndvtbpou +rfw +r +y + +clhiwkmxsvzoquagpytdfrje +zeodtrpwlfgcmaihyuqxkv +agmvowehlxquckirtzdpfy + +yfmcpjv +pmyjvcf +mvjocpfy +vjmfyacp + +zfcski +mbezo +pxhujald +wneyvz + +abjwrpqvityznofe +vcdpeznhiftkqw +xwutempzvn +qfpswevdgnztlh + +ioxharsyepdvqlw +msqaevlypdr +rplyqfbadvks + +jyz +bahjup +dsywnj +fozjd +jy + +brhwnqkdlmp +kribwmdnehlp +szxfcmbwnpgradujvy +btrnewmpdi + +xjecqo +zqjconapx +cijxqs +qxvcnoj + +eiuvwqlgcfdtmaxskzro +mkdzsoxftialguvwjqerc +fgtqrlkudwxoaceszmvi +vpmetxkwgbscoqdrulfaiz + +tdsifoa +ntoavhsi +tqiahcos + +cmfieopwahbv +iwmehavbpcof + +qkatb +pzixl + +gsml +lgms + +icvsozwrtmhkdjqbpanfey +zjfvoepnqricwktabmsyh +ajnfhsreqzivycwtmpobk +mwonbckpqefzithsavyrj + +zsjcxfrkhbdtnqiup +jutaqzfknhcsrpxbdi +jcndflxkirptqubzs +iykvqgtpcwrfujmbsnxzd +jztxdnseicoqfrukpb + +scenvazqugw +luntgxszvace +abunzgsecqv +vaszcugnefy +sunczwrgavde + +rju +r +qro +reknclbha +rdzw + +wih +hwi + +igovmnr +gzrnivom +mfgavdsryxoi +wglvqmjiubehork +mirgvpot + +mdg +mgd + +uyfvo +uyvof + +xopjzuklndgf +clngzxkofudjwp +khozlufrxgdpn + +axcigphuyorenk +udxlvwbhknsgfajtmrq + +mqza +wxfmal + +wd +yuw + +lpxki +ixlp +lpix +ilpx +fplxnij + +jsmthniyukolfaqec +jenatzwpbdryuvgx + +buwdmtjlr +lbmjwtd + +gqdtopfcb +tfbypogdcq +mtposqzdfcebxgk +ygdbqotpifc +lpgbdtcfoqi + +pyqdsubkejzctra +jiahmlpqdgyxfo + +evlxmzhq +eqxmvjnzchl +lzvhmqex + +tpzk +zhtkpg +tzkp + +kdyjimzvbagonslpxq +balpiexgyvjkzcornm +ozviykmgsbxpalnj +gnlxyqjbvozkmspai +mkvbajynlgixpoz + +hiyxwueazmcjbnrogq +fityqdgnrmabhvejowk + +eonwsb +bnsow +swnbo +obsnw +sownb + +fhpeiqlwkbnuavzgtjm +bizwosvgdxknypqmclr + +hvgyfuewsntdqx +pytgednxvsqjf +fesxdyvgtqn +gycjsedfxoqvntr +pxqesnvtgdfrcy + +x +x +x +xsv + +zugbqpdfrx +brofpxvzmgu +pxluwhzfbgqr +xypfgzbur + +jypuex +euyxp +eypxu + +ndehbumxg +tmewyxc +ulpesamxbkz + +cfxvelwdp +xplcdvfw +fwvdxlhcp +wslmpvdrxcaf + +wb +w + +xv +y + +rohtynmekalfvjpidgzcwu +uygwvdkmftczlainrhj +idzumayflcvgnhjrwtk + +vxdpbkqmgschyoul +jbhksqnumydc +qhbezridsuktmya + +gkld +dklg +kgdl +dlkg +kldg + +gxmnzys +xsgnm +xmsng +mnsxg +gimxns + +hwzuvsytkand +ytzukswvndah +dhsvkznwtuya +bukhazxwnvsytd + +dlmthcunbve +mntbveluihcd +qjcnhgtdbvzlume +mbvuelhdntc + +qmjoxsfduwrpyech +ymdophcswxreujfq +fhpxqrowmcjuesdy +yfjmewqospudxchr +mwdouqjfhexscpry + +okqjnaevywpfhzctgdiul +fqalgekohuzvdycwitjn +vufqibljczhaoneytkgwd + +zpdbawuoqcvex +vqadwoubepxzc +cvoaueqwzbdpx +azecbxdvmuqpwoy + +dwq +dwq +dwq +wqd + +pyjxqscdimuegblk +mdwkbigejpysquzcl +oiqlyhkcmfgubdvpjes +spmgiejkbtdacquly +beugjmpqnrylksdci + +kurjsczqilp +ecjvrmhqyskl +uqarljkpcs +crjksql + +fvlw +wvcfl +lfvw + +b +e +r +n +n + +uxjoeqbvchklt +lqwbkjxuoch + +zdmbgjest +zqicmvrnsdg +dawukpsfhoy + +bcgmjye +ztcg +wrxlvk + +vjxmoqcgslufnk +ogukcnlxsqf +qpylucnogskfex + +d +sx +im +py +d + +gjwfdasitcrzvhl +awngjxbveizuh +zxokgwinjvayh + +dsitcgaj +txcsrdigju +dgctsynrbj +ktzmdsjlpqcg +dtjsbvcgf + +globmq +mlobgq +bohmaqgl + +yzxkbjdrmpgevsuc +jkcugybvpsmrzxe + +cxjnq +jcrq +bkicqdfzujl +jceqa + +ystmjzl +lsgmb + +ftrmwn +trwmn + +pwcevirqxhlnaygbzdmsj +swhngauqyedlxpjmfbkirvz +rvdkxnpifmyhjqeslzwbga +nsplidxzmqbhveywjragfk +axpznqvhyrjlbifdegwms + +eiuojl +iujlo + +hsokycxlg +woqkzuscxeyjgl +ykoxigschl + +kuhvdtfqsrjmlzbnegi +lmqduebktgsrnivzjfh +qzlsfmwntjkedcgvixuhrb +kndehrmusglftzbviqj + +phn +nhp +phn +pnh +htnpd + +jimkxgocwdsyn +jgocmsxiykdnw +mocxkjysnwgid +myckxndiojsgw + +c +c +c +qc +c + +mbzsdx +ckvgf +pjq + +jhypbcxluavqsfzk +uxbqvchpykszalj +bkyvohczwdapuqlxjst + +qnhmysckzgxiflu +hzqcmigklvun +nkidmthgclquz +dlniughqkcmz + +xyzjqsu +uqxjszy +sujypxzqb +ysujqzx +yuqzxjs + +nxygalsc +gunlscax + +uzjkfcabnmpxtw +lghfcxyqv +elfcoxi +sirhdfxc + +dmgkarlfz +bfgldrzm +sdmghuezclf +lrzfdmg + +astekwuyridcbogvzjq +tyozvascdkiqugrefj +rjseqkvpdhnoytluigcaz + +s +ws +sr +glevtxcis + +vk +vk +kv + +gaj +i + +zgurncxevkbths +aulthgxrzbisj + +uvsrmwbpxitcelq +eirqtxawpd +pirexwdqt + +qarbgx +xzwag +ntsdj + +ahjnzxtgmqibkeuv +kjiegzqmhvbxnwsual +vyanfjemrigqhzxkpub + +veu +yve +vy +cv +garnvts + +whgjdb +drh +nkqilevxm + +xowc +ocx +svocx +owcx + +lb +bc +lob + +egpsqzx +gxqewzspj +gxvsceqpz +sexzgvqpd + +cwrm +mbwu +kmw +wqmkv + +wn +n +khntv +nd + +not +one +ont +onl + +rckimhotdxjl +nfgtbwqcp + +jpgkrltvya +lftsbjuerkdpv +jvlprktz +lyrjtvgoxpk +tjgkvplwrzm + +qzckhypdlwftb +edcwysumk + +jsdzexo +jzoqesxnd +zoesjxwd +oxsjdbez +dzesxoj + +dg +magd +gd +gd + +z +z +z +z + +omvejgrputf +murvfoptejg +tgumopvrjfe +vpumfrjoget + +xacbqjsyvk +bvcjkyaqsx +qakcybxvjs +vasqjxkcyb +jkyvcaqxsb + +bofqhzyv + +nvhjwdom +jmvdnwhol +mdwvjhon +hjnmdwov + +nfpaoeitbdyvuhrs +nigbzpwrvkoay +mvjlgrixbyoanp + +gdkr +kdgr +redkg +drgk + +tcfnehwvj +jtwdcvfnhlo +juwhecvntf + +erohnpau +preahoun +npuheraob + +eskvwzxp +azxlmskpe +ksperizxw +xespkmz +pxzsenkcfo + +d +d +k + +eistjpgmnfhrb +bjkylvwac + +vbe +gpives +ve +ve + +mbagdqsox +asolmgdqtixub +bsdaxorgnmq +sbaogqdmx +paodsxbqgm + +crodfihjzb +pdoihfzrba +bhfzrpdowmi +ldfturkbozhi + +ydz +yd +yusdhj +dalcyz + +dqlypnmf +dnmpqfly +pynldmqf +rmpyqlfuwdnta +qmnyplfdx + +tzdbgiq +mbtdqzgi +bzdgiqt +ztdiqgb + +p +yfubzpvam +ip + +cnbkuvahfolsgtqr +ngtblsuqickhav + +qitflvsmp +tpfvlmsgikywq +mtspvqlfi +psqvifmtl +miflqpstv + +bljaqdnkosxhy +kdoynebqhlxs + +yvjluq +pcj +mrjsdzne +qj + +crqjmo +mqvzxrj + +czdipgjlk +pnkxdjcolv + +rm +mr +mr + +uegltzby +yltgzeb +goztypleb +lyegdztb +etsgzybl + +hxmqrgkpntzyldjbs +djigzcbnexhfomvp + +voameyfg +kaeofvmjl +xrovmkaef +ovmfe +pvneomwsctizfbq + +hxjuetbri +garbhldyxket + +gxnsf +gfsx +xslgf +mxgfs +sfgx + +bmuhtleiv +vyc + +bgch +hcgab +gbch +hbgc + +pk +p +p +p +tp + +fn +fn + +durnkjygtxqwihsbalz +gsntxizrdlvq +ilfgmoqcstrexdzn + +tqsglayz +lysqzgta + +r +r +r +r + +puizdkoaylhswb +gmxenctdfrjqv + +tcihvpqdb +ewpvicbrzthk +fobglycsvhiam + +ntvxahycozrewpi +sziaefmyxjlhnogtv +vwhizyutacnxeo +bvuonakytcexhzi +oinypavhtzxeb + +vuzysfaoxdihgjqnkbl +kdfgsivzxanyobjqhl +ixnsbgaydvhflqjkzo + +uwfajgzpdrhsbitkmclqvno +pgsnjvrwatkbzfhoqldmciu +ckzrswqjolgbupmvnfidhta + +squmrdowjy +iusrcmzyodh +rnlsdmxuyefoz \ No newline at end of file diff --git a/src/Day6.hs b/src/Day6.hs new file mode 100644 index 0000000..ef3800c --- /dev/null +++ b/src/Day6.hs @@ -0,0 +1,27 @@ +module Day6 (day6) where + +import Data.List (foldl', intersect) +import qualified Data.Set as S + +separateForms :: [String] -> [[String]] +separateForms s = let (a, b) = foldl' go ([], []) s in b ++ [a] + where + go (l, t) "" = ([], t ++ [l]) + go (l, t) xs = (l ++ [xs], t) + +countYesses :: [String] -> Int +countYesses = length . S.fromList . concat + +countYesses' :: [String] -> Int +countYesses' = length . foldl' go ['a' .. 'z'] + where + go b a = b `intersect` a + +day6 :: IO () +day6 = do + r <- readFile "./input/day6" + let m = separateForms . lines $ r + putStr "[Day 6-1] # yess: " + print . sum . map countYesses $ m + putStr "[Day 6-2] # yess: " + print . sum . map countYesses' $ m \ No newline at end of file