diff --git a/2020/06/input b/2020/06/input new file mode 100644 index 0000000..23d68d0 --- /dev/null +++ b/2020/06/input @@ -0,0 +1,2040 @@ +gsvdkufnoawjmhp +wvhusojpnikgfadb +vshnpfedgwajkou +aujodhskfvnpgw +okpdnwhsfvjguqa + +juedvq +vqeduj +veqdju +eqduvj + +cdajbuernxm +mnucjearxbd +axrmdejuncb +jrebucmdxna + +kutplibdoqzfvhw +qcewmrkdvhl +qobdwvlkgxhpasyjn + +psbjhnatxe +pnaxesjhbt +tpxhbnseaj + +yskvjqacinfdrphwltxgzomueb +jwprnxzvkeofthuqbyimadgslc + +hzwepdg +lwf +wy +lw +rw + +sdgateubqmznhjk +xyphltd + +dbhl +hdlb +dbhl +hbld + +inkxywsbgjuvpztrecadqmhf +qkaxszcujwvmbhdietpgr +krupsdgibzecxwvhqatmj +qtpxerobhisgcumkwjvdaz + +bgakcmh +gxasvzu + +cjtrvhinaqsbpk +jvxtspaqbhkfnrc + +nab +bex +qmkudf + +uot +out +tuo +uto +out + +sbtkzf +hbkfzs +szbkf +fuzksbx +jskrzbf + +dkphfoybsagcrnq +oybunchapqrdks +bokpysdhqnarc + +bchumknwairvlf +cvbuhwzirkalfy + +bwnseiaoqyjf +josqanfbew +nealmqbfwojs +jqnbfaoesw + +sowzuji +wojizu +wzojiu +jwozui +ujiwoz + +kcopqbt +tpkudorbc +pmtwogjb + +uxkfthszqdbelomwri +tlusezbomwfqrdxhki +rsdfkbteoqilzmxhuw +bwkqmdsxhrfulietoz +izkwomsdlbfxetqhru + +kzhwyodlvpt +kvfhldwpo +lvhypokdw +opwjhvdkcl +kpahtdolvw + +cldyjpuitah +upcthlijyda +icdauhpytj +haypidtucj +jidaptcyhuo + +mi +ti +qjwiz +oudehsxyiv +bpirjl + +stlyornuk +cxapqwie + +kharunjiebzvoy +gvaihtklnqmcebf + +t +lt +t + +ohca +lznkumqfgyjsbeot +owxdivpr + +dy +yo +xsy +yo +pyrvh + +iaxp +afpikux + +hpsfqrnevzxl +fnrsvexzhqup + +cp +fpc +cp + +nbuojxgqckrwzspehf +mhguoxsfkejwcq +kedqujsomfxhwcvg +ouqefsxchgjkw +qcjohwxfseugk + +rybnlomq +fmxsngauo +embkon +nlmvob +bomhnv + +gptixlduzjeqkorsamwnh +pgzwohfjkuvbtylmc + +thcgo +vhrlxmo + +kbfgmhpzoqysac +ockazbsmhpgqfy +kmcqfyzhapgsxb +qcfdlwyarzuskhmbg + +surovlcihp +irvlpuhosc + +rd +d +td +d + +koasgulh +kroumtzl +yubkwolnpj + +dqykvasneb +easknpbovyjd + +wqvop +nwqvpo +wovfrqizh +onqpwv + +uskotfndjeplixhycbqrmw +mbxoewypcfdhistn +ydtvpbfemcnsihoxw +ynwbtosmcipxhfde + +urgvbqechawznsjltixody +swdbnevcatrflguhziyoqxj +sgiwelhanovrbjuzyqtdcx +vyenojuhxwzbtigsdqarkcl + +jxcwblszo +khrwvnbdolgjufyz + +n +r +d +r +bd + +tolrypvdwmb +lwrmopdvybt +rdybwmvplto +vlwpyrbmotd +ybolwtvprmd + +radvoplnq +lrqpondva +lpanovqrd +lpanvoqdr +dqorvalpn + +fvxca +vacfx +fvcxa + +jbeixdakgolpfhqyntw +purbsxvjfwhetlmcnz + +jztfgbmnkadiehv +djhpntcizmkgvbfe +btegdfknizvmhjl +igbdeztjfkhmnv +iqvtgejanzfdbhmk + +jpi +ijp +ijp + +kydp +viykd +dgyqmftwx +vdye + +sewpkrvh +ekorswnp + +bplerysifmzvwoncjxqk +nsbeqowitcpjymxvl + +nexbskamprd +xsmdbkaupner +dsbnekarctvmpx +nkapxcbsmrlde +ezfdhnakwrsmyxpb + +olnuzvxcgpdtfb +tgzcfdbnxp + +vjliksorxpmwecaznu +giuoxsvnzewljpmc + +fuljpkt +cplftukj +lfptjku +futpjlk + +tqcgihveyswu +ywvqecthgs +cqhwetvsyg +qvshwcegty +gyctwqsfvhe + +uhezlyxwvpcidr +hvucplszbxywer + +jchyntk +revwzsm +kdn + +cotikdlpxauzb +uxzptoksqbdiw + +nqvruwhtombs +tebfnykzmlgcj + +ciwkhzbmgfqo +uwmzgbcoihqkfs +fkwmziohcgbq + +shezgrvq +gprveokq + +jvqcdiuyrnpgh +dyjqvhrpic +xjiklpfzmthrwdsyqv +pdyvochrunaqjgi + +denpjgywacrk +jbypwarecukdgn +zacqyxdgejrmpwkfnh +uwldpkrgaenjcy + +q +mq +q + +d +c +d +d + +cdazeitlrpxnfqs +nrqxelfocsihpz +cnkveyiujlbzfgrpxq +cqznxrfliedp + +qicgkpjzlxonv +cijozlhkqxnp +pgkcnloyxzj +japmxlknszotc + +bytg +mwetjayhgiup +gyt +ygt +tyg + +zx +elxz +z +vncto + +nryw +rywn + +takqgijzforxpshm +ztmrxfqgsiphjaok + +fsaoqe +wcavsldeytn +auoekhzsi +hgseja + +whqyvldpintefaxgurjc +xluqrgsvnacykptefbdhmj + +oylknhsgmpawziqte +znhmatkpolsw +pkvmtznhlwsoa +onzamhltkpsw + +zs +zs +zs +sz + +e +a + +xmi +gahfrd +yt +jmy +nqy + +zkbtfdjom +ot +uoqtr +eot + +g +er +g +g + +ncvwupezd +cnvdwzpeu +cuwnzvedp +cdnzevwpu + +bkuwcsv +bqcsgwve +mbhcovjsw +qwrnbeycsv +lisvbwc + +vlys +omvzl +ptlejv +xylv +vxol + +mqgohwtz +rqomlcw + +rgopxhkslqcjmzbatnd +phgzmojlstadqrxkbn + +pcbziv +pivzbc +jilczbpv + +gmrecszl +zgrecslm +melzcrgs +gezcrlsm +mcsezrlg + +ceotvxaydplfiu +vbzcaxuokwd + +gy +g + +lj +neocbiqjt + +foyawivmhs +fayowsmzrv +mksfowvzayg + +sivthk +yh +lh +ybhq +hy + +fk +ka +vka +qhjxrzmckpb +kf + +s +s +s + +iyth +tyhri +yrtaih +htyi +utifydhq + +hwxd +xhwd +hxwdb + +kfhsvbjdwxcnt +dbfjhsctkvw +sogzdhjqiwmlyuvf + +v +nyx +v +i + +ncimwelvbudtp +piwvudaer + +aktpdrhm +dtapkhr +dhapktri +taprnhdko +krpdhta + +fvpaxk +zgmrwja +ar + +vxoisla +olisvxa +kioqvrlxjhsya +oixgalsv +savloix + +ac +gr +c +tl +c + +fndwqsruzagei +dwunqfaesgzri +bzarmfnqwuisgde + +jr +rj +jr +jr + +zrevhj +xigdmqatk +wjlpzvsy + +qijznvobp +nzbojivdpc +vzipojnb + +srbtecvpixam +hdvctplmfxuow + +bf +bf +bf +bfex + +g +g +g +g +mag + +b +y +b + +vmbwhdfiqteglnpkxucjoa +wmqdconxbuaetjlgphivkf +upadfnhkwtjioqcbvxelmg +gofjubptnmkelihwxacqvd + +alev +evla +alve +avel +aelv + +uceyogrhl +oqcafluvhewgr +ugcxlhorpez +nduzshrceglox +odmgbeucrplh + +ugesfliovyzja +nlizsujfadgo +lfguaszotij +osznifulgadkj +xadguljioszf + +kpgve +vqsfezungalxidb +gwteov +gpvcyjrmeh + +apuonkxtc +xithys +hfvtsx + +pgtzamyqeu +gtiuwpcqzvya +tpqauezyg + +souvmglcqbekzi +miuzvksocgqbel +gzqkmsubevolci + +ndvahciz +jaoyhepsbirw + +bghijfkotcxwu +uaokxsfbleyhgqr +hucfokpwbxg +nbfuztgovhxk + +zghianxtlq +qthdvingxalkz +wfqnixgteza + +lhzcrodupwqsv +phsvrzcldoqwu +hogspqwcvukdz +hwzpucdsqvrol + +txkqmsfbglhnoypaduiv +navlozmpthwsbkiqxdfu + +gidnojlbtfpskuwavyxczr +irvsyznbtedxougfwc +sovxhcqdbwytzmugrinf + +mcjnraketsgvqyxpbuwlhzdof +kqudanprgiejcftzlywhsoxmb +rcxmkdqfohjzgtsalbpunywe + +o +cm +rc +m + +tmkbedxgzsw +tdgmsxbzkernw +ktdbxzsemgw +gwkmestbdxz +xzdewgtmskb + +evpdgzcu +gepcvzu +vegzpuc +vpuzgec +cvpgeuz + +wfsadgtuizejmylxq +aspmuqigbxeljdtwfy + +ygbtdp +tye +fryaitjcukhl +ytdm + +jfm +m +m + +cl +cl +lc + +qbodnftrsygi +iztorbfskqdvng +onpsgqrdtif +mnrofcuqwdtils + +mhavcgzlrtbo +jrldgavzqbcxoh + +pshtdbifrvzqmklyae +tfajgrpkidzyhslebmvq + +cuzbjepnvis +isjbenvyzlcup +nagieshzcpqmfuvbj +ezvpsjrnciub + +ywgdsafzuxbrmhvqkljnoipc +hjcntvrzwdfbxksyiqolpumag +kwvpybmjeoualxcsqgidhfnrz + +zubvkn +cuwfsnv + +isknfdalujeg +hikagvpzx + +szgfhjtxid +stdgjzxfih +xghsjfdzit +gfjixszhtd +fzjshdtixg + +uibgxka +abigukx +xubakgi +gxabiuky +bkaxgui + +tjzor +slaore +gxwnoifudmcqvpk +obhr +tyo + +q +y +e +r +ifdcxzm + +fvtqrjsblkhuoiey +gyfnizlqupvscobt +bouiftlcvqsy +qdvlyfiusgotb +qvbycwsifluto + +ifmnxbcvpkylruh +nckrmfphluixvby +vbcmxyhurnpilfk +suiqbvyrxcphmfnlk +ynuxkrfvibclpmh + +pmvdyexsoilatqfgk +lpidgatmqevkxyso +gkpsaoleymqxvtdi +gmvxeyplqdoasitk +vkpdylstquegaiomx + +ymogxuswkce +vbxznpscg +xlcgs +xclbdsng + +zovwtiy +zrjlciov +ksxefuvqdam + +cwvsx +xeuwyhsfb + +hxwgolksbrdmpifye +lwpyefxmiohdnbksgr +gzoehypbldxikmwtrfs +sdlwpeymxifrbghok +glmbhykiofdxpwervs + +ndcphgqfuvsekaxozri +xofkqnbschdaveruizgp + +ptkvdhjaw +skhtapidwjn +thunakpjwd +eaglphkdtjcfw + +pnezvfgiouahmslkdxcrqb +fpiqsecxaukbvzgnorjhwdm + +emcwblgxuvnkzrdsoyjf +rvsxeugkmwzfncojlb +nhbiclvskjrupgxzfeomw +gcxlbjozeiufwnskvrm +eonjkwbzfxgpruvcmsl + +ntgia +ia +ai + +scoernukhwtigpd +bogiserhpucnkt + +eaipzg +gne +lughe + +tbipylmnrague +tbargijepmhuynl +triyzgupnbmale +prtnumgaibley +peblaytmgnrui + +rqlsepfhiv +fvelqphsri +ilfhvqerps +fheqplsvir +sfpvehirlq + +jciwxfbhqkadgzloprnuvsty +qwouetsmhykavxfbjzrglc + +fjmz +mjczf +unkzjm + +gebyncxsphfokwm +gmchsnbwkpfyxeo +fybkhcesogxpwmn + +ud +whjn + +ihm +hmi + +p +p +yp +sp + +ytrwx +yrtxw + +p +d + +ieltygdukac +yiudeakg +kpegdaiyu +audykegi +aeqydwiguk + +lb +ei + +zjvctfndgiqbeu +abfwndutvecqigz +fznbdutevigcq +qtvzfnueibdcg + +g +i +x +g +g + +qhm +lq +nq +pqsb +lvq + +qnxpslvajf +xuavcnst +nsyabxv + +ocu +uco +acoux +cluo +coun + +jtgzodebq +ojztqdgbe +oejrqzgtbda +tjzbqedgo +gzqtejobd + +ubglorcsyvmxd +oentwfgulpqikdcbzhj + +jwkmxdnyvbiz +qebnoyfz + +bepdfi +ikepbof + +cofgekndbatpruhqmwvsiy +bsqtrakeudopghvyfmcnw +qgusdwvabytmfkcnehorp +qfhruygwkvmbpaoestcdn +prmkbuvynseatdoqwfhcg + +enczdvbkiyjgruqp +bdiqvwjurpycngzk +bnrcejupvqiwgzkyd +pqgybrcjzkudonvi + +fygasxjwrb +ijsgafwyrbx +syjawbxgfr +wfbrgvsjyax + +xtp +bfnzuadh +xlce + +rxmeqcbv + +fjtdihkrbyn +htfjyinkgdrb +fibgtkdryhnj +hkbnjrftidy +intbxjrkfdyh + +nhkiqjocfgxmrvwetd +ghnfdjvqtxwermokci +xnrtfkhdwcmjvoeigq +mcvfjhwiqtnrekogdx +imhxgjwrodtcknqvef + +sabwqu +yqamws + +usei +xkvnyfi + +rcewysztbiamhpgldj +kibrfndmgeazcsh +adrzgchmwjsbie + +pnrwvx +lwjxnu +vwxinb +pfxybwng + +wnvxgfdkubzrmip +kmjhoigltwbz + +znlgbx +fla +dl +l +l + +jgeqcikplduzxrwby +kwplxgcbndjqyizuer +ewrqujilgyxpdzcbk + +guteykxsqrfwhz +mhiurkswtqbxz +sdlqxvowujrhkz + +zrejn +nzrje +jnerz +rzjen + +fvkouigderaqbjth +eqrvwjinfltzpcuag + +stqcrpy +ctsqpyr +ptyqrsc +ymsqrcaptb + +egftpqosiv +ecjdqlnmwouf +spxaqofre +epogyfqi + +oxwgtshjqef +pbtgjfeqhnoxw +jfhewygoxtq + +jwavgo +ogevbwdjai +ogvahjw +wrajvog +ogsjwarv + +rpucvg +cgpr +htfelpc + +hqrwapscubelovxntd +jisztpnbcahlfdoqmvexgk + +pmadwutiejznofcgvsbqyxh +qvmzbaisgfcunwjexhpdktyo +xtvsdnqaucyehgzbjiopwmf + +vjqih +himjwdv +hsojivb +jtrklivehyg +mvnaizoqpfxhj + +j +j +j +j +j + +dpnwmtvklc +ndjpkm +ndmpk +ndmpk +ndmpk + +ucojsptiqymhewbxvrfdkngl +ebpjwuxrdqkmsochvfgliznt + +esroiaqdbxnjhut +xibuqhmensdajo +feukjbahdxwqnsiocv + +vkxzclpmtujngerawod +azdrgcenvjxptkuolmw +onrluajvcgewpdzkmtx +xamlobkrvzwpjgnucdte +tvenjdmlzpwugkoracx + +ywpfhztklgjmoien +nyelduixgvwmojpzhtk +lehpigtmoknjyzw +gmhwzokylpnteji +tmypejhwgzlniko + +fmd +jf +fj + +l +v +ntobg + +drmzvt +rxtsfuk + +vxdlpjkrsz +dgxkprvzsl +dsklxpvzr +pdvxzlrsk + +gwip +gakpw + +kbcadn +bakcd + +mhpstqcgvoalkwxinebryzujd +qwhirveoczyatgjdsmkpxnl +mejazlincwodtshxkrpgqyv +fsaizhnkcvwolgjpdqxtmrye + +rxubznovy +yvudnrbz +zvunwcyrkb +ntzbryuav +ndvytuzrb + +utvklrxypgbnimsdofwa +fyzliqswjmtpvdka + +byctfzx +pxzf + +g +ik +ykei + +bcajzwogvetd +gedbcwtzvoaj +hcwogaxjbzvted +eoczjagtdwbv +atvdjbcozgew + +wsclketugyaz +qvfbjcxtmilgow + +amgirw +yf + +iletugq +hnoxbfkaspt + +qjdfcpvksmxzywahgn +wnzceyskgpoxdhlmravjqf +xjgvhcsqyfankpzmdw +jyncdxwsqkvphfamgz +dvznygwjkcmqsxahfp + +fkuwiezpljbdayhsr +rphwbeujdzlfiasyk +erdhpafkzbwjlusiy +jwfhkrzdeabpliusy +wfipeujhylazbsrkd + +fqmbwapvouelydgicj +uelvqwomtyfjgcpadi +qkpcsdeyjiwarovnglfum +ijvgqdauoefpcylwbm +ydmqpfewaovlicugj + +sgbq +ltqambf +djbuvn +zmtbgy + +egvifnsaztxqcrywumj +aqcxujnzvfwetrhgm +fxdmtkgawplobqjenv + +bxuwpnl +ztdkau + +ecylsbdv +cvzlsbeyd +yqcveblsd +beyvlqcsd +ebsvdycl + +eb +xpnyter + +cbhqyzresnpxfwm +cwksfvhxqperbimz +whqzpbcsjxafre + +beodiasvj +jbisdoave +iedaovbsj +jxovacsiebd + +prxsnyehgwifbzo +ozpbsxynfiwrge +ribozypewsxngf +nyoxspzbfihgewr +rxzewpbnimfoysg + +shviadjcue +weduziolmcbngp +vqdieycu +cudeif +dicyuqke + +nvcwhuo +sltchuwnq +unwhci + +ekrisbvx +rsxiev +exnrvsi +srxevi +xhsvnrei + +rs +rs +sr + +fuzjmek +tihf + +ptlzxreqfdchibogvysmku +pceyizvdkqxbhrtulsfmog +gvkrxfsbipqedlyzomhtncu +suyzgrobilxhmcfdtvkeqp + +okfvjneqyicuthwsmpxl +wdojlsqknyhmptvicfe +nyfjthmpivqgsulwkboec + +ufrpkliqjgwxeybmcztasovh +qvkpyghxblewsaitrmzuonjc +giptzywrejquxkoavslcmhb +peaywubjozmcgrihlqsvxktf +lehjpzguiksacobxywtmvrq + +egryz +ergyz +yzegr +yfcgzre + +j +j +j +p +j + +bjt +tbj +tjb +tbj +jbt + +cklp +lpck +lckp + +fea +eaf + +qgm +dz + +yri +yi +zypdi + +ekwjxhtmgiudpz +xepuhgwjizkdrmt +ezghmliwtxujdpk +wdhxpjizugkemtl + +gyokbspj +kbgsopyj +pykhdsjbgio +opjykusbg +jygbsopakc + +ixorlekwgnbcjm +lrjkwxgie +wgeikxjrlh +rlkjxipeqgw + +ecgmdrykq +myrclqdgek +guqmzyceprkd +dygckwerqm +yrcgkiqempd + +u +u + +bcwnvl +fcvsib +hcnvb +cpgveoaby +ivbcn + +n +n +n + +macuqyp +fs + +pbout +suota +cuotm +atmuo + +nlravibecfj +eilcjafn +aeibjfl +jxfeilauo +jafesdnli + +xfwroij +fxwijor +irxjofw +rfjwboxi + +dj +dvj +dj +dj + +mikhxcqensrodu +imcvkhewgljupsxonq +kceuqxltinhsom +kzqanoemcxhius +vmuoxineqpzhacbks + +hklcsoaywpfrdntmu +xirbzckwjvpfygeno + +o +to +o + +zvirefunh +ezhirnvfu +runifzhev +ezivhnrfu + +zfsoducbpai +cupdisobazf +aozbsucfdiypv +bcfazodiups + +njfprukxamlg +kpfrjgynulxma +pijflgnuxkram +pkuxalrmjfgn +nkvrlmxustpfjga + +dszgm +rsmu + +iaw +aiw +wai +aiw +iwa + +s +s +s +sl +s + +eyavhnk +keov +qeiwfkcgvrpsld +kuvze + +a +mh + +ilqchdfsog +igscolmdzq + +fnyhxmpct +lchdpamfu + +vijz +vj + +dhpxjrmyuefclvqgni +uicskweohgvfryxmdq +tqgdifymexbwckruvh + +c +c +c + +lthidumvycszw +cvpqjeuhlwrfyzg + +keocuw +uckowe +oekwcu +cwukoe + +c +c + +lkxjv +jkvxl +vxklj +jkvxlwg +zkxvjly + +sqlamxeuhpgwjbdcioy +bumyjxsiqweholpgcda +gecswjlqhadiuboxmpy +syahibgopexwlucdqjm + +igebmv +tawqvezdsmpunk +rimocvgje +evmbhc + +ykjisvfatux +jfaisyvktux +itksajfxuvy + +fclkush +slcykdbgu +fskuchl + +xjhulywagzeioq +oejlfsquhbriayxwg +jiexgylwzhuqao +wyxhqljagieou +hwladixguqejyo + +sofcbhuwyqtid +icofdwsb +dfwovimbcs +cwibodnsxf + +jqnestpyaczfmxhwrbuvldi +mxanrhbfcujvyzditwlo + +ntfgivkyszmarc +qrajdhowuvpclbex + +kliwy +ukwlryi +ilkyw + +pmgltzsk +ljmipztvgow +zltmgup +umztglp +ftzmlpgk + +twepi +teq + +ohyd +mytjrwk +hfy +exyh +ye + +rzsqhtlowavy +twvhzyrjsqaol + +yzagcqrjeimwxokh +fmxtiagboleqcwdrhzk +opvemhasrguxkcqzwi + +atcpeyosnrjbg +kcesobgua +fagsev + +ca +ac + +xahmtil +hximtla + +hyutnjdrbsmofl +dswjfyothmblrnq + +et +te +eqt +tuje + +nbhpwzgtrcx +gqcxobhriznw +hwnbugrejxtczs +cujrbxfhnwzg +gcwzhrxndjb + +qwrfxhlyzcptvmkdeauigob +zbchavlkmryxiptegwfouqd +cfhuiptgqkoalrewzmvbyxds +hudmwcgbfepyitovkaqzxrl + +eysuozkm +ndgloqyv +ignhwrovy + +iqufgnvxspdcjtylkbrozh +inuzqktrvcxyhbgfosljdp + +qhfknsyeuirzagvcwd +yfcgqnxewlkrsuazhi + +lj +jl +lj +lyj +jl + +kpholfxewrdt +opdfhtlmkwex +hpwftoxderlk +ylxhwdofnztkpe +rwfpxlhtdkoe + +ubml +yvohg +zeasf +plum +qhnjxg + +cjgzwmdyuakvixlprhfe +kmplfuxywergchzjvani +xcvlzmewyujgirhpfka +fwhgrxkjcvpeuilzyam + +eclsiqp +ivgspoe +scepi +pmiadtskyze + +akmdfivwgct +yvgcwakhdimts +lcvgirakwudtp +aftnckwmidgv + +zuqblv +blvzqu +uvbqlz +qbuzvl +bzqxvlmu + +by +betlcdvry +yb +bxy +gybjx + +waoqdxpkmfnyrhjebcuvzs +qprvfczedowxknhausmyjb +cufdqvknwrajzybospmxeh +qkjzybeadvncwhxumpfsro +nwfkjxumpabzodvqychsre + +shdfctjrkwbvemoxluyzipnqag +sgbwpeuqcilxojfynmrdhvktaz +lhgkxfwuzbevojmrpnqydsacti +gflnzjasbuyimxqcvwrdpohetk +ynwedhbskjtvoucgapiqlzfxrm + +wlmjxp +ylnxoajk +luxjidte +xjrvlcdeu + +pv +vbpw +wvuap +kceavp +rdphvoitqf + +dlxzwkhtmc +twzhlmkdc +tcylhkdwzm +zwmlkdcth +gdhikmctlwsz + +hpekwtlufyragqvb +kbrwatlupqyfvh +ucbvwlhfqatpkry +hlakvyuqrfpwbt +rubvwpfqlatkhy + +npxobl +ckuhnplvx + +edkpjycofasulrthw +rpuhcdyxlftosewa + +stuvhwaexykzdorbfpi +shjuwgpfqmtacvlbirkzd + +frph +wo +h +zumtyngcj +pfse + +zivsgurp +szirpvg +gikvsprz +zigpvsrk +nvpsgzir + +rfimu +hmqrlfxpbgu +nrmoyftu +nmujfr +rfum + +bidzwmearovjkgcl +ogdbirkzqmclejvaw +gealcqozmijkbrvdw +gzakwmdbejclrivo +eolwifvgmrbjdazkc + +iurfyqgwk +ymkvqfpwrig +aqrfywikg +bfdryxikgnwoq +cjfgkryiuwq + +jvb +x + +qkxnvfuopdytrzjgbm +bmqkuyarjgtdpfzsnox +obwjxyeqtingzmdrfkplu +gamupstryfokbzqdxnj + +ymanp +npfshjya +pundyklatc +ypfanh + +garp +grpa +arpg +argp + +inedmtpwrvub +vwibertnudmp +idurbepwtmnv + +yczoaplwmxibqgsfn +wbiuxyqzpncvgmsl +gpoltrbisqfznwxcymj + +a +a +a +a + +cgjviyufped +pcuvygzkjid +ptvigyjdcku + +u +i +tqa +j +ul + +zitbfuer +uzfithernb +uftbzire +uitefbzr + +jcwkroamnegxvqsh +kejhanqmvcrxwsog +gaqmkexjvcsnrowh + +taegslmuyqcipz +asytxrgdpfbcqliwz +tpgoschavqjlkyzi + +oc +oc +oc +co + +mrfvjlykquz +fzmvuleykqt +vykmzlgquf +kqfzuvygetml + +a +s + +ionve +eailo +jiomexwh +beziqpdco +ihtoe + +cfjvrqosnwyedaubmhgtlxzk +olxzjfwrcytkbgudasvqhnme +tuwfnckrzsvjgbxdmyhqlaeo +txnydgufbmjaqkrzlwhoevcs +bgakxqmfsdwyjvelntchzour + +njvkobzs +bsjvkwn + +qmnluxw +ovgtikpdbrya +nchfsjqez + +khtdryej +hdrtv +qnaodtm + +as +aus + +omjaixvgklq +vgkaxjihdrlq +ycxkzatpusiljqgv + +jtepylmrqbiwk +xerlpmynqtkfbjwi +timwpbkegljqry +lqijkebmgpwyrt +qrkljpbytemiw + +q +xqint +dkqb + +trjmdxpoeqcwf +tfedxqcprwom +kmftwxqporncde + +fpcmndhr +dzepjngqikcfrh +nhfpcrd + +c +c +c +y +c + +t +t +ti + +tgfspxdy +sytgpfxd + +zov +voz +ovz + +ic +ieuc + +vhesndkizjgwcpobulam +szjymxwopckfqtgdib + +jdfzgqsbrmnticl +fbcdgqtznmjri +doitrczjqfbgmn +otzbjfidmnrqcg + +cb +bc +cb +cb + +aspjvghyurx +vcarwsbh +laeshvzrb +hsrvia + +kpxzdhasfmltouvrc +duvpkascromz +vmcskupzorad + +pguayqbwm +gpyaqbwum +ywaqgpmbu + +ypdlnjse +elskbyz +jesylo +lyse + +zlokqmjiurpwgbn +xzvurhgmlkwqnibjpo + +wpzenbojcykqxvt +wnyzlbjkeoqtvcpx +itkjzydbpvoxcewnq + +gfuvenodsizwmh +hwfuvsntdg + +gkibnpalc +inkcgpal +gnpzliakfc + +ibektdpuhg +iwbgjke +iycnergfqkbo +egxadvlmbijk + +l +yjg +l + +ymuoc +oymcu +oymcu +youcm +ycomu + +wifoqy +zksfrict +bdpvhuilgejn +acoi +mqi + +qrcukhwvzdjilpto +hqrmwkupclvjtizo + +gdizlfawobuk +dihqfswcgukzrbla +gmukawbdfizlo + +zwdrpv +dzvpwr + +ycidkpfrqjelha +pjahykfecdqrli +kfqlajhdepyirc +pkhaceijlqdfry + +pwuxbqotey +okbphqutfx +xvsgodubtlpqijr +puoewaxtbmq + +qtbaoex +xpoqa +agiweqtop +nozuadmjrq + +huvqdaij +fkuvaijdhq + +biewrdlzc +rjlcikbzmdwve +leucwfpoizndbxr + +avgtnubqcpxrhwdoml +vrkqgyndcmohtupswa + +dmjqfesnxyciz +hfzudcjxsmno +mfjhrcsxznd +lcmbjnxzfadrs + +tvayrhpqskd +qrtkvhyus +epjsytzhvrqk +yzqohmvtgsrk +hvlysqtwirbk + +ieyd +aipeyg + +r +rg +rm +r + +qcweajhfmlgyzpv +ouqdxmsphkbatenr + +fba +kfba +baf + +vxpblsyjnrmkai +vpyhagcwqbzxmik +rpbytexdijnfavkom + +fpmytnk +cyaw + +jhyimdg +mhyij +hmvyij +mihezcovyj +yhmciej + +sqfaopkgze +kxsecfphozq +qsotezpfk + +ewcvoaurmjhq +cuqvjwreaohm +ewvjmqacuorh +wauhojecqmvrs + +lyieuqdjcb +vkpctdmywzsreubn +delchbujy +jbcyegdou +xduayceb + +nidxswarcqtk +kciqdarnbewsxt +acqrdkntipxlsw +ikpawtcdsqnrx + +gikrfhwltveap +yeplvatowncgxirf +griadtewmvblpf + +htjkmzxlvbygcwqioe +jzwtymxvigbheolckq +cxmvjyklobhtwgqzie +teczbxvlmgojqiwkyh +oxvejlbtiqywhzgmkc + +jkfapozdwcie +bmushwjgltrn + +rpnbxkoij +exjdri +uirjegxsa + +zawoncbymgsrhv +dvctxgeusr +cvizgyhlmrwsfp + +shnyujedctwfq +yscahxndftreq + +xrnysi +itcluvmd +niqwozjber + +gjobshlayxvctnfq +ljcxaonvbstqfgyh +ybhxgntqcsvfaojl +rjoxblqavncusgheytf +sncqlvybxfjtghao + +uozb +ldewrck +xbg +xhg +z + +yubqaznf +imwhrgnkjls + +msvgjrnkcloaup +csxjnkgrpiuoveamy +pknvrajmcudswgzo +tnupacsxrgkvmoji +bpnkfarqumsvhcojg + +bzvyuenaihfdcgwk +puchyenmzgksrijoa +ugebciktnlzhay + +cedfutpnsivjlobrkaxy +denscvpbmlkxaojrfh + +vugjrq +jqgtuwcnrv +grvkuqj +gbmvqsyxjueplzirhf +avudnjqgr + +vpidajtmgozxwuksh +ughiwmakpjszdtvox +wugipxzdvastkhmj +sxughjakmnwfpdivzt +wimvaupjhgxstkzd + +mqsuwhdxpcozfr +rsdwhfpakzxjmo +eysprldfqzowmhx +fodhrtmswxyzp + +vsmzfbjhwqxiugtlc +gcqdsfmpletnhbxr + +uxbgkfjwesmlchr +feakldxqnpwcjgvrzbhs +hjosrixfmlcgbkew + +dszv +zsvd +vsdz +zvds +sdzv + +pdw +lxudjpiwz +advnkpqw +hswpdog + +gslpira +neuzf + +ifjt +tjif +jfit +jitf +ifktj + +jrnzb +unkjshpe +njza + +ydigxaqm +iaeokqgmyhr + +bkxmngtdlyev +nmbuzoveixlprkys + +zjloghmtu +ermvzn +qzdncfm +afczxmp + +aptscynieqmfgjhbr +bmsirnafyepthgcqj + +q +qlr +fq +qk + +v +v + +ucrmbsozjkfy +buscrmofkzy +uosmfkryzbc +sqirbfzmocuynk +mbucykofrzs + +lrp +plz +lrp +lp +lp + +yfzmpgcsw +prycgfm +rfcmgpy +scgmyqpf +flcyvpohmgu + +g +g +g +e + +lxoaibjch +wudyrfvkzn +gtpmkeyqd + +zjhlwbtfuvick +wujtvblzchkif + +ksdfpvqbtxaluneo +dqofprhnxamskujeb + +hacwigyftqblx +xwlqahitbgcyf +ahyxlwgtqifbc + +mb +m +mg +m + +ecrasdtyljuqimhnwfb +qleiaydjcugrwn +jdyewaqnrcliu + +g +lqfio +adhstybz + +gryzuxenhlvopbtmfwqcas +yeqzalmogbncxpsfujwh +mflqzhoaupcseygnbwx +myswzuonfqlaxecbhpgj + +uwvzati +uzcjvtai +savuizt +atiuzv + +cozuin +abuizo +tiozua +wilfzeoqu +roictxuz + +gndpkojqu +gunkpsjoa +rtmzjpgkovwxlnuc + +lrj +rjl +mrjl + +udlpevjgzrfawitqs +qgrtiujslfeovza +surivgtfqjleaz +ezavgjtlfrusiq + +g +fx +mf +tx +iyqd + +sljgmdztynvrqexhwfi +gvwdyerlqnxthmjifsz +qgmjlfwrxztynivdhse + +zkvuir +kvruiz +vriukz +kriumzv +zruikv + +zyqgnvda +kdygvqanz +zyagvqdnu +qnwdmlaxgzyfvo +dnzgyavq + +o +s +q + +cbroy +qiyocmjdt +uyoc + +lkqj +kjql +jqlk +ljqk diff --git a/2020/06/solution1.js b/2020/06/solution1.js new file mode 100644 index 0000000..b562aa5 --- /dev/null +++ b/2020/06/solution1.js @@ -0,0 +1,23 @@ +const { readInput, sum } = require("./util"); + +const { paragraphs } = readInput(); + +function intersect(strA, strB) { + const setB = new Set(strB); + return strA + .split("") + .filter((el) => setB.has(el)) + .join(""); +} +function intersections(...strings) { + let res = strings[0]; + for (const cur of strings.slice(1)) { + res = intersect(res, cur); + } + return res; +} + +console.log("Part1:"); +console.log(sum(paragraphs.map((p) => new Set(p.replaceAll("\n", "")).size))); +console.log("Part2:"); +console.log(sum(paragraphs.map((p) => intersections(...p.split("\n")).length))); diff --git a/2020/06/util.js b/2020/06/util.js new file mode 100644 index 0000000..5c40280 --- /dev/null +++ b/2020/06/util.js @@ -0,0 +1,41 @@ +const fs = require("fs"); + +exports.readInput = function (filename = "input") { + const input = fs.readFileSync(filename, "utf-8").trim(); + const lines = input.split("\n"); + const paragraphs = input.split("\n\n"); + + let colLength = lines[0].length; + let colConsistentcy = true; + for (const line of lines) { + if (colLength != line.length) { + colConsistentcy = false; + } + } + + const avgLength = sum(lines.map((l) => l.length)) / lines.length; + + console.log("Number of lines:", lines.length); + console.log("Number of paragraphs", paragraphs.length); + console.log("Col-length is consistent:", colConsistentcy); + console.log("Average col-length", avgLength); + + console.log("Sample:"); + for (const line of lines.slice(0, 5)) { + console.log(line); + } + console.log("..."); + for (const line of lines.slice(lines.length - 5, lines.length)) { + console.log(line); + } + console.log("=".repeat(process.stdout.columns)); + + return { + raw: input, + lines, + paragraphs, + }; +}; + +const sum = (arr) => arr.reduce((a, b) => a + b, 0); +exports.sum = sum;