summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Wernick <justin@worthe-it.co.za>2020-12-07 22:42:19 +0200
committerJustin Wernick <justin@worthe-it.co.za>2020-12-07 22:42:19 +0200
commit9149b063fa1b3a2f8ce7d1e7f22da821670e0e16 (patch)
tree7764272d8ebfd3b3f9cd46459b493387808f6cb0
parent7b02df12fd6164abe52549c49c7bc2354b2509c5 (diff)
Day 6
-rw-r--r--inputs/day_6.txt2199
-rw-r--r--src/bin/day_6.rs102
2 files changed, 2301 insertions, 0 deletions
diff --git a/inputs/day_6.txt b/inputs/day_6.txt
new file mode 100644
index 0000000..ae67ede
--- /dev/null
+++ b/inputs/day_6.txt
@@ -0,0 +1,2199 @@
+nvlyak
+nyvha
+yaen
+qynia
+
+kend
+endk
+
+atxcykpvmb
+pcvmthyxbak
+ayvpcbtkxm
+cvpkyabtmx
+typbmvckxa
+
+s
+s
+s
+s
+
+on
+aoqc
+owq
+coa
+
+pw
+wpi
+pwxlhqor
+pw
+
+nx
+xn
+
+dlevrzpucfmsq
+pceimlrfsquvd
+dpceruqsfmlv
+hgxudfpqyvbcslrjname
+
+kczmswvorg
+uryvlqaogmdixs
+rmostvg
+gsrmovb
+
+ref
+fer
+
+vmwdhgnlfiyoepsujbk
+epudykjwhignmfbovsl
+fjvuimnwbkogsldhpey
+ibmhuscpgeolfkynvdwj
+psjgubfvlhaknodeiywm
+
+fmnpljusix
+vqrefngyjdahclk
+lfjons
+
+y
+uiwl
+
+lsuqkmjinrzhgevfpwto
+gkmodihnsjtful
+ciguflhkojmtsn
+thkjnoufsimgl
+oskgmdfljntuhi
+
+gaktdwxhmqvfrpsuc
+hmtwkgipdvaurxqf
+akrmpxtughdqwfbv
+gumqniswhrdkvftaxp
+hagouqxpzrjlmedftywkv
+
+zkbyecw
+kczeybw
+wbeyakuzc
+
+iwdkjlarzfynvechgbxsq
+jetfxrzdbcksnavilmwgyh
+wvexlryjbizfgkhanqdcs
+
+vk
+kv
+kv
+vk
+
+yrguw
+rguyw
+pwuryg
+gnuwry
+
+dyhkusanvjwc
+ukaywncj
+uyqjknwac
+aknyjcuw
+jnukwaytxc
+
+toczmkldrevywiajgn
+jyldmgewcvrozinkat
+iynkmatdjerlogzwvc
+
+pthyrfjgqelxa
+qfejxtrynlh
+xwdfkuziyhejtqovrmlc
+
+osjrgc
+vohfpa
+goc
+gjo
+
+j
+jon
+j
+xdj
+
+bpqhmgwzakfrtjvuno
+eafupgombqnwrkzth
+frwqtdngpbhuaklzmo
+wgtnuchpkqibfzmravso
+mfbtvkghauzopnrwq
+
+xiocgdwpastbmyj
+rdzgcbtfaomsy
+dstgbcymozkqal
+
+xvc
+cvx
+xvc
+xvc
+
+dhvtlqkeniymjzoa
+eoazjnhvtkyqdlm
+koltmeyqjhzdva
+doumkhrlyzjqeagtcv
+
+mn
+mfhw
+
+kx
+x
+jm
+
+x
+xv
+
+tdhyubvwqfxejslpringc
+xqhvtbfwrygsdapjiulnec
+vnwbsurdiexghpjtlycqf
+
+pqtdgsmkolzryca
+qjguxdratfeclpmoy
+
+twnviyzmlk
+gknjmyqvziwl
+
+deoabzihqvycxn
+iqcxadpehvry
+
+dbflcxvnapwgei
+pchmodnafl
+hadcflpn
+dlcfanp
+
+tk
+kt
+
+peuroxtzyg
+iwdcnlqfskmbavjh
+
+mjfh
+ynkbrsdpwoqtagci
+lvx
+ujxez
+xl
+
+gyuszwb
+sioduawzrglb
+tsbumxwzg
+zwgeuxbs
+
+tujvkwpy
+tyvrpmjfk
+vwpkuyjt
+
+wdkqailvjmfcshugy
+qugwvlxdsikhfmyjac
+dkiscawvyfqhmjlug
+
+noblsu
+snloub
+sulobn
+lonubsm
+
+osecqjbfg
+fljbmiose
+ojesfbt
+
+zmctviabre
+ajzmicetrvb
+ctmivabzre
+yrztbmieavc
+mivcbtazer
+
+tyql
+osmjgxzrcakn
+iwftdbl
+
+nmqflphkvyjcatgbzd
+jxzemtvdknwqr
+
+ilxrytkdpmsevfjchozqw
+tpdrjxwihvlycozemsfkq
+hitwfmzvjpylcodbqxsrke
+
+flhp
+pflh
+
+ao
+a
+o
+o
+gljzn
+
+ajmkvwqu
+ogvjzwta
+whalvuj
+
+mhktpynfrjgblaqueox
+anmjxplvibukhztqersy
+tabljcpemkyrxhunwq
+
+lnkvfawqo
+nofpsqwavylz
+vofwalqen
+hcnowiaqlfv
+
+dofxbaqrtnyvkpljmhsu
+uklstfynmbxhapojqi
+tufmnpaqyojsklxhb
+oanlusqmxftkpjbhy
+
+tpjle
+the
+vtpez
+ytern
+ouecxwfkt
+
+jbna
+xepqbmufn
+ybjni
+
+jklhaxoqysbt
+tzwpcf
+tenfcvdmpzu
+
+kyqumgfrdiapzwojtvch
+fvczqjrgadiwhnpluomk
+dpwkmrjzauiqvfgcho
+nkpwrmzidfahcvjuogq
+azrkxioghpvcudmwqfj
+
+udjshwgpeaozimcl
+fylwnoevcza
+evlakborcfwz
+
+xhued
+iubgewo
+
+lywovcemagd
+ahveyomxsl
+oqzyfljavbe
+
+pkyn
+befycqpi
+pysk
+yp
+
+mgi
+mgi
+digm
+gmi
+
+cgdqeoyfjranxuv
+lwnkzeptsdqihvcujmg
+
+wzqrhgibdxuyl
+ludbwqxgiyr
+yruxibwdgql
+bgtwqxruylid
+buyrwlidgxq
+
+gqwvxspbl
+xvbwpsgql
+bspgxwvql
+cwlxsvqgpb
+sgpxqblwv
+
+camqk
+onaslperix
+jauw
+yatm
+
+z
+z
+z
+z
+z
+
+fx
+fxe
+
+goemcr
+roegm
+sgmxiero
+ogmert
+germo
+
+czgdxtiprhnwqeujkfl
+dyhmkanzwbv
+
+n
+e
+
+dkcjqbw
+o
+gp
+h
+
+zbwcu
+ubf
+mveurnab
+
+tqwbxuc
+qcwutxb
+ucbxwqt
+xqwutbc
+xqtuwcba
+
+uwhqrt
+wrtq
+trwq
+crtqw
+wrtqc
+
+rqfntm
+nrqm
+rqmn
+
+limsht
+alstikh
+ilhst
+uhitls
+lsahti
+
+oaex
+vsgyo
+lziu
+
+cwqdlxbst
+cdxtlwbsq
+
+hgqc
+hgdq
+qhg
+
+eh
+he
+eh
+
+zfutalwkxms
+ukxltsfzmwa
+
+zpklocsqgwyhb
+zobyqhlcksgpw
+zhspqwovjylkgbc
+
+ymkudfqethwgji
+emtuyfwghjdqki
+zwyeumktfhjdirgq
+wymqgifkudjteh
+
+edhqnrxtpz
+tqdxznrhep
+qzepndrthx
+exzrhnqptds
+zetyhrpdqunx
+
+vmleax
+valxum
+vpmlax
+axlpvumz
+clvamxbn
+
+ebt
+xr
+rl
+u
+
+vzny
+nz
+nz
+
+ywebzj
+ywefjzb
+bxwnjcyzkep
+zjeywfpb
+yldrbhsizajewvu
+
+hfd
+dmf
+fadh
+dvmf
+fcousnld
+
+egar
+hwnrgzcp
+bgofedjr
+jkruvsylg
+rdvgue
+
+jsge
+hesqg
+esug
+
+xaoz
+ocuqev
+fwgrlp
+otxv
+
+fzemjdhwb
+xhdmjzbe
+
+ytsfpumedxqvzhl
+fdteschymvxqlpz
+phyrfwtqlaxgvznesd
+hvlextsbqpzyfd
+jydlhetzoqfpsvix
+
+jxkrobp
+rsplxbgk
+yxmbpkorhj
+
+injbuyktrcs
+bcsriktuny
+skyrhbtnucxe
+
+duck
+cykuv
+osfcurnlwax
+uvmc
+
+vpt
+tpv
+pvt
+vpt
+vtp
+
+dacxvsi
+icaxsd
+xdihcneas
+
+nf
+nkf
+fn
+
+yrewaxckd
+wtydesfcr
+erdftwqyc
+
+hmfezapkqjyri
+ekqajhyzfpmri
+raikjeqmhfypz
+qjmyrekfzphai
+frtjeqkimhazpys
+
+ryxmsbqovuidphfwecajnz
+hdjmiqbxnpvouyfcewsazr
+vubyrcmqeswafxjzhinpdo
+cbjmnaoqurlhsifvwzdexyp
+
+iu
+ui
+isutlr
+iu
+iu
+
+lftaziorb
+rvamfeyjgqnx
+frtak
+aifr
+aftzr
+
+us
+schk
+
+bjafywgieth
+tifbhyjgwade
+imhwefbgatjy
+wgtyifejbah
+
+a
+yj
+b
+iab
+
+qkgazumerlhb
+syritxopfvd
+
+gdiakrne
+ygdpcwqfbmikzanver
+dolarkigen
+gtkanierdh
+
+axv
+axdvl
+
+erpjfh
+prgjfeh
+hrejpf
+pejfhr
+ejrhfp
+
+zijsrtcqdxmy
+mtxdfyji
+timydgxj
+jtmhvakxidyn
+iyjmwdvxnt
+
+rh
+har
+
+tdoyugpljirwenzx
+nurlzgjtyopide
+jnrlitgpzdoyue
+zlptnudjryogie
+pzgyeoliturnjd
+
+ivcyexsotkzqmr
+sgfjhqnpy
+
+omw
+joq
+mop
+
+welbhpzftgjinqyk
+gwpdjqacitshlbykfzmrx
+
+sygqwn
+fwyqsdg
+scgwqy
+
+gdjzwbhltxs
+dlkojzbq
+jfavyipcembun
+
+cydkuqlhan
+uavstnychbqxk
+azqntcuyhk
+
+k
+bf
+z
+w
+
+gyh
+e
+
+rhmpg
+pmhgr
+rpmhg
+
+pas
+vhtsaqfgnu
+kpjsa
+sab
+jcopska
+
+tsjabirpehudncx
+custniapedhxrb
+cepnuastxhdirb
+shbpetcdaxuinr
+dbtiepaucrshnx
+
+tuswfrqpgxk
+kprjsdtqxunf
+pxwfrtuqske
+xwskmfprqut
+pfrtxqskhu
+
+szirxjtu
+zuxjtsi
+jutsxiz
+usjitxz
+ijstxuz
+
+zqesxfbmrivokl
+mevkzirbfol
+fbkomeyvilrz
+
+rlwoeckxnh
+xebkornwcl
+xcoknwler
+wnlkrcoex
+kecronwxl
+
+fmdbraihnpxytkcgezu
+kbeyxmadczhritnpuf
+pnhfmubicxteadrzyk
+updrybtmhzefcnxkia
+kbezfjwmhytnixacudpr
+
+w
+w
+w
+w
+
+fgwdoctvpzymhbrkjxn
+yaqjctxvsrozmwk
+xkwozitrvmeqjcyl
+cwkazxtrmlijyov
+
+vnym
+bvmy
+yvm
+byvm
+vym
+
+mxjblongrfahycqvpu
+ncywhdpxefajbrgloqu
+
+sgukdmfqvbwcei
+zigahlxojdnpc
+
+fudobaklngyjqpstmiz
+psflydzmbtkiqaojgnu
+itgzqsfdyabnolpjkum
+sitlkyuqnjodzmpbagf
+ytdijopqublaksmngzf
+
+vhaobfn
+ohbnfav
+vahofbn
+naovhfb
+
+tfhsqwcbrv
+iqrbzspnwyhtfc
+
+pfbwotesuyhkvgx
+vnrlcxayzdmih
+
+nbyhpfklvtqo
+qbtjopfyk
+qpoeybfkt
+
+uvmgzs
+pvsmizrug
+ghvmszu
+mugszcv
+kusmvzg
+
+mua
+amu
+uma
+mua
+
+d
+m
+
+s
+s
+yuk
+s
+
+gtjqp
+pfotsh
+pshgbt
+wpeztyr
+bqjtplo
+
+zwbvestiaoljy
+gmnzshupfqre
+
+anvsdkbltiugc
+tqsdcanuibgvkl
+stkrvabegidclxun
+takcsgnuvmdibl
+cvqsklngiubadt
+
+txvfnuwcljpqkeryoamigd
+jgarvmodftpniekquxszcyhb
+
+htu
+hegb
+whf
+
+jn
+nj
+jn
+
+vcjlxekmqzoduphynw
+hkyeojlvndumcwzx
+ozhdnvjeckwlmuxy
+ujxdyznvlcmokhew
+vdywzekucjnhoxlm
+
+blxuhyvjrzow
+uzlwokmsripy
+
+rum
+mrl
+rbwfmz
+durmq
+
+obcpqvkitduelwf
+ahcrwiltpuedfobxkv
+cvijgzoukptwdfble
+kpqjduetilovfcbw
+
+irfqsp
+wifas
+
+xvgyrpq
+yrpqvhgzx
+fspxmrivkwgycnequ
+axhyqrpvgz
+xdygqvrpa
+
+xrlmcsibvea
+bdcveasxzip
+esvbclaxi
+vaxsbcei
+xaeibsvc
+
+songrtmwhpydqizlf
+halvzroefxcsubt
+
+uqozritygam
+kmtryqvz
+qfmjstkyrz
+
+rqtepcofhuylnxaj
+xoptqwruhijsmnzcylfe
+hxqcpyfjntleuro
+brjyuoetfxpndlvcqh
+
+prltixwohdmfjukgqzsv
+orluxtzpvjafdqwkhsgbe
+
+iyhuarewvbfjmlz
+vramijyfzhbew
+zyehbmwvifjra
+vjmweybazihrf
+
+duixtbqyhomsla
+suinmaxtlqdoyhb
+htiquxmaybosld
+
+pselyhov
+zhwpovekt
+snheopv
+ivxophe
+nhpoeuv
+
+amqcriebkojlwyuxnhfdptgzvs
+uovdszkygbjhanefqxplimtwcr
+
+ozngukih
+nvksbd
+
+grkotivmcxnyubwleqspjzhfad
+ekmqxnfabwiduopjsgclzvyhtr
+
+jzv
+wzxfivmjb
+zjvp
+zjv
+jzvs
+
+js
+evqis
+qxs
+swyct
+s
+
+n
+n
+zn
+
+udjtxws
+usdwixj
+
+lf
+l
+
+cdsaxzlv
+jcsxlnydtrzvk
+lvdqamzsxhc
+udlxwczvgs
+
+gutwbrhjxyeam
+jrleawgbsnxthimyu
+rbjexdythumwag
+hrwjmoexytqaubg
+uwymabxrhjqgdect
+
+vipjrlbsmcogxznty
+vetpngyzsbmoxcrijl
+hoxvbsnjlfygmrczpti
+pmlgzyasvxticjbrknod
+
+xzakbvtehnlciswmyufjdrgo
+kocmslwbgvuxijernzydfhat
+vcdxgkslnzoarmjwutyiefbh
+tzhugvbcnokyxsfliwardmej
+
+up
+u
+pu
+fu
+
+cbzjelmqivw
+ickezvjlqm
+
+srwnt
+nwrtj
+rswnt
+
+hfjxoskd
+dlpzeyjai
+
+mt
+tm
+mt
+mt
+tm
+
+rpxenfzmhwdvacbygiujkqot
+lhbvkwmpfyazrtojcquxind
+qtcjdairznhuwxmpsvyfkob
+
+apvk
+qvapk
+
+ujscpqtgbyezdfhnwoil
+bftognyujilpwhsqzdce
+zbhslwipdjeqntcfouyg
+tyuqdlfepgzshcoiwnbj
+dzqxjblenucpwshtoiyfg
+
+cdxtsaunbwkezlrp
+vbdpsuktlxczerwan
+pnxudwaclrtebksz
+
+tq
+t
+zt
+t
+jtqg
+
+fvmhiloanbgjzptryucdkxw
+jzhwtkbdpoxfacirngluyvm
+pwnybcjmgxurfzivoklhdta
+brtavopdklnhxwgzmifyjcu
+ncifvypdtgwxbzakhjrmulo
+
+kwhiguft
+uxyo
+ux
+
+ruyoe
+ezqhbi
+clndewsfta
+e
+qrke
+
+doa
+doa
+doa
+
+xt
+tx
+xt
+xt
+xt
+
+roxwktbmgiyc
+qtbejyxzlpcaighfod
+oscgtuyiwvrbkxn
+
+agcdevxkmbnzqjl
+jrdzmnclbgkvexqwa
+
+pqjtyenfmxdaorw
+qayjpxmfdterwon
+frdtlawxmjnoeqpy
+
+aze
+zea
+veaz
+yzxdequoa
+
+eq
+uetqs
+
+jsmezrk
+zskmer
+zmkers
+krezsm
+
+mfzqsukgcw
+cmskguzfqw
+gksucwfmqz
+uwqsgfzmck
+wfzucmgsqk
+
+wftx
+fwtd
+twf
+
+bizwg
+gzwosd
+afzqrwun
+cjpzwb
+
+qjntchmdbgpe
+nqtephjgmdbc
+qjeltdcphgbmn
+nqtbcjhepmdg
+
+g
+g
+gr
+g
+g
+
+yulnpwc
+uplcwn
+nplemufywc
+calkisogupw
+
+sigh
+igsh
+ghski
+
+naqpd
+xydrsjwlibzm
+qdevh
+cd
+
+mraejinsdp
+mierdjansp
+qpsmrianjde
+npirjedams
+ridpaejmns
+
+o
+o
+o
+o
+
+lhfqsxm
+xlmsqfh
+slfqmxh
+
+jhivsoabqlfpeuw
+fvxrelbhuncowqjtsz
+
+yajhetclfk
+jnqbylmpwgxcf
+azchyrsivjeltdf
+
+n
+n
+n
+n
+n
+
+hkuaq
+hkqua
+uakqh
+khqtalu
+ahxkuqy
+
+tguprf
+pfu
+ufp
+uofp
+
+lnmtjo
+njolmt
+
+qymzdw
+vjckmtl
+oipreghfausnxb
+
+niswjectqkldzyg
+wunjdetklisczyqg
+gldcysiqznjtekw
+iqwdczjsytkleng
+lgyiezdncjqktws
+
+dntm
+atm
+tma
+tm
+txm
+
+ntpcwask
+skcna
+nksac
+
+prai
+pria
+arpi
+irpa
+
+mzldgbrtovj
+tbjgldozmvr
+ogzvdlrjtbm
+
+ft
+fq
+
+jgstdlzarcemiopynukfw
+ywlhakgzeoxdnjmsirc
+moicgebadzlwkysrnxj
+
+jpeiqxbz
+xipjebzt
+
+rnpf
+fqhu
+agprm
+wedyzci
+bxur
+
+aynswjoklfeqzcitxudbrvh
+ihrbxwvdqsyoejpnfkzc
+
+hrqliwxtfbk
+qiwfrxbtkhl
+kihqxrftlwb
+wrhlxbtqkif
+tfbqriwlkhx
+
+bwdhnqk
+wbhkqtd
+qwbkhdx
+
+fpcboialrdgqkejntyzm
+lmieayocqpkznbrtdfgj
+mbtdrpozfljkeyangiqc
+pmdjlerfkybgnaoqzitc
+pganmcfbtedkrzloyqij
+
+zfrvn
+zfnr
+znrf
+
+nuq
+ltiuacgjs
+aug
+
+xj
+lyzixn
+eaxwuf
+
+aeywqjkl
+eanklwju
+kjelzaw
+ealjwtk
+azklwej
+
+ncqxulrmfvedao
+eodqxlvmrncu
+elrmnuqpcdoxv
+qloxudmvnecahr
+lcdxqwmurvznjeo
+
+aijnhvxemsqztfk
+xnvkehsiqmzft
+tehvxnfskiwqzm
+epsmzhixqvtnkfr
+htkinzvqefxmrs
+
+wgfzomlbhujxs
+ezvrxmkycafwob
+
+lhyrq
+ylfherq
+hlreyq
+wqlyerh
+hgsqlyru
+
+acnkurdevm
+duernacvm
+nteaducorvs
+
+hxvqtsjzgn
+iakeoyr
+
+id
+i
+di
+hkxi
+
+fqunm
+funxikw
+xfiuknz
+
+wvgpqlzxnui
+livzmwyqgpnu
+
+eanbkcjlxpsm
+ofmdwrqe
+
+w
+ws
+wr
+w
+w
+
+aylsbi
+lyaiqsgb
+vyeblmasuhi
+yblsia
+ylbsiaq
+
+fpbhozqdljytwcnxsvr
+zarwdgqhtvyxcnpbsofji
+dbzhsfwrvqnyjxtpoc
+qwxpbnycrfjsozvhtd
+tsoypwnmzfjhbvdxcqr
+
+bezfskqut
+egbpkdflqtmouzs
+kxzenfustqb
+tsebufkzq
+
+hoekryzuqt
+oreuqhyktz
+teorhukzqy
+kyqehortuz
+
+d
+uqwgitdaj
+dz
+vod
+fvd
+
+smjqnlt
+jsqmlnt
+ntsqlmj
+jqntslm
+
+saxdlkjwvyctqenrio
+wqnvsoyaextcilkrjd
+krdqwevyliojxcntas
+ywlnkcafdoirsvjxetq
+
+ryae
+yaq
+ya
+ya
+ya
+
+epvy
+nvyqu
+vnxy
+oyvh
+
+kschegfmla
+lgfmscaehk
+gshfalcemk
+lcgemshkfa
+mkgaselhctf
+
+bfxqtegnoismrk
+mnuivtxasgbjqyfkp
+mkxgrnltfiqbhsw
+
+s
+s
+s
+
+zoe
+eoz
+oze
+eoz
+
+q
+kuprd
+gvmbn
+vctx
+oi
+
+nbrjveycdlw
+jyhfcwnglerv
+
+vkoxqwfhubrcsnme
+bqkexhovswmntfrc
+
+aidoznexygkjlqs
+neysaiudmoqklgxzc
+
+ypsn
+eyp
+yp
+iyp
+
+gol
+olg
+
+rypjohwvxkisnldatuzfb
+btpxvolknwdhuryiafjsz
+vkahgbsitwdoyjplfruznx
+
+mipqtk
+nikqpvu
+
+kztifpne
+yzit
+rigtz
+zait
+
+jxgvt
+gfjoky
+kvygh
+dmwgqsrcp
+ounalgyze
+
+nypvuiseqtjwxchlbfogdamzr
+apqnbzhwmjldotfsvexruicyg
+bpyjzomwahcrgsutlefxkqdivn
+
+qumcbsvlpthfwyda
+hagwiucnvfdypqlzs
+
+tog
+otg
+gfto
+gto
+
+ctp
+uda
+
+vlbi
+swmiujf
+
+xbi
+upsdbi
+bizr
+
+ltw
+we
+wzavnymh
+iw
+wfe
+
+caqjdphelmtvyfbxo
+acxmtljedhoqbsfyp
+
+fyqthpe
+bmrceljqy
+eyqt
+
+frjdhuyqsgon
+krouhsfgydnj
+
+ltopekjnacgbms
+elngjotmpsca
+splcgnatmoej
+egjctspmlaon
+jtealcmpongs
+
+fvsmiotkb
+fbnupmcsxd
+fmkvjysb
+qbksmywrtf
+
+mklqnp
+mqnlk
+mwqnlke
+
+jykqrlaocvunfpix
+rcymsnwuafdtvgbqoieh
+
+c
+c
+ct
+c
+
+mlv
+lyfpq
+vsli
+vrdwl
+
+srtaq
+nuptlr
+
+hcfjdaqwo
+qmoefalzdh
+
+zxyksijbeahgvc
+xgvjhsczeyikba
+yxickjesbhgavz
+sjvgibeczxhkay
+hvgizjmaxsybcke
+
+wjmypxi
+jipmx
+pjmix
+bjivamxp
+
+dytnalmqkbpruef
+qplfuynbdaertm
+rbnetqdupamlwyf
+
+e
+e
+m
+p
+e
+
+b
+eb
+b
+b
+b
+
+yieovwqukxcnbfjpdg
+qjvunkgywpfoidbxec
+jupowqfbiknvdgeycx
+dqeicgjfpxonbukwvy
+gociquxvjbfdwnpkye
+
+lwrch
+huosc
+
+somiywgdbf
+fbmvdwgzsy
+ufrltkydsnwm
+
+epvfduyh
+vfpeyuhd
+epdchvyuf
+udeohyvpf
+evhpyufd
+
+b
+b
+
+szfgmlxwd
+eapoqydvi
+
+puedtjkqbwfznhvycxrolamsgi
+cvqeyszrwdfnkutjihxmlapbgo
+nfdpoukvizgctxwmeaqjrhlbys
+
+nuf
+je
+uieq
+ctodh
+sbx
+
+psrwqlgd
+lrwdqgpzs
+
+qheijmngzsrdawbvucolxpy
+vhqnlcouibjdarzxpmeygs
+edlixjhrquamovnpbsgycz
+
+jkphyr
+urycxn
+
+snbcyoe
+nuewpy
+
+gbnsoirkwyhp
+iogsqbkymwp
+fzbwkeyutdxp
+
+w
+w
+w
+
+jsbp
+bjsp
+jspb
+
+jfbdpv
+pfjvb
+
+wfhvsjloznb
+gmupxcnrakelfsvzqd
+
+dbsuoriacgnwxtzveyhqfkmp
+adwcifzvsgnkphyburtexomq
+wzbkmsdpfrhiaqxyecuonvgt
+athzyrgbwckvomqudsnexfip
+vidbhyqesancrzugkxfopwmt
+
+nl
+ln
+nl
+osnl
+
+iewcxgqtf
+gtwmfieqc
+icfvqwyhadgkn
+qcgwerfli
+
+wyj
+jy
+atycnje
+qyjg
+yzjsg
+
+ivjwfeuz
+jvcw
+mbhvwj
+rswvhjd
+
+zmjlpeia
+eimrlpzaj
+jmealyqpi
+
+zgkf
+gkz
+
+zuosdlvkxm
+tlxskcvpumo
+kuyomrxlvs
+uvosxmldyk
+
+yuilcqhgmazts
+swhvdcigltmakzuy
+stojxiflyghnazcpum
+gkhqtyciuwszmal
+
+nzhlyu
+hngc
+ngcah
+anch
+nvkhj
+
+xhfvwbkn
+nahwxfo
+fhgnwx
+dmfuxnht
+
+vbhpedluncftoxys
+cydfsolpejhbntux
+
+vkilx
+pvxskd
+
+hvwuecgs
+guvwcsh
+sgrwculmvhb
+wcpznuqsvghi
+vhwcsulg
+
+ndfapjlztc
+npoacfjtld
+
+jzd
+xaulvyksp
+zeh
+
+ck
+ck
+ck
+kc
+
+kiroh
+rh
+
+euxdrkvtfbqon
+ytfvurxwheokqn
+
+sirznatbxkghm
+skaiqzrmhnx
+ztgmhrsikanx
+hksxmairnez
+ywdiracnfsuzhjxmpk
+
+bacgwvmxrdfne
+pdcofwbza
+cfqdwuptzabo
+
+dqmp
+dqpm
+qvmpd
+
+kczxnlerm
+vqrzjmf
+
+qmuorwspx
+dywcxarilegkh
+
+gqzph
+qhapozk
+zhqp
+
+fastkjnl
+jsnafkt
+jfnacskt
+
+fxgpiadjrvhs
+smfwbejadh
+hjmfyaods
+fzdqsjham
+hlcbyfjkaunsdt
+
+dqlevpahscoyi
+iypldavhsqoce
+clhvyaisoepdq
+eayqiosdlpvch
+epodliqvhcsay
+
+nhxbmlqv
+qylkhmnxvbj
+xbnlvqmh
+vxmbhqln
+lbvhxsqmn
+
+exrtdq
+tderq
+djretq
+
+lwqj
+jmwlr
+zbswtx
+
+pxi
+ipx
+ixp
+xip
+
+vgfscwrqzdojxhe
+xfvqhzsjecgownd
+qdopyzjwegfsxchv
+gosqeckhvzdjfxw
+gszxpfveocjhqmdw
+
+gvlyuiscaewfpx
+gfwjtapuoynvqzi
+
+ycsdnbzjoki
+wfpvogmqhautlx
+
+tbjliqdfzgny
+zjwilpghqdyekc
+
+yftcnao
+ncfytaio
+conyfta
+
+yslactbwhjfvnomiue
+mbyiavojlwtunces
+eontumvircsalbjwy
+jguvcxylitsbmwenazo
+bayolijwqcevpmsktdun
+
+ynmki
+ykinm
+inymk
+iykmn
+yimnk
+
+vzjnpybg
+vjqfyno
+rnvity
+
+ilxkjhcfpdmeb
+hwdjleirc
+aiulechdj
+dljiwehc
+
+rptom
+ife
+nuli
+yized
+
+loe
+eg
+
+fprtvcgkwnasljebhm
+nvbltrckumfhpgjew
+grpuefzknmblovjw
+bjwgykpinqlemrd
+mrlegnjwbkp
+
+xtquyrjnszl
+ysrqzj
+zsqyjpr
+
+ft
+fjt
+ft
+tf
+
+ejli
+l
+l
+rl
+
+lwgrihbdvno
+ydbrvhgolniw
+rivdongwhlb
+ndhbrgwilov
+dwvrnlhbgio
+
+fc
+fc
+cqfo
+fc
+fc
+
+nhaoi
+nioha
+osijah
+
+hgrec
+gchre
+cehrg
+
+higmvfbtjre
+ikhxjbrefvq
+brjiefhvl
+ivfeqblhrj
+hrkifjvbe
+
+vsgqmibordtznkl
+dehupjlcxtsrnfawy
+
+t
+crfi
+
+nrai
+hjcmpzla
+dveria
+
+krp
+achvofx
+kbp
+
+vfdzhuskanm
+lhucb
+uh
+
+qu
+uqj
+quh
+qu
+
+tokmzyuxjsbvic
+zegday
+
+wqfxlhyapcdtv
+vctalwmjdpqyfh
+
+nqge
+vneiqt
+hqvfenwj
+nksqcrlmde
+vqgbone
+
+f
+w
+w
+f
+oq
+
+qziwcdjyepvhn
+wvypijednqzc
+
+uwjflbhoq
+dwxublig
+
+c
+lc
+ec
+c
+txcjrkd
+
+cglvpyadf
+rqfvgaplc
+kgpatsxuelvh
+oapgvliwc
+
+ln
+st
+bs
+
+sfra
+dskrnf
+mzhjrfpx
+
+phu
+uph
+uph
+hpu
+phu
+
+pcxhvbf
+hxbtyk
+
+jdzsaiwbphmftqxrlngcyoe
+mqbrsplojgyheznxcdtfwia
+pitajxzhsonwygrfblecmqd
+nyliauzgfbcprewhdtjmsxoq
+taxnylhvgjqewcksfpmzdbior
+
+h
+c
+om
+
+ruplsfnhyjqigwkzexbtoc
+newjivhyckdagob
+ywocjmnkbghie
+
+jdrtpbvohaxy
+dnjxyrfsv
+
+lq
+nsulxvmhj
+l
+lk
+
+fdsxhvqaiblt
+fihykrdlsoaqx
+laqgpznecjiuxfsdhmw
+
+capkzueqjmdv
+ckdvymqazu
+fklcmdbuxqarzv
+zkcsvmqhiadgeu
+jotqkuzndvciwam
+
+lzqbrgkp
+grvpntoz
+ozwvpg
+suefagcp
+pkjygd
+
+zbangyoqjlkdevrxti
+gzniebarjloykqtdxv
+
+xviqehycstgjladuoznfwp
+odwplyiqnxghutezcvsj
+ersxgqtcjouvdiznlyhwp
+cpshuoijtxvelqynwmdgz
+
+tnzkdmgqci
+mqkzgydtijn
+mtikzqdng
+
+d
+ad
+d
+
+k
+iof
+
+otkvualrqdsixf
+nkhwid
+dbkiwpj
+ikd
+ekziydgm
+
+wjvgqsxinfburh
+wxgqsurjvflnhbi
+
+hebmgftkpcq
+owektbpfhqcmg
+egtfbpckhmdq
+qmcetgpfkhb
+
+exukswmlgznjoqhvabid
+dkgmeoahtxpzflnwru
+
+lf
+fl
+lf
+fle
+
+zblhfjqpr
+rzp
+uprzo
+
+wmktipjq
+twmikp
+jmtwikyp
+azcempwtkiv
+itkmpw
+
+qwodjmelanykpxuh
+weqnajoxmupklyihd
+pjodermlyuknwxhqa
+mqbaoxylgdshtnjpwuvkfe
+lnaxijmwqhukodpye
+
+azxw
+xazw
+zwax
+wafqztx
+zaxw
+
+ydzmvpskfjiqneluabgtrw
+vyfdpqrkbistwlaxzjum
+ukortizjvdwhlpafycmqsb
+
+cno
+y
+no
+y
+bqe
+
+zlcotxyhfeij
+xtlvhifkszoj
+
+kczqegopj
+qupzjod
+
+hpclqaktjmbnyxw
+iqphxcamk
+
+rebc
+qcbra
+brc
+crb
+
+flkoiavp
+aduhjeqtyrmzkn
+cslwgfaokp
+
+qmnzcjb
+bmeqzjsc
+jxochgfbmwzvq
+zqcbmja
+
+deyifvsxw
+evdyw
+edbhzyuqv
+
+xmhknbcwdaztvl
+mruslxozyangpj
+xgszalnm
+aoqmleunizxs
+
+eh
+he
+eh
+nxeh
+eh
+
+cjbx
+jxsub
+
+yusezdlpgxtm
+dyrkmstuegpx
+pdxmyeutvkjsrhgaw
+
+ruz
+rzu
+zur
+zru
+
+wgbdctzlsmh
+peglstyhcd
+adtqlhcgvs
+tylndgrcujhsbx
+odltpshecg
+
+ylntchparijwfo
+wtrjpiaohylcf
+wlfyvrehcutapgko
+
+tkbpfhjzravmquxewgl
+goxphazbfvrqkijlwtm
+mkrbzqphvawtyjfxilg
+plhcnwgqmrxfvdzabjkt
+
+pfhtlqawckegij
+wjpaksdctfghlo
+
+jqctpgrvu
+qkvgjuprtc
+vutcqpgrj
+gpruvjtcq
+gvqprujct
+
+dkevisf
+kfei
+mlukicwfje
+
+nsoyjcwzife
+spnocteji
+
+cfuzsbtvdkq
+rcasmqzkpdxuo
+drxzwqckus
+zqsrndeukxic
+
+vkgpbz
+zkpvg
+zkvpg
+
+eqhpyasvnumzgclitofjw
+ofsgpaijzqmtvcuwhlbe
+ujiewctamfxqdghslpvzo
+qivnwtlfcmpgaeouhjzs
+
+lfahbowz
+ryxcwtvs
+mytucdivw
+
+lqetdskgyznojharxvufpwimbc
+kpcoqugdvxibftjmywzslnreh
+mxjgcinhobeldrwfukyvptqsz
+
+jxhc
+fjsqglzwhu
+mhcj
+hecj
+
+ihdsbckn
+
+siponk
+sikonp
+psinkfo
+
+qbvdrutoan
+qbcftunvoi
+qvkoxzbtushny
+qtwojubnv
+
+eu
+u
+xtujdms
+ehu
+
+jkqdoner
+eyxnkuaoqfg
+kqenxmyo
+
+wk
+wk
+ykw
+kw
+kw
+
+gvrebwq
+erkflnbjhagv
+givrybues
+itpvegsrbz
+
+hlykfbqnexots
+tqhgfonkzeyxsbl
+qkcybxtsnloefh
+fxalqkntsuobyech
+hvyjefkbitrqoplwxns
+
+paxu
+parnkxu
+pxua
+xupa
+uxpa
+
+ytzjokcqlmviha
+sykbmizchvq
+aocvizymhkq
+ivhkcqlzym
+iayelkzqmtchv
+
+aekxzstuc
+czetkxsau
+zqpakexsuct
+zuxtacske
+kuszetcax
+
+czlkiprvydnmsoxqwajgb
+byszdijkplawcvnm
+ikmwandcjzlvybsp
+nbvwlikjscdmpzay
+
+fpuxqtigly
+hpuqkfxigyt
+tifpygqkux
+uygqftwpxi
+
+gvdwnrefpj
+nwgapvedr
+egdvwnrp
+xshwezgipdvr
+
+joefgnu
+tknuhvfy
+
+rjo
+rpjyos
+rjo
+roj
+jro
+
+zxvatmfbujgryinokwehsc
+xjzdusehibgtvncmkflyao
+
+fpnkyo
+nopfky
+kpnyof
+ponkfy
+tnpfoyk
+
+mevhflgowbkqdjutrzys
+qrgmkeohvstnbwfdjluy
+
+pejhrgwtmcny
+hjangqtbprsmwe
+umiegvdprwtznhj
+nhgptresjwlm
+
+ohgmls
+othljm
+jmhtlso
+mhxlcnp
+
+dtufxjrbq
+rdfjxtqbu
+qjtdufbrx
+
+iexvaok
+kexu
+xkje
+xkfe
+
+dpursykgo
+ugkrsqpody
+sokpgyrdnu
+kwsuoyrpdg
+sovjiydkagmuptbrhcf
+
+mwxcqs
+mcwxqs
+mwxqsc
+tcswmxq
+
+cqatfowbvmirly
+woibncaylqgvsf
+
+bico
+izdt
+tiz
+
+af
+fkq
+f
+fyb
+f
+
+wxftpjclsrhm
+sdzuvanek
+
+jr
+rjp
+rj
+
+zhpknlosiadcfbjweuqvy
+ulbkhapqzisefdyonjc
+
+oivjy
+djvwbofy
+kvlqyxrj
+bsivdyjf
+
+kifcamqwgy
+amfkgicyq
+miygkcafq
+
+egslifrtvcnhk
+vymgiprjzcxasbqn
+
+gji
+g
+oar
+jgk
+
+gxtkohsqcvmrjzie
+jfghvuxokznqwsdmarcl
+
+xvlnpjdar
+vldnopxaj
+dtnpsayjvlc
+dgjvalnmp
+mfnvjdpal
+
+mnaxd
+xmda
+kdaxm
+
+szpeac
+ezpsac
+aesxpcz
+
+vgpldyruqmfbsehzkxjwa
+wrxmvtqgyjsdazlkbofeuhc
+ablmzyevqgswfnxkdrphuj
+
+aoedxnzjqsbyihtpkcfuwl
+dsbeyathwxjupozlqncikf
+
+mwzkrnhp
+okqj
+
+s
+s
+
+erjyvcwhuitdaogsnfb
+dculesyjotbwhavfirn
+swfbohtjdciaurenyv
+ubsvfamrjoynwchitdke
+
+yb
+yb
+by
+
+pbrhzvjcsgeylfxt
+sjcyezvxfgbhtplr
+
+rphvaxw
+zhjapvrxw
+xahvwspr
+lpdqrvwahmx
+
+rpmild
+vlrpswnb
+ylrezfpi
+pbraslm
+utxgqhpjkorl
+
+pizbmcxreftywhdq
+pqyezcxtidgmhfrw
+ixrctphwqydzfme
+fxdhpyctwrinmazqe
+pctzyrhdiqwmxef
+
+wasjdyzgfu
+zfdyujgwsa
+wbyzjgadufs
+afzswydguj
+
+zqanmksjruhx
+qljaunzmkrshx
+jrxqsmzknhua
+rjazknumxqhs
+kuzqxhjmasrn
+
+virdpbztchkgo
+hdiopebvzaw
+
+ziwscmotk
+jwmas
+
+h
+h
+h
+h
+h
+
+qhywbkuvnst
+zmynwxvufqarkbeht
+
+onfvrqxa
+xrvqnofa
+fiuarnvoxq
+qvzafonrx
+fqvxebnaolr
+
+kmfulryg
+bkswufgylmr
+myulgjrfk
+gouyxrlkmf
+
+skerjmgbvtcphdzafniyxo
+ljybizemsvhokxrdcagptnf
+
+oyt
+hytx
+mdtyjrslkczu
+bvyto
+
+mpwv
+acvbp
+
+m
+ftz
+
+kvtmidlngo
+edznioyvkx
+kofvirdn
diff --git a/src/bin/day_6.rs b/src/bin/day_6.rs
new file mode 100644
index 0000000..68efbce
--- /dev/null
+++ b/src/bin/day_6.rs
@@ -0,0 +1,102 @@
+use bevy::prelude::*;
+use std::collections::{BTreeMap, BTreeSet};
+use std::fs::File;
+use std::io::{BufRead, BufReader};
+
+fn main() {
+ App::build()
+ .add_resource(WindowDescriptor {
+ title: "Advent of Code".to_string(),
+ width: 1920,
+ height: 1080,
+ ..Default::default()
+ })
+ .add_resource(ClearColor(Color::rgb(0., 0., 0.)))
+ .add_startup_system(setup_camera.system())
+ .add_startup_system(read_input_file.system())
+ .add_stage("calculate")
+ .add_system_to_stage("calculate", calculate_anyone_groups.system())
+ .add_system_to_stage("calculate", calculate_everyone_groups.system())
+ .add_stage("report")
+ .add_system_to_stage("report", count_anyone_group_sizes.system())
+ .add_system_to_stage("report", count_everyone_group_sizes.system())
+ //.add_plugins(DefaultPlugins)
+ .run();
+}
+
+fn setup_camera(mut commands: Commands) {
+ commands.spawn(Camera2dComponents::default());
+}
+
+struct Individual;
+struct Anyone;
+struct Everyone;
+
+struct Group(usize);
+struct Answers(BTreeSet<char>);
+
+fn read_input_file(mut commands: Commands) {
+ let f = File::open("./inputs/day_6.txt").unwrap();
+
+ let mut current_group = 0;
+ for line in BufReader::new(f).lines() {
+ let line = line.unwrap();
+ let line = line.trim();
+ if line.is_empty() {
+ current_group += 1;
+ } else {
+ let answers = line.chars().collect();
+ commands.spawn((Individual, Group(current_group), Answers(answers)));
+ }
+ }
+}
+
+fn calculate_anyone_groups(
+ mut commands: Commands,
+ individuals: Query<With<Individual, (&Group, &Answers)>>,
+) {
+ let mut anyone_groups = BTreeMap::new();
+ for (group_id, answer) in individuals.iter() {
+ let updated = anyone_groups
+ .entry(group_id.0)
+ .or_insert(BTreeSet::new())
+ .union(&answer.0)
+ .cloned()
+ .collect();
+ anyone_groups.insert(group_id.0, updated);
+ }
+
+ for (group_id, anyone) in anyone_groups.into_iter() {
+ commands.spawn((Anyone, Group(group_id), Answers(anyone)));
+ }
+}
+
+fn calculate_everyone_groups(
+ mut commands: Commands,
+ individuals: Query<With<Individual, (&Group, &Answers)>>,
+) {
+ let mut anyone_groups = BTreeMap::new();
+ for (group_id, answer) in individuals.iter() {
+ let updated = anyone_groups
+ .entry(group_id.0)
+ .or_insert(answer.0.clone())
+ .intersection(&answer.0)
+ .cloned()
+ .collect();
+ anyone_groups.insert(group_id.0, updated);
+ }
+
+ for (group_id, anyone) in anyone_groups.into_iter() {
+ commands.spawn((Everyone, Group(group_id), Answers(anyone)));
+ }
+}
+
+fn count_anyone_group_sizes(groups: Query<With<Anyone, &Answers>>) {
+ let sum: usize = groups.iter().map(|g| g.0.len()).sum();
+ println!("Anyone: {}", sum);
+}
+
+fn count_everyone_group_sizes(groups: Query<With<Everyone, &Answers>>) {
+ let sum: usize = groups.iter().map(|g| g.0.len()).sum();
+ println!("Everyone: {}", sum);
+}