summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2020-12-08 02:20:12 -0500
committerJesse Luehrs <doy@tozt.net>2020-12-08 02:20:12 -0500
commit340c586e323d3c8838c0e5fd53870a4d07350c75 (patch)
treea29c27200d8f07f37f7599b5f6dda478e5ae55b4
parent935aa4ba68c865adbe36a99ae02bb6f40b73edc6 (diff)
downloadadvent-of-code-340c586e323d3c8838c0e5fd53870a4d07350c75.tar.gz
advent-of-code-340c586e323d3c8838c0e5fd53870a4d07350c75.zip
day 6
-rw-r--r--data/6.txt2237
-rw-r--r--src/2020/6/mod.rs43
-rw-r--r--src/2020/mod.rs4
-rw-r--r--src/main.rs2
4 files changed, 2286 insertions, 0 deletions
diff --git a/data/6.txt b/data/6.txt
new file mode 100644
index 0000000..cb5c69a
--- /dev/null
+++ b/data/6.txt
@@ -0,0 +1,2237 @@
+qpicundo
+fiqcdbkyuoz
+
+rahgpijvyfd
+biwvrajyp
+ajbrvopeiyw
+
+cv
+v
+qwvo
+v
+
+ftsvmcrbxn
+zkvdfsjxrablnpoutg
+nbxferitsv
+nvfhytbrwxs
+
+hdamqjxnipezgrwutc
+vmszeqacbiuwpokxn
+
+kushbeg
+fjarlmdhvspkbie
+cesznhbxkg
+buekysxh
+zbkhse
+
+hrxgtupf
+gmhfxutje
+
+cnajtoldrhkmiqx
+onmqriltahxjkcd
+jqimcxkrdoanhlt
+
+fhbtngdzq
+ndbghqftz
+qfhdgtznb
+nbdgtfhzq
+
+dxeoijmbprfaug
+ohspnculriwexbk
+zuviobjraeqxgp
+
+oitgeazcqrkyvmphl
+bapolshcnvekdyrijz
+
+hxaiwmzpglyrunqkdfvjbsc
+jsymwqnfzhbvrdxcupglika
+bqzsuwpkfjxnildehagvyrmc
+
+agkfyuvncr
+kvucyrfgan
+cankyfurgv
+
+qrikblojp
+wtvfscqiyh
+cfwynimq
+wuqxmegszi
+
+egvjnhmwuszotipdc
+nzgvmjshpcuetiwod
+dqwpiyzmcaoxuhetvngs
+
+xae
+xaet
+xea
+xae
+exa
+
+jizaflhpxdwumgs
+duaflpzwxmsgjhi
+wfsmilagxhdzujp
+
+ijeyq
+ezqji
+zqeboij
+qeijb
+
+bad
+dba
+debta
+
+h
+x
+x
+x
+
+ulfkv
+kuly
+kuly
+kjul
+klu
+
+gpr
+tkr
+rd
+r
+dr
+
+mlcybiwua
+owg
+
+cokrh
+bomzakugxtwveiyn
+osklqp
+ofkq
+cpqohk
+
+hcmyonbsarvldkgfpw
+eslkdgounrvbfmywh
+slkdhzvbfnymorgw
+
+efvugtbyzmdh
+fumqpbvyej
+ypcmbivuesf
+
+mdgfxrjycuwepi
+sdtmejcyubgqlox
+xdmyecujkgzafr
+
+arhevtgdomli
+idvraethmglo
+ehivtolgrpwa
+
+zrjkgal
+rcjga
+rljgasp
+wrbhjnav
+jslra
+
+go
+goxw
+
+nfycq
+fnyc
+
+m
+kf
+j
+d
+q
+
+wcx
+xfcqw
+qxwtu
+oxkpiyg
+
+ud
+qr
+somtbxcv
+diae
+ij
+
+vftcjdgs
+cdtvfgsj
+gvfsdcjt
+vgfksjdct
+gtefcdjvms
+
+khgdmzlcae
+zedcslqka
+tfdckeaxmzlhr
+aezkdrlcs
+wycukdlvaezb
+
+hzakytmxgcqvunsbjoidwe
+touhjicbexangskvzdwmq
+ubdepshljqaivfnzgxwromctk
+
+hxgcwlvzujrsbe
+zxceuhvwgrnldbsjm
+rvczewuhsxjlgb
+
+rhiuambjzqn
+imqzjpburanh
+brmziaqujnh
+aqifozjubhrnm
+
+ukrpajtcnlvysdhwf
+rnytlpwaicjusd
+ljyarntxhsbwucpd
+lrjwscyvdntuap
+
+xwgtyqkf
+wvuinb
+zlmewri
+
+vajupxzg
+bpzaux
+pxzua
+zpuax
+
+wmqd
+dqmw
+gdqwm
+wqmd
+umqrdw
+
+wrfhtn
+rofwht
+pwsrthf
+
+manfclbyrdxjik
+bxflmyadknjcir
+
+sduzqohjtnkmi
+hjtnyimzqdsuk
+mjquhntdiksz
+
+ofr
+qrl
+
+yhjzgdmslpn
+zygdpjlmsn
+
+ailyqtfmzsopr
+iazfmqslyrjhpt
+tlpvqgaiuzsnmwfbeyx
+dclofymkatspizhq
+
+clypfnqvimtuxwab
+msogekqrzhjf
+
+hnvgmwrfj
+rhfjgmw
+igdfsrhj
+hjfewlrg
+
+julft
+fuijtqyc
+owfjskvtg
+ituejqfc
+yuztqfdcirj
+
+rubfcosnikjzmyav
+fymjibrucozavkns
+uzanfkocrsyjbiv
+yrbvncsjuoamkzfi
+sfcjvyaqodezubnipkr
+
+qkgwlfhdy
+nbjkrsveifz
+foypxtcak
+
+cjqwymzgbxilsednupfovk
+fgqevluowysidbnmxjkzp
+liekuxymdsvbzqjnofwgtp
+
+sgfnmoljbdihqaeyuwcx
+ojuwiqhdlnzfcsegxymab
+wbftqhedrmikaluxsgpjncov
+
+paxhq
+cos
+fdb
+
+ognxqwer
+qwgoxenr
+gwqroxen
+
+fsdgo
+kdocfslx
+osbdif
+hosdprf
+gsvofzd
+
+oamvucfhpq
+hquvglbsw
+qrvhu
+uvjhbltdq
+
+jfltodbmwxpcai
+dwfihozpbcatljxm
+pbwotmcldjxaif
+txkbipfwdjmlcao
+ajfmdxlipbtocws
+
+lkbehfsx
+hxlksfebp
+
+lm
+whnogp
+kicyqtudszf
+jn
+
+gcsewnmqdthv
+gsbucadrmz
+rocjzgsldm
+
+uprsfb
+gfqnmlbjtev
+fhwb
+
+awpv
+a
+a
+
+t
+rtn
+t
+
+yrfmxdnkel
+lmdzewkxnr
+drempnxkl
+
+kyh
+yfh
+kyh
+yhk
+
+ybqx
+xbyq
+xnbqoyi
+
+rkelsyhwmjqoaxgbndzicu
+swlgkjmbqhacioedvnur
+dqorcpgjmhieunklwabs
+uoijceghaqxlbnrwskdm
+
+xmd
+mxd
+xdm
+xmd
+
+unjqpocarmtgfikxzsdhwlyebv
+gwklmrhxdvpfbzyacueitqnso
+
+wfhlcpe
+fqechzwal
+hlwfec
+ywbefclh
+hecwlf
+
+v
+v
+s
+
+gzhspvqbtiyl
+ltqiyurkhb
+tbhlyrqi
+
+hepdy
+ydephi
+edsrhpy
+edyph
+pyhde
+
+upcjxiwvqmhafetsronkbl
+atflkcnqumpohixbzsrjwve
+wlovimkcxftspajbquerhn
+ikqrstefvolhdwcbmapjuxn
+ipsecmgurbxqtonvwjfkhal
+
+nrhjbowi
+wiornbhv
+bnwhroil
+
+szfukhordxjb
+rfbunjtdsk
+ndbjrkufzhso
+ukrjbndfs
+eukgdjmrfsyb
+
+gbzd
+vdz
+
+oqfzdjk
+kedfj
+buwinxdrjgyh
+
+gy
+euy
+ywz
+yk
+
+qfglvert
+eftjpsln
+
+ujqwnmhszxcopivfgbe
+wgunfyqopmzesadcvxjbt
+
+baiykdzpg
+payezibmdgk
+ikyzgpbda
+pbdgakziy
+pkdbazigy
+
+pojhgwqdycz
+yldpsuwco
+
+lqiox
+khglw
+
+iknzjfuqcx
+qnkcovzui
+zpnrqauywtdlme
+gqunsfvzo
+
+ayhdk
+ojybpl
+yvpb
+
+ubmxehjto
+xbtmoujeh
+xmoejubkt
+juoetxbm
+
+kvcbe
+eckbpv
+wceqvkbm
+
+hdojvxsbaiy
+elwbsq
+
+mrng
+wlz
+
+pbiluamrejsownyfkgx
+odbpxnuizywltqvcs
+
+yhgoj
+inls
+vqzmeawutpf
+cdyjxr
+
+weviflqhaotpu
+csybrknxgm
+zjmdkr
+
+wnp
+wpn
+pwn
+wpn
+
+trfmhxeociukg
+ecioxufhrmtk
+thfxmenokcuir
+ikxehroumftc
+
+jgxzko
+jizkl
+xoukjzv
+
+rkwnxumvyigodejlfp
+okerwlypnvxdi
+qztwohyxkcenadvbpr
+
+xtisomdj
+uncyzkoesravi
+
+yrplsicjnox
+riopycxsjlun
+olyjcpsixnr
+nxiprjclytos
+
+lypqxvjrueastb
+lvpruqbatyx
+ynvurplqabtdx
+
+a
+aq
+w
+uzb
+
+b
+b
+b
+b
+
+bdhtie
+bthedi
+dihebt
+bqihdet
+dbethi
+
+bmcfdeuhykarnxq
+buxaynpetdkhmifqg
+yabdjmxqunkehof
+
+hbjle
+pyr
+
+ga
+ga
+ag
+
+hit
+eft
+
+bls
+sl
+ysl
+bsl
+
+qjtvniz
+jit
+iyjt
+tij
+
+cindevpkljyarzqwh
+zgtdpmsxnofbyiru
+
+phismdwurq
+ximrwtlyzqh
+hfmjziqraw
+
+ay
+ay
+eya
+ya
+
+elnvry
+ckiyeqnvml
+yvenlzrs
+vzneyl
+revluny
+
+jbqenozxgd
+xdjqgnoezb
+nxqgeozbjd
+gzeqobndxj
+bqdegnzoxj
+
+wfroqvpdjyu
+jprvwouqfdy
+voudwqypfjr
+jwuqyfpdrov
+pjdwovyufrq
+
+wpmbq
+bqmpw
+mphqwb
+
+q
+q
+q
+e
+q
+
+mpwuo
+opbwa
+owgp
+
+rbmveola
+eoizbmv
+lqbaormve
+
+enqk
+kqn
+knq
+
+fdoajsxqhlinrywbgu
+hxnuolryqdajgbifs
+oaduxbjnigqflrysh
+
+r
+i
+i
+i
+
+dngie
+igdne
+djfrgiwenmk
+gdnie
+gidne
+
+ompatvbu
+pkmuxavbt
+szufycrimbapw
+vbuapm
+kabupm
+
+quonbdt
+otuybq
+botqu
+uqotb
+qubozt
+
+j
+j
+yj
+j
+
+duqnjebpv
+lquynhc
+
+hndkojuxyslvrm
+ovmndkwyhxuisjlr
+kjlyhsdguprvoxnm
+lsomkhyrjdxunv
+gudhsnlrjkxmvyo
+
+vtpamce
+ovzaryjmetpc
+ncavpt
+tpcavy
+bwptvxdqhaikufc
+
+o
+o
+o
+o
+
+jqluihoeak
+ikeujqoalh
+joahkluqie
+
+fqrmvtxas
+zoiwqlmt
+xvqhgebtsm
+tpmeq
+
+fkaeotvzuwyxdjs
+xafmzeycqbshvdgkl
+tyxasdvkefz
+vxoaksyzfed
+
+rkfvodejlb
+qahc
+
+urabynscomx
+bvmaqynlecf
+khjlyzcdigpbtanm
+
+losbxwmapcdrzfyj
+ujmlczgbwxyehkoq
+jcgqylwbmzxo
+
+g
+g
+
+bvs
+s
+s
+
+bhjwfznyraolkce
+fbqjlrcwaokte
+bvlrwotfecdkja
+rwkflbxijougmepac
+kfwajczeoblrt
+
+lhdcfskwxaerjiotzvn
+zaiefvhslwrcjoxk
+zoxjibkalmshrevcup
+
+egvpws
+epwgsv
+vcpsgem
+ozvyetksrxagqp
+lpmgseuv
+
+oupbzjesrfwnvklxtiygdc
+iyjudbvzegtscownlrkfp
+gwfzvlynutkprosedbicj
+wdkhujnigopzbcystelvrf
+dgrlvbtfzinpkusjwceoy
+
+xupqorents
+pensurtqxo
+orensquxpt
+prsuxonteq
+snxqrpotue
+
+obryetcjszpnuwgxilkd
+ropejxinuskybcgwltz
+zuvrgmwftjnelqsxkpcyi
+nxkzhlpgsdyrwejtciu
+
+yzriohapbgs
+isprgzobahy
+riyabgohszp
+
+lxczkmearuhnf
+mxfnkczruhela
+
+krcoivbedawtzuhq
+wnksyfjarde
+
+xsguj
+usxjg
+gsujx
+gjxus
+ugsjex
+
+hy
+hsn
+pz
+c
+n
+
+wdnzt
+wqzrdkbc
+nzwdtf
+
+h
+mh
+bh
+
+kqalzofbu
+wyncpf
+ixf
+hf
+
+tihepcdnxg
+scfhe
+cefh
+
+zxlhgpuowimedyjktqrc
+zgcirhetqjmlpdokuywx
+oqykmcupwridlxhztjge
+
+xvstwya
+vtywxas
+yvxtaws
+
+gsnij
+gpjshn
+ogjsnlze
+jzongs
+swljegdn
+
+teaxnu
+atreuxn
+axlwtnu
+pvukhadbjtxcn
+
+uvgz
+zsm
+
+xrjduek
+djuiker
+
+mgbsqftv
+bgvsfmqt
+ftsvmqgb
+tvgfbmcqs
+mbfsqvtg
+
+opjuwfskvclrxgtbnzemqhia
+jsutkmcybpgowzaqxrnfhliev
+wmhbsitkclvzfxgjpurneaqo
+
+xblyaorpvdjqfehuszi
+pyihjwadusfqbv
+
+lhtxfsockq
+hsoflktqcx
+lkfhtxocsq
+fqocxklhst
+
+zwt
+zhtbw
+wzitlb
+wtbz
+zqjtw
+
+pnowugqirtlmzadsv
+uoqpznmldrtwjvsi
+
+meavkwnigcbjplhd
+minwphevajckdtgl
+
+udqekwjaxm
+xujwqmkead
+emauxkdqwj
+
+sxtnmaechq
+qnesxcth
+ntkxshecq
+
+fl
+yt
+
+pnjmvxgd
+xeqdpmsvgnj
+nvjpxmgd
+pxngjvdm
+
+ezfswkgqrjnbmpvliycxua
+ubzspxqgnejywkmirfv
+pbigrvjshkxemnfuwyqz
+
+unc
+cnua
+rknluc
+zebcntou
+func
+
+ucbipqmenafw
+cqiamwenufb
+bqveahpzcuniwf
+uatniwcdbqxjeyrof
+faeincqbuw
+
+mkbtyagfurhszxcpqjweivld
+zygiwpcnuxqjdlmvfeohsb
+
+qtczamlod
+qovpdgfla
+ldaqi
+dwnarbsheyxl
+atvuljqocdf
+
+cjxpytmesknol
+esxcmpoyljtn
+eosljxtcpknmy
+ptsoyjmclbxnve
+
+gsmxqruzwhtb
+gwrthqmisbv
+tgbhqmrsw
+sqwmgrhvtb
+hqrbsmfwtg
+
+xdzjpkolmgchyatnbqv
+yiuprfwxnosme
+
+aruewcdm
+nroei
+
+yxh
+xhy
+hyqx
+
+a
+a
+a
+a
+a
+
+gkrsznedvcwxpymtu
+irqenbkaox
+
+kajrbfgdlmenh
+mflgandejrhkybx
+afbmqelnjkhgrd
+
+vfmns
+zonlxhfrvm
+
+zcjhsuikpbaqgwnxrvedmfyt
+dvpnabeuwzqhrsgfyioxjtck
+qjwdzgurbcsehtxvkfanyip
+ajivfcuzwhrnptxyqbdskeg
+xjwdfupbnzsqygheiarkvct
+
+s
+b
+i
+b
+
+wqoxgkjatmlcynhs
+mojxlyhcnatwsk
+clktjowxayhsmn
+sxonlyakmtjhcw
+mawkojnhlystcx
+
+hovsj
+ujvso
+jsvo
+
+wljeskzntydaqfg
+plxzvtwdrqosfckhnjb
+
+aswnqfrcoe
+oecaqf
+ziqayfjum
+avfrq
+
+iortchugjyax
+mlxsbgzrvfaun
+
+ispmrkfvyhczdotnjua
+kqcvmrasoblntihzxufjydp
+cptoryiszakdhjmuvfn
+
+qstwglyd
+qylwdstg
+tgsdqwyl
+wsdygtql
+
+shcbwqgu
+bdqmn
+vaesbq
+lrptqfijxy
+qkz
+
+svoxw
+zxwbkvo
+owzxve
+xwogbnvzk
+vtwfqjiox
+
+wq
+rwq
+qw
+
+nrxyvf
+yfpnrx
+fnxpvyrj
+edwsaytzfhnxr
+
+jdpfyteizvkc
+ypjmnvlwtfdcezgk
+
+bcpwnkgsvtxdoryifh
+gfscykroibnxdhtv
+bgyjnckfsrziqvohxdtu
+
+jxwqdnocstrzvhybguilemf
+bmcqdgrlznwsexfavhyioj
+wxamfqjrobyzicesdnplgvh
+ngjixrfmsvdopqbecwlyzh
+gnfdcimovhbjxrszwyleq
+
+rpgdzmcneyjthsvflb
+tnmfyjrzbosldg
+ndszyijtbfrlgm
+tzslbmrfoynqjdg
+
+rekgsioqlu
+unjlczqkbdvgahm
+qpxrtusklgyo
+
+iwupkfsxnoqzcd
+pvzwkmdejybqhtrcn
+zswapofucqgndk
+ukqgpdlocnwz
+
+yxzpgn
+xzypng
+xyzpng
+
+ibg
+igbf
+igb
+big
+
+krqgmdcbxeuvsaihj
+jsiartydzuqhvowp
+qvbrdskexjauih
+
+bgaoqndvurhy
+ursayhgpqbonc
+
+nrzwfeqdmui
+rdjmwnkzpq
+
+aihrwbyjzt
+wcajbti
+
+sizktqxjyohd
+khzqdtxosjyi
+
+qclmepht
+qdplucnb
+
+maxvquihzfskdbglj
+wvisljfgbkrmqzca
+nafgikszlbqjvm
+kfmsbcgvizalqj
+
+ub
+beu
+
+dxhnelp
+mpfiselg
+lpexzoaytv
+
+gmuvyxln
+wkxoegvjhumdal
+
+x
+x
+x
+x
+x
+
+skvxydbqmzehnlcwo
+vcnkdequzxloghybwp
+
+uslq
+sluq
+qsul
+osqul
+
+euknogsl
+jbvrnkgoslu
+npmcutyihaogwsxqdfl
+
+qbfoiukvea
+pgdzhc
+
+njdlgbus
+judbcghtnf
+
+calds
+lcsa
+
+dvcnlxhkt
+bvzhingdrykjsxo
+vkphfxdn
+
+bsferyztuikaq
+fsbayqukrtzeic
+ebksiyzlqrfuta
+
+spmkwhd
+nhbz
+bqxclfh
+hjnli
+
+hsmqoplv
+hopqvsl
+olbhfvwusp
+hoqpslve
+svoplnh
+
+tpnuwvzabcmjfiod
+avwntjdbzcupfo
+
+bdvyenjktqcgawm
+rvgteckqmb
+kqrvmtfbgec
+
+fu
+sdc
+jzrginhoalw
+
+hpwdfomy
+shwjzmpfikoydb
+yfwmhdopl
+yhwdmfpo
+
+q
+q
+m
+h
+m
+
+qg
+gq
+qg
+
+d
+do
+d
+
+pebzkhvxmicuwgoynrjdsf
+dchofjsmzrkgwxpyvqeiunb
+
+ljfm
+mflj
+ljmf
+mvjufl
+mjfly
+
+juvli
+luvji
+lviuj
+vliju
+lijvu
+
+qyokiecwgxsdpf
+pwqfselocinxgdky
+yoksiqgwdecpfx
+
+y
+xpofmyg
+vyhz
+y
+yz
+
+rihacgdmbn
+abcmigdhnr
+ignabdmchr
+gdhmirabnc
+rdhganmicb
+
+bizqcode
+zdp
+dpazjrt
+wzxd
+
+cmfihuwqnzbtglp
+itnwhuzlpgjmfqcdb
+
+ut
+ut
+ut
+ut
+tud
+
+klhufpyioetxngj
+jxuhfpiyntkgeo
+hkefjnpgixuyto
+igknoteuxpfhjy
+
+uysoaqjzmgcrvkdnlebpwtx
+enlrwtxomaqjupvsczydkgb
+vdsziegptqljwabxnoruycmk
+
+nycf
+mcxo
+
+ytivwfslq
+ftvqli
+fvitquel
+
+nybhaiupejdxkgs
+xyajdsbuekinp
+ayjpbnuxksedcw
+peynrkadsuzjxb
+nugdjbypkxashe
+
+nvdaqfkbyomhxptiswugrzce
+xzkhfsjotigcypdnmubavweqr
+ndhyrzqaekivtxgcfwosubpm
+cdzatkpnvesrqgomybuwxifh
+
+sujzvcnoy
+zusnxef
+tsqdwghnaulizp
+yusnjbz
+mosjenukz
+
+rqwov
+vqdgorw
+ovrwq
+opwvqr
+
+dktvrwchflapu
+prlxwcavdfsu
+vadwuqfrpxlc
+cwuvraplfd
+
+qsjpxud
+qpdixsu
+
+xvktceduf
+tuedxcrv
+xcutdev
+edvrxuyct
+eqcdxtyuv
+
+sbmhyidelk
+eldbhmsiky
+hkmoyisxledb
+kmebisyhdl
+elihmyskdb
+
+ycnp
+ycnqmsp
+
+rhyjefcnpsqt
+fsqretnhjycp
+efrjhqscptyn
+qscfhrjlypetn
+
+jtwuhekpbqaoizgcdym
+omuyzaiedpkwgsqhb
+eghavourqipwmdnkbyz
+
+xyejzbknatlrimf
+lrfyqejnxamzdktb
+natmyzjxevqrfwhkbl
+qmjfzrtlnkeaxby
+ycblzpfmektoanjxgr
+
+quwatziscogfnj
+hravz
+xlbmkza
+
+qtjslp
+czikofeuy
+ptxbvwal
+
+icmd
+ipc
+oxftiscgzyb
+ciej
+nwkcvqi
+
+mk
+o
+dwxb
+
+rzg
+rewg
+rge
+rg
+rwg
+
+o
+th
+o
+
+jtkifz
+ltmikzj
+fceztlmipj
+pjzati
+jgzdbhsytwni
+
+ablqpzxmoingerywf
+xpmfezbayrilngoqw
+mixpnyqrfaeglbozw
+
+pjewrkfisbo
+jkeaprhbfswog
+tojwpfbsekr
+fwbeprkjscmdo
+
+udpjifbsevlwqxgkmtrco
+yimjwpcnukrsdavqxohf
+
+acrljesyth
+aontchrvljy
+talszhrbcfjqey
+chrjtwyqla
+mhxlytjuiagrpkdc
+
+ockyq
+dy
+
+e
+ex
+
+uz
+zd
+uhz
+
+rqvhze
+hrezqv
+zovfeqhr
+
+boekypjtz
+zktoyjebp
+epbktyojz
+opbktycezj
+
+vpladrzxbwh
+pvgizarljdxbwh
+
+soalndurh
+ruhosadbmvf
+arudhnos
+lspqurhadoj
+
+ualpstjky
+psujtykal
+skaujpylt
+tsapujkyl
+
+hxagklitebnmdrqcfwvsj
+ehdxmkqaycvsonbrfwi
+
+xzfmroh
+dntb
+g
+
+vdmbkqil
+sbkwqm
+kqbyrxm
+bkqsm
+muwkqbzy
+
+qljpfbimaswex
+lwmsbijafpq
+bdalifmpwqsj
+jlamqpiwfsb
+
+gtck
+ckmwt
+
+wqvp
+ws
+wu
+w
+wu
+
+fglbvteoinduycjqksmxzrphwa
+fixyhqwlnkszvoregcudbtpjma
+
+oqjb
+gbkqj
+jblq
+qbj
+
+yiurdl
+uidlyr
+liuyrd
+ruydneli
+
+qznajfvr
+zrjnavfq
+fjqrzanv
+
+ndwpjqyx
+yzpdqcnmwxf
+
+avnxlomwtjdhqei
+dqfxmreculykgvtjon
+
+fqotuvxki
+ovywiuqkf
+uiqhkofve
+ioukvqf
+quiwvftokp
+
+mcxhanksj
+exnjhocfm
+
+m
+m
+s
+m
+m
+
+mkq
+akmql
+mkq
+kqm
+
+zxldabvrtwoyicp
+rlpbqfwdcovaet
+crgujdvbkpswmolat
+nwhdbcvpotalr
+
+asngcw
+zxafhgp
+yjegdutvorm
+iqngs
+nkgzx
+
+z
+my
+d
+ohfc
+s
+
+k
+r
+m
+
+ihelxwpygbo
+oebglxywhupi
+lgbxpiyhwo
+biwoxgplshy
+
+ygqnkm
+mknqg
+nkqimgfz
+gnqmk
+glmnqk
+
+peax
+ealx
+eax
+
+whgsjnbd
+whgsnjdb
+wpgdhjnbs
+
+pbzmysjve
+ebofukvyjpsh
+jvyberpwstq
+viyjcdesbwp
+rpsvejbyi
+
+uymlzeihapo
+yleivfaupz
+pxzgqlayscbjeiwu
+azeuiyfpl
+ryphizkaeul
+
+kyiuectd
+uykdeczi
+
+mf
+zf
+mf
+fn
+f
+
+lksmjwceqfpngyxzd
+jmlcsvqdxkyuewngozbp
+wlmeiyqdskgzhjpxnc
+jdapwmsxznehqgkcly
+
+xujsqncmrgkflohyewzpa
+qoatelunckgydifmhjpxrvwb
+pykmhgazwjncuerloxfq
+
+efyo
+nlcwbjef
+
+nzpwo
+znwcop
+
+wxeguptj
+mgstu
+otgu
+gut
+utg
+
+tbpcqyvwizmgs
+scmqvizpytgwb
+iqzygwsptvcbm
+ybimcptsgqvwz
+
+hlgwbevrqcjxsf
+njifcqghxrvewtl
+gwjcfmhqexlovrb
+
+xzs
+zxs
+
+frjzu
+uetgiqm
+uaeov
+sbgyqu
+bquo
+
+yepgsojubnzxrhmtlfq
+husqezbwxngmrtplf
+gxqneopzrhdslbumft
+hslbzwgeoiuqrnxftpm
+fmunresxbhgaptqzvl
+
+opwuibl
+piluwob
+olwiubp
+wibluop
+
+obvzhrmkn
+oprkbvnmzh
+zovnbhmrk
+vnomkzjrbh
+obmkrnzvh
+
+rbgsywpzifanclt
+hfwndizxkjtsuypvcbra
+cznwbamiyptrfs
+
+yopvb
+obpy
+ybop
+oybp
+
+tcr
+tc
+tc
+ct
+ct
+
+owztrcxfgy
+ftzlorxgwbmk
+wrgoxtfz
+
+qd
+zcn
+mo
+
+jpghwqsofrcuatkexy
+sfcxkwaoytjeurhpg
+ycwtxehprjfaogsku
+rjfognzhatpecwuykxs
+
+urtsinfxlmqgzhd
+fsrhtuixzgqnmdl
+rtuzixmsfqnhdlg
+yqglzisofmtnrduhx
+
+iuawhprfkdqnjsxct
+qihkjosclamtyuvbwnp
+hsdipzjuetkcaqwn
+zpsfhktcqujgixanw
+
+dpey
+zjmyedpx
+nepyd
+dyep
+epnyd
+
+luqyb
+blqtuy
+yjlubq
+
+niulkzgvmpyseqacdjrowb
+lcaozsimjbuqdfygwvker
+
+gzyfw
+zyfgw
+yzgfw
+wyzgf
+
+z
+z
+z
+z
+z
+
+ymfsvlrk
+yfmsrvlk
+fmvykslr
+ksfrvlym
+vrsklfbym
+
+ent
+nwetal
+tne
+nte
+
+nbwkjt
+wbtkj
+
+sydlfim
+yixfumpt
+ofkwymbaiz
+qfyendmi
+yfmix
+
+lrdzymgabtexswqn
+xrotnmkzdlgqsc
+
+bilqfktvxanemzgusrph
+snpakrugbyfmwhqxetizlv
+mehpaftzvlsbqikngxur
+
+kxsnoemdalq
+ubptrgfvdcyz
+
+xzvsnur
+snrzu
+
+ejrnailgkmhutwbvdfpyz
+tlmcgefjuvaiyrwkz
+
+ftlzhxs
+ohxflzts
+
+kzijpbnmfhaxtvl
+flibzjwhtamkxp
+bskirxmthdjflozep
+tujiphbfxmzkl
+
+ambtcpgq
+qbmpgtca
+abtqmpgc
+mtpcagqb
+
+taofbg
+tfoabg
+outgafb
+
+biurh
+hriqbu
+biuhr
+rbuzih
+ubirh
+
+rvjxdbitgc
+tbrgxjucvid
+jmortivxcdbg
+gbrjcvxtdi
+
+qvngfmuyozdbkwaphcr
+haiufrkzvwydboqjp
+wnukvpfzlhrayoqdb
+zduckowqyebhfsrvpa
+dvrqoswbpaehtyzfuk
+
+yzhmrogndc
+fxzb
+evkwjbpz
+jatpvz
+suqzbi
+
+rxfdvumlhntsowpiycabzgejq
+iopsjqmnwhcfuargbytkxvzled
+icaybhzfvpuoeswxqnrlmgdjt
+sneioplcdjfxuvtazqbrgymhw
+
+xjas
+fyhux
+
+gwistylekhruxovq
+lythgqivuowksxer
+igekwlosqturxvy
+royckiudglevxwsqmt
+
+xvblauri
+rduxqmnt
+xzruo
+uxqrjn
+
+bunsrlgk
+qnyrc
+rwnyq
+
+zkyqfrnbmuatojxvwihel
+zeaxtqjonbrfuklmwivh
+tkbsquaojwvnhzgeriplxmf
+hzikjfvmtruabqexwlon
+lqodamkfxjerunhzibtvw
+
+y
+q
+
+c
+cu
+qkv
+
+ervnoqgafw
+oscminrewf
+wofjbr
+
+b
+b
+ro
+b
+b
+
+ylpedbjm
+jmyqepfb
+peyjbm
+
+srba
+gioz
+aluw
+baseu
+
+wamvctoexzgf
+bsyjrxdeo
+
+epbf
+rfobeq
+bfe
+etfichnybuv
+
+idyq
+lqiy
+yqil
+iyq
+yqi
+
+dhkv
+spcnm
+
+mpuijvlgbd
+bdpfmreatciv
+
+phj
+jph
+pjh
+jpbh
+
+hvox
+odxh
+
+tkiamnuv
+
+enukxohqzridb
+dioqhnrubkxze
+xqokdubnirzhe
+iudqxoknhrezb
+hdxrnuqkbseozi
+
+zxjg
+xnak
+kix
+
+qoflemvucnta
+lvaqmncftoeu
+elqmofnvcuat
+yvqlrcafenthom
+vqotfncaelm
+
+czrtsdaiw
+sziwdatcr
+
+vsytnpgefkwxqaouhcmb
+oaeldkpvhbcryuxtfsi
+ezxktcyfophsabvu
+ctuaehvobkyspxf
+yehbrcsovtakpxzuf
+
+wjrd
+drjw
+rdwj
+djrw
+wjdr
+
+t
+v
+t
+d
+
+micqdwj
+rqjmownes
+pqtmwj
+yxwjiadmq
+
+wmlsot
+ufypiewba
+vtsqzrwdk
+
+xd
+ux
+
+gfyrh
+vet
+bml
+pka
+
+konhiwejsydptz
+htwiogdpnjsy
+sqbfvoywhdjnxtiu
+nstohyjidzwp
+
+oulvcfs
+cfvslou
+lvodsucf
+tsvcuolf
+sfoclvu
+
+omfdtxpnqgwhrlac
+qtmxpdngcfarwolh
+ptrlngqxchmaodfw
+zxmdcqfrtlhgpaonw
+mtrhldnwpqxgoacf
+
+hfmbnlwtujeqacxo
+bjolymcdfhxaqwu
+mcfahwxjsqboul
+hyobucwmaqlxfj
+
+okxygwhp
+wvkxgpho
+xyufhgwkop
+okgpyhwnbx
+
+ct
+c
+
+mrajcxniesvqtzhygfkp
+nmaxyrvsczhipkgejqfot
+ecmirqgjkhftzpansx
+uaesfjdmixkgqcpthlrzn
+qnpojcfksgtmhzaxrie
+
+oinruztqxj
+rvoumlcwdbik
+
+swa
+sayj
+rxygsab
+rzlxs
+usdqnecvmt
+
+kacytqiemxbwrl
+nodjpvuhgt
+
+tu
+pte
+
+nyat
+nzft
+rnftd
+potnbg
+
+pu
+up
+pu
+
+swftrvkn
+fnvwtriks
+
+zvukcgfm
+prdgtfkqh
+gvckxzf
+fkgi
+fkzg
+
+kyojecwftxlq
+kymipznvgh
+wjoukyse
+
+jikgxfnpl
+zkupgjrxilmn
+
+l
+l
+ral
+l
+l
+
+feuprzgydcvmniqtbhwsloa
+yzguptfnihbemvqsdjkxc
+
+wlpaenfhz
+ehawliznq
+
+nw
+bw
+
+vdtqpkxbrczjfiayumhgo
+umoerhdfcazgtj
+jldrhtzawcmfugo
+zahcgrtdufjmo
+muaglcntdjrfzoh
+
+fq
+fq
+vfq
+
+ldcsbpxaq
+qcbalszxgd
+
+nzvuexwaqbtkjdhpfls
+vnfdayzbxlqskjuhewp
+
+bejuodklarwyqmftv
+wovrdtyqmbuf
+bfoqtumdywrv
+
+pcatgvxsfnemhd
+juyahm
+
+hsgfnxpyirz
+pkychzfjasrqni
+
+jvhzlgfsreoaqimytdn
+ltcaybovrmhinws
+
+hvpaxkrbyf
+yprhbv
+yhzvbpr
+vpjhebymr
+ypvbrh
+
+vxbshtzumdg
+gzhdbkvnymt
+mghlcvjibrqewao
+
+qwatcjvglnkoxbz
+jlanewzf
+ewryzpjnla
+hapjrwlnsz
+
+wedijntshvckmuagqroyz
+aygdzjuvqetrcnkmhiwos
+
+h
+h
+y
+
+tkzajcrnldp
+ptrdkcezajnl
+lrkcdjspnatz
+
+wpbavnk
+pbnawkv
+awmygpbfnqkv
+wbvnkap
+anwxvkbp
+
+ciojha
+ergycubzds
+
+stxylmiduhbek
+cdyluksmixh
+leixuymskhd
+
+ckmb
+hcbskxmj
+kcmqba
+ckubm
+cbqkm
+
+zimehj
+ekhjmz
+zjmehx
+ejzpmh
+zadjhemo
+
+uiyfxjtwhzgam
+rzsbqkl
+
+hij
+cxhqiyj
+
+dc
+di
+nahc
+kzegxs
+hqd
+
+gwcmavtzudlyhbi
+tczmgyaihdvwlu
+
+knmowxtrgysei
+owhxyln
+xnoyw
+owxnvy
+
+awcdeyhxp
+haidv
+ajdzh
+roamdnih
+djhqba
+
+wikxntvrqobmslp
+pvskylqtmiouxgerbzwa
+
+vtsodwufbxqagzjcirn
+swbrznlvtdqgcuixoaj
+xnbtowaqukpivrszcdjg
+bdxiqvsoanwtgjcruz
+
+tknlrhyecmdpgavfwxiq
+etgzofqjhbxisrlwakm
+
+qlapsncudif
+lcpaubo
+upcla
+
+q
+q
+q
+q
+
+wthxvqcmkrnufij
+cxumyjefhridbtk
+itxcmpfjrukhv
+usqhkciwmxjfzrt
+
+ovqmbrgjxzehayts
+rvtojeyghszmbaqx
+
+wkdgt
+dtgwk
+ztcgwkdf
+kdwtg
+
+bnqdcjklozxsvhaip
+tsboknhvzmpdxa
+bydonswmearvkzpxuh
+
+xouwszgd
+zwuhdo
+ouwhnczdxj
+uodkfmqebwz
+uzltdwon
+
+ea
+zae
+xae
+eax
+
+glpjnaiuqhtcbvxkezsymow
+myspguazhtokexidjvbfnrw
+
+gtiykcduephanslqxbvzf
+acbtimgdpoefuvlyzxhn
+rltacidghyevpxzbufn
+
+qbnlweychiavojgtpkxm
+zwqlmncaxpouti
+qntcxlismwoarp
+
+ywkxe
+sywkex
+yexwk
+kyewx
+wkxye
+
+uiegcdfsh
+ugseifdnhc
+defishcapgumb
+
+otaj
+sjdaoqtbc
+jatuo
+
+fymlhq
+lifym
+lpkmfhiy
+muyfl
+jlymwcsf
+
+ijlhukadenrqsvxgbo
+kcidnlqrhubegxsjavom
+lkjidgnrusewohbvxq
+
+kym
+yk
+yk
+
+yzdjwag
+anxrbdiq
+
+bcmoyupkj
+dhgzlx
+
+tjhagzlncpqe
+hoqbcpzgujnt
+
+rtgifbclnsaehdqouyjk
+wvjdyotzpmhubsaifkclqgre
+tyjasohbcgxfukreqidl
+
+jarxzitusmqcd
+wmupfblqejszyd
+jdwuqsonmez
+
+lgfksnjtydbomcx
+fmwgnksxbjcldeo
+
+kfiroa
+frkayo
+nkaflrwo
+rceokmfat
+frbktyaco
+
+msrjkzt
+cer
+rd
+
+agvf
+afvg
+gfav
+vfag
+
+mjnwpxdzsg
+lpdjfawbyiz
+puvztdkojwh
+gdzqretwpj
+
+yxnubi
+xibenu
+unbixy
+
+cfhxsvmuebgowktiyqz
+hizkuswbefvcqtmoxlg
+xtyogvkmbwscuizehfrq
+gujihqmopzdfvwxksbtec
+
+vntrdelmwsfhk
+stlgfmrkvdq
+krmvtdslf
+tksvfrdlm
+efmrkvwdlts
+
+rujwcahnzpe
+bfhzxdpjawtnu
+
+fxjnvwmbgrdeqlh
+rdwgmhevljbxqfn
+
+orqvkhczeis
+kieshrpomqvzt
+svehozikrq
+skrhezvqioc
+
+wxgqml
+gxwslo
+wgysplo
+lhgzw
+
+oj
+o
+o
+
+u
+u
+jeu
+u
+u
+
+yiqxngbhocswjrfeudvt
+ibygehckxwquomdnjp
+bwcjixudyoqhgeanp
+
+hydfix
+yihxd
+yndxih
+miwodlxsgehvytk
+nxidhzyb
+
+qaz
+zaquh
+qazu
+qclzba
+
+dvofyzwgjt
+fowjydztgv
+fdzjwgyvto
+yfzdtvwgoj
+vzfyotdgjw
+
+a
+swa
+a
+a
+a
+
+lf
+f
+f
+f
+
+ehf
+hef
+ehf
+hfe
+ehf
+
+xpwgek
+ujmts
+
+bfzl
+nlkcqzb
+
+claus
+uacse
+vhucajsk
+lacus
+uasc
+
+bsdpxarynwm
+ybawdxpsm
+pmbdwasxqy
+xwaqdbpyms
+
+ayodzjplqursvtciexbkfm
+xisupbmazlvdkyjterfqc
+
+nqorupyxeicwljsbmhza
+upcrsmlbojzqinxhyaew
+pjysnwubqcomaheilzrx
+
+nfilv
+fwbohynv
+elkfvn
+evanf
+
+ykzi
+zjmck
+zkm
+pzk
+kcz
+
+rcwpgdonmz
+owzdyrcgvnm
+wognrzycmd
+rgblkszmodnciwxq
+wgmornhdzc
+
+mu
+um
+rum
+um
+
+wdjskfix
+wdkxjfsi
+ixwjrfdks
+sdxwjkif
+dsgklwhxifj
+
+wqvfmpctjga
+mqcoafgntj
+qjtgrfcam
+fmawcjgqt
+
+fmqectkvuborwidgj
+gobjtfrqkiumvc
+hnmctagybvzpuriskfqo
+
+bpnwmazxdov
+vnbxadleczwqo
+wxodinbzav
+xwnivzadbmo
+dvoxzanbw
+
+pkumcqohndlxstvbijy
+vxwuqmcydjzenpbtlriksf
+
+iduobhrnsat
+otqruabhdnsz
+ditrubnwhs
+kvydthunsrpmcbgl
+botunsrdh
+
+idyepasroklnwuczhqjg
+orijbtsuvlqphfmcgya
+
+zohpdrxsm
+dpjzohfmxr
+prhgocxmzd
+rmhzxlpobdw
+zpocdymgxrh
+
+epjurdmqkiszfow
+umpqkgcoeldf
+dmekufqgpo
+
+jesvpxdraoyuzctklnqhgi
+fbsqcraxhdzejgilytpvon
+eshlqwkraypgojmxvzndcti
+cdlieavgjphtqrusxnozy
+cgotlexyhidaqsvpjmrknz
+
+n
+a
+n
+
+imwtv
+iuw
+riwx
+ixpfruw
+
+ghuwqisktymp
+syuwmgithn
+gwyustmhij
+trhwyafugsliom
+sphtquwdzygmic
+
+mhrcbwsv
+hmcvrws
+hrwcmvs
+
+otm
+bvtmo
+rtosmuxc
+
+fcelpwgamhnquzbsrtdxivjk
+tdjwzsaqhxunkfcvpbrmgil
diff --git a/src/2020/6/mod.rs b/src/2020/6/mod.rs
new file mode 100644
index 0000000..94dd4da
--- /dev/null
+++ b/src/2020/6/mod.rs
@@ -0,0 +1,43 @@
+pub fn part1() -> anyhow::Result<i64> {
+ let input = crate::util::read_file_str("data/6.txt")?;
+ let mut yes = std::collections::HashSet::new();
+ let mut total = 0;
+ for line in input.lines() {
+ if line == "" {
+ total += yes.len() as i64;
+ yes = std::collections::HashSet::new();
+ } else {
+ for c in line.chars() {
+ yes.insert(c);
+ }
+ }
+ }
+ total += yes.len() as i64;
+ Ok(total)
+}
+
+pub fn part2() -> anyhow::Result<i64> {
+ let input = crate::util::read_file_str("data/6.txt")?;
+ let mut yes = std::collections::HashSet::new();
+ for c in 'a'..='z' {
+ yes.insert(c);
+ }
+ let mut total = 0;
+ for line in input.lines() {
+ if line == "" {
+ total += yes.len() as i64;
+ yes = std::collections::HashSet::new();
+ for c in 'a'..='z' {
+ yes.insert(c);
+ }
+ } else {
+ for c in 'a'..='z' {
+ if !line.contains(c) {
+ yes.remove(&c);
+ }
+ }
+ }
+ }
+ total += yes.len() as i64;
+ Ok(total)
+}
diff --git a/src/2020/mod.rs b/src/2020/mod.rs
index 8919f5f..47f5150 100644
--- a/src/2020/mod.rs
+++ b/src/2020/mod.rs
@@ -8,6 +8,8 @@ mod day3;
mod day4;
#[path = "5/mod.rs"]
mod day5;
+#[path = "6/mod.rs"]
+mod day6;
pub fn run(day: u8, puzzle: u8) -> anyhow::Result<i64> {
match (day, puzzle) {
@@ -21,6 +23,8 @@ pub fn run(day: u8, puzzle: u8) -> anyhow::Result<i64> {
(4, 2) => day4::part2(),
(5, 1) => day5::part1(),
(5, 2) => day5::part2(),
+ (6, 1) => day6::part1(),
+ (6, 2) => day6::part2(),
_ => Err(anyhow::anyhow!("unknown puzzle {}-{}", day, puzzle)),
}
}
diff --git a/src/main.rs b/src/main.rs
index af137fd..3905d9b 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,3 +1,5 @@
+#![allow(clippy::collapsible_if)]
+
mod util;
#[path = "2020/mod.rs"]
mod year2020;