summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorToby Vincent <tobyv@tobyvin.dev>2023-12-16 00:35:44 -0600
committerToby Vincent <tobyv@tobyvin.dev>2023-12-16 00:35:44 -0600
commit21c0e0074d059bfd3f3dff0b921c7f4c981b0860 (patch)
treeaf2430c01992cf51199432ba2e24a1b4f12c2633
parente0a3f745ad09dbf8239f284f2681704e278e6c0f (diff)
feat: impl day 15
-rw-r--r--input/day_15.txt1
-rw-r--r--src/day_15.rs96
-rw-r--r--src/lib.rs4
-rw-r--r--src/main.rs3
4 files changed, 100 insertions, 4 deletions
diff --git a/input/day_15.txt b/input/day_15.txt
new file mode 100644
index 0000000..a8d9503
--- /dev/null
+++ b/input/day_15.txt
@@ -0,0 +1 @@
+qkm-,qtn-,msc=8,mfhk-,hk=6,tgp=9,grnfm-,gp=5,mm-,rxh=5,fql=3,krzb-,xcs=5,zm=4,gdqg-,sqdr-,bh-,cn-,dvh=5,tgp-,tf-,djg=3,xjkddf=4,jv=1,jlb=3,fsn=2,ktd-,ztn=2,rkxr=7,xfnccr=5,gsd-,lnb=6,djg=7,kz-,rxh=4,xgv-,mcj-,pln=8,td-,lvf-,grnz-,vxtbtr=1,llxv-,cj-,gj-,lmkh-,xcknz-,fq-,xzfrs=2,fzg-,fhx-,vzxxv=8,pz=3,kq-,zjbgh=3,tgp=5,fhx-,jxjtk=6,nck-,fqpqx-,hdvrn=6,fjqj=7,ztr-,vvz=3,cfnj-,jl-,gcbx=1,hxphc-,tnt-,bh=3,bpg-,gpkk=2,mxz-,pz=6,zs-,tq-,fjd-,dgkp=6,zvbn=3,hpg-,nzgqhh=7,df=2,ffnzq-,qjhs=5,mj=9,gsd-,hv-,ztx=7,rcp-,mcj-,knf=7,fbrrk-,ss-,lzsk-,ftcs-,fqzf=9,rdm=8,qjhs=1,vmp-,npb-,xgv=6,gdszll-,qrgx-,pzt=8,hbxq-,shm-,lbqfgn-,vmp-,bm-,jrbd-,tf-,psrt=9,hcgz=8,rjtg=7,tjpn=5,nntz-,tt-,bl-,gpn-,szs=2,jcj=3,mlj-,pm=1,jqb-,jmfc=9,jlh-,gj=4,svk-,hn=4,stx-,kkr=5,hdvrn=8,nzg-,mj=5,nmm-,psrt-,mvf-,gdqg-,kq-,sph=1,mlb=6,nl-,ldv=9,qnvr=2,ld-,dn-,pkgb-,fj-,mf=2,mxz-,ftxnm-,lgk-,lzcvmq=2,nnj-,shm=4,tgzfd-,qxl-,mxz-,vmp-,kph=7,snr=8,dj-,bpt=5,sgzn=8,kzcrx-,dgb-,pln=2,jxz=8,ldv=8,pm=9,gvk=7,phqp=1,xfc-,fql-,df=7,cndm-,qxl=3,jdp-,xjl=9,qbbb-,xcknz-,lgk=4,dpl-,zvbn-,tvzdr-,rf=6,jxz-,qnvr-,nn=4,dgkp-,pp-,sn=8,fqpqx=6,nrlr-,cmdv=2,vvz-,zjbgh=9,ng=6,nzgqhh=2,kl-,srm=8,jff-,ms=4,mtzvc=3,bfg-,mxz-,cnpzj=6,zmql=5,dfc=8,xjk-,vb=4,gb-,nthdl=9,kpn=7,vqt=3,mtzvc-,fbrrk=8,hbfp-,bqf=4,vf=1,gvz=4,gd=4,kgj-,hpr=6,cx-,hv-,pkgb=1,nntz=7,lh-,tjkfxg=8,jcj=6,jnd-,ds-,cnmr=2,shqtb-,bm=7,kbt=8,rkqqlz-,rlsd=2,xg=9,qlbr-,xkb-,dmpm-,hhm-,hmxgqd-,fnf-,cxph-,ck-,fhmjh-,nzgqhh=2,gvz-,cnpzj-,vqt=7,vqp-,qbbb=3,fnrjl-,fzg=1,gth=2,fn=6,cvk=1,lzcvmq=1,kz-,vgnn=4,nf=8,cxph-,hxphc=8,npb-,dgq=2,kjv-,nl=1,xjk-,dfx-,kgj-,cgppx=1,bnc-,fnrjl=5,kcgn=6,mdxkng-,jmfc=8,jpzs=9,zp=3,kfcrmh=3,dgm=8,npnvn=6,tgzfd=7,cndm-,chs-,mvf=4,jq-,ccvbl-,hrq=9,mhm=7,sg-,dp=4,fbkd=8,rtfh=2,ktdg-,fcszl-,zdrx=7,zdz=1,npnvn-,tpclf-,kzcrx=1,mp=2,qrgx=4,mn-,gb=5,dv=2,dg-,qgzq-,nl-,xssjj-,kc=2,jhn-,tdkcl-,krzb=3,zvbn=8,hgvbj=3,dv-,tdkcl-,jtmj=9,mn=3,fbkd-,pqhx-,fqpqx=5,jc-,xhd=2,gvk=5,hr-,bpg-,xzfrs=3,qjrk=9,rdm=5,kfzf-,jp=3,hrsx=1,dfmj-,zr=9,pvc=3,ztn=2,kl=5,mhm-,fjqj=3,gp=7,zst-,fjqj=4,rzx=8,ss-,rc=3,zrgctc=3,nt=2,bjt=8,zkx-,chph-,bqf-,rjk=3,rvz-,dgm=6,qhd-,qhd-,zkx=3,tvzdr=9,fjqj-,bbs=6,fj-,shm-,qhd=6,ss=9,qb=3,zr=6,lxj-,kzhq-,nlmh-,dx=3,nz-,zp-,lq-,brj-,hgvbj=5,pkgb=7,svk=6,jqbbht-,dmpm=6,zdrp=1,ktd=8,lnb=6,qgzq-,cz=7,sp=6,mggbm=9,pktd=4,mp-,nmm=1,pz-,bkt-,cgppx=3,bh-,rf-,zrgctc=1,dx=3,kjv-,dp-,brj=4,dl-,pqz=2,bpg=9,lzsk-,lnz=8,vb=5,df=9,bc=7,xd-,qlbr-,prj=5,ztx-,sjkg-,zh-,mgclg-,jqbbht=1,jx=2,pxc-,tdkcl=8,dxb=6,hb=2,pkgb-,jmp=9,fgd=8,mmz-,jlh-,ck=3,pxc-,xmhxk-,lh-,xcknz=4,pzs=4,mbtcm-,jtmj-,jn=3,jn=6,jfsn-,fmf-,npb-,hrq-,ndfr=3,lm=2,chph=6,dfx=9,sptllc-,cxph-,nq=1,svk-,jpzs-,qhd=9,rzx=3,rc-,pxc=6,tvzdr-,jpzs=1,hdb-,tnm=1,rlsd-,ktdg-,vxtbtr=3,bkt=8,nr-,dk-,cp-,jv-,pjbt=1,kjv=8,tkt-,cdvqnr-,xjl=9,lgk=7,vzxxv=3,dn=4,zdrp=9,dh-,jpn=1,dk=3,sn-,qt-,jpn-,gd-,lnz-,vjt-,xhd=4,lq-,svk=6,fvf=3,bmxnh=9,bkt=9,dch-,vm-,dxsch=3,jtd-,cnpzj=3,ktdg=1,mdxkng=2,jlb-,mv=2,dfc-,xcs-,sp=2,vc=5,ndfr=9,lzsk=5,kq-,svkh=1,cfnj=2,bl-,qbbb-,cfm=6,rzx=8,lkmqbg=5,jcd=1,nzg-,xdh=1,sjkg-,tf=2,vx=8,stx=8,zn=4,zs=1,dfc=6,sp-,gsd=6,jd=7,zkcfgm-,lkmqbg-,qzpdbt=3,bh-,fbrrk=5,kfzf-,vx-,ld-,pjbt=1,mcj-,jfsn-,qz-,vlqj=1,zjbgh=5,mbtcm=7,qf-,tjkfxg-,mkxx=6,fqzf-,jpn-,gt=9,tv=5,ccvbl=9,kl=8,vjp-,dkjc-,dgq-,jfsn-,zdrx=8,djg-,jhb=5,dj-,mgclg-,mtsr-,sgzn-,kdj=6,ftcs-,nl-,nrlr=7,mt-,svk=9,fjqj-,qrgx-,kdgb-,vjp=6,lh-,mgclg=7,xvn-,jz-,hbxq=8,lgn-,kdm=7,tv=1,nn-,cdvqnr=1,gcbx=5,zp-,dn=3,srqc-,tf=7,gcbcp=4,gth=8,zrgctc-,prj-,fjd=9,jn=1,vm-,ldl=9,lzcvmq=4,cpv=4,ndh-,pvc=5,cxph=1,grnz-,bl=8,rzx-,rqx-,xz-,pzs=9,nzg-,qz-,xkb=4,bkd-,xzfrs-,rc-,ftcs=7,tfpj=2,jslrh=9,svq=5,svq=8,bt-,sph=7,cfnj-,zfgsk=9,mv=2,lh-,zvbn=6,mfhk-,cfm-,dfx-,mvf-,fqpqx=2,cdvqnr=6,gxn=3,gsd=1,pqhx-,lc=3,tq-,xxpn=4,nkv-,nf=8,bq=9,kgj=5,hjbdrs=9,llxv=2,fsn=1,xcs=1,rf-,srqc=3,lcpg-,dz=9,chph-,rrt-,bqf-,nmm-,tnt-,mn=1,hnr-,zdz=8,hdb-,mtrlfr-,tk-,npnvn-,kbc-,fnf=9,vqp-,dkxzp=5,kgl-,xgv=6,qbp=1,gb-,xkvrx-,fqzf-,mtsr=5,zdz=7,tkt-,zf=1,jq-,jk=1,fvv=5,gvk-,mtsr-,gb-,kcgn-,lgz=3,sq=2,tvzdr=6,zf=4,jqbbht-,fmf=5,jn-,dch-,zrjn-,ktd-,vqp=6,cpv=7,ftcs-,pzs=5,tnt-,tptsg-,bfg-,lcpg-,ccvbl-,pz-,tt=8,cz-,zf-,zf=3,zs-,jlb-,dzdn=3,rjk-,gj-,jqb=3,vvz-,lkmqbg-,qnvr-,fjqj=4,xg=6,nmm=3,bvg=8,vvq=2,pqz-,sg=8,svk=2,jg=1,zxt-,zf-,vqpf-,jk=7,qnvr-,krzb-,vmp-,zvbn-,cgppx-,zp=8,jdp-,nnj-,vbps=6,cn=9,jmp=2,qbbb-,nntz-,vg-,pl=4,kbc-,zdz=2,sjb-,jmp=2,xsf-,srt=7,jcj-,vqpf-,lzcvmq=6,hrq-,mvf=4,hrq-,pz=2,vqp=1,lgx=3,mgclg=6,xmhxk=9,jrbd-,xd=3,fqzf=5,hxphc-,cvk-,kbt=9,tdkcl-,qbp-,gsd=6,dn=2,gvk=4,mgg-,vjt=4,hqg=6,vlc-,vvz=6,hqg-,hzc-,mr=6,hdb-,gb=5,fvv-,cnpzj=2,dj-,gvz=1,dd=5,fdhtxv=1,dn=1,hpg=7,svkh=2,kdj-,jqb-,rvz-,rxh-,kq=2,kgj=5,bl-,jd-,cx-,lbqfgn=6,zkcfgm=1,jh-,kph=2,hnmv-,qbbb=8,fdz=7,hqg=8,pghc-,jf-,dp=9,hdzr-,pl-,jp-,mt-,fnrjl=9,mdxkng-,ds-,kcgn=5,hqg-,sk=7,qz-,mtzvc-,rxh-,tkt-,hzc-,zfgsk-,sptllc-,nntz-,lh=7,fgd=3,vxtbtr=4,dg-,bk-,tgp=2,xmhxk-,mmcf=1,grnz=4,rkxr-,shqtb=7,lkh-,hnr=8,jt=8,tvzdr-,qz-,ckx=8,jhb=2,mzx-,ccvbl-,fsn=5,gxn=5,phqp-,kggkk=3,lq-,rvz-,fsn-,vvq=2,hlls=2,vqt=1,vmp-,vjp-,lmkh=6,snr-,dgb=1,vjt=9,nt=9,fgd=6,grnz-,zh-,hdb-,ndh=3,pzs=1,ttmj=2,zp-,rvz=3,jf-,jlh=5,kc=8,cx-,fcszl=2,vb-,kkr-,jtmj-,mtsr=7,lc-,kdgb=8,nz=8,hsl=7,lxj=3,dc=7,nntz-,ld=8,zjbgh=8,dzdn=4,vxtbtr-,jpzs-,hpbm-,qzpdbt=5,ktdg-,cd=2,fq-,qqvps=3,rj-,nzgqhh-,gzt-,gt=2,hk=4,xzq=6,mdxkng=4,hrsx=2,knf-,mbtcm-,dkxzp-,qsbgs=6,pj-,jxft=3,xd-,srt-,rxh=2,bq-,qtn-,tst=6,vxtbtr=2,jh=1,cxph=7,rdm-,stx=1,ttmj-,lgx=6,zn=3,rzx=6,ztr-,hv=4,zn-,npb-,qt=6,vjt-,ck=2,fdz=6,kfcrmh-,xsf-,lgz=7,lgk=2,zvp=1,qt-,dk=7,tjkfxg=3,sp=8,hn=2,nnj-,mn=7,dbd-,mp-,ztn=1,vb=1,rvz=3,bqf=8,sjgnj=2,qt=6,mggbm=1,nz-,vqp=1,tgp=5,jq=4,zr-,pqhx=5,ffg-,xdh-,ktdg=4,dfx-,pl=6,chph-,kdh=4,xkb-,lkmqbg-,qdv-,kgzj-,kfzf-,dxb-,kc-,cf-,zp=5,lq-,rvz-,dfx=9,bjt=9,mm=5,mt-,rj-,llx-,kzcrx-,fcszl-,zst-,rht=6,mq-,xjl-,dvh=4,zp-,jrbd=6,rj=3,rm=9,svk-,pl=3,qz=7,tjpn-,gth-,ng-,zb-,dfx=9,ftxnm=1,xzfrs-,kbt-,lcpg-,dgq=1,ndfr-,jrbd-,mhm=9,qs-,xcs-,vx-,pc=9,hhm=8,kk=8,psrt-,cps=4,zrgctc-,xz=6,vx-,tpclf-,lgz=8,rhz-,nmm-,tnm=8,zrgctc-,gt-,lm=3,cpv=5,ng=8,chs=6,dd-,hnmv-,cfn-,stx=4,vqp-,kgl-,ffnzq=1,svk-,kbg=9,qtn=4,tng-,kzhq-,dh-,ftcs=3,phqp=4,rqx=8,mtsr=5,qjrk-,sjf=7,qjhs-,vvq-,vvq=5,ftvjzf=6,ds=1,tdpr=5,hqg-,gcbcp=5,mmz-,dp=2,bq=8,dd-,vjt-,nr-,kr=7,pjbt-,ndfr=1,qkm-,vg=7,rdm=5,fql=1,hk=2,jt-,kfcrmh-,npb-,qnvr-,xlghf-,psf-,fsn=2,zrgctc-,zjbgh-,qhd-,rm-,nkv-,zvbn-,fvf-,dz=7,fcszl=8,qxl=5,kjv=7,dn=2,qbbb=4,dgq=6,tk=9,zkx=9,pc-,qs=8,fbrrk-,jqq-,ffnzq-,dj-,nt=3,pc-,kbt-,fnrjl-,xjk=1,mggbm-,hbxq-,kdm=2,vjp=3,hv-,rcp=6,srqc-,kgzj-,chph=5,dzdn-,xsf=2,ffg-,hgvbj-,ljf=7,xvn=6,vqp=8,xcs=4,tvzdr=4,lc-,tv-,qsbgs=6,dkxzp=8,hnmv=6,lbqfgn-,mp-,kzcrx-,xxpn-,fsn=1,ftcs-,mggbm=2,nq-,ftcs=1,hjbdrs-,hqg=1,ctx=4,vmp-,bvg=1,bq-,gd-,kdj-,lm-,ld=5,jxft=9,sjgnj-,gpn-,rks-,hgvbj=6,qs-,qbbb=1,dgq=7,nmm-,rxh=2,bjqbx=3,nz=3,xjkddf=7,fjqj=5,dpl=9,kbt=5,fbkd=9,kz=6,fjd=6,fvf=7,mvf=9,dkxzp=1,hpbm=2,qbbb-,dv=5,lnb=2,pghc=8,dz=7,pjbt=2,ztn-,rc=8,vbps=9,hv=2,fqpqx=5,jn-,jn=5,ztr-,jhn-,qrgx=4,cnpzj-,rkxr=8,zdrx-,gp-,bbs-,fbrrk=8,lnb-,dp=8,mcj-,mr=6,xfsd=6,ndfr-,pghc=4,hb-,ccvbl=5,qs-,qb=2,zf=9,rvz=4,cdrk=8,dn-,cps-,lh-,rc-,hk=8,qbx=2,dfmj-,jrbd-,lq=8,kkr-,fm-,mgg=8,lfk-,qlbr-,nck=2,kgzj-,zr=7,zr=5,knf=4,gvk-,rtfh=1,hnmv-,zrgctc=2,chs-,zmql=8,dpl=8,tnt=5,rhz-,lkh=4,qtn-,hpr-,dk=9,jg=6,dx=5,kgl-,xfsd-,cv=5,hhm=4,nntz-,kc=2,mhm=2,kk-,cgppx=5,dh-,rf-,kzcrx-,krzb-,rlsd-,jnd-,tdpr-,vqpf-,xfsd-,mgg=5,tq-,jxft-,xjkddf=5,kpn=1,ztn-,bjt-,rtfh=2,xvn=9,qbbb-,pc=9,dn-,lq=6,zdrp=7,jrbd=2,hv=1,ms-,hnmv=4,hcgz=7,kdm=1,pvc=8,lgk=8,svk=4,cfn-,tvzdr-,mr-,zrgctc=5,vb=7,nz-,sjkg=8,ljf-,rqx-,lvf=5,pk-,ttmj=4,hsl-,hzc=3,tf=3,hzc=9,msc-,gt-,rf=4,jfsn=4,lgx=2,msc-,djg-,ldv=3,sjgnj=4,qtn=4,bjqbx=3,dk=9,nt=7,kgl-,xvpqh=4,dgb=7,vlc=7,nkv=9,pc=6,lgz=9,fx-,xssjj=9,sn-,chph=4,zf-,fsn=9,kkr-,cf=7,kbc=3,gdszll=8,kfzf-,jpn=1,dv-,pg-,jpzs-,vvz-,nzgqhh-,mgg-,vvq-,srt-,fx=4,zjbgh-,xlghf=5,fql=8,cmdv=3,mmcf=7,cps-,jhb=1,hrq=2,brj-,hlls=3,prj=5,jq=9,fm-,kh=5,lbqfgn=2,npb-,kfr=2,npb=7,qkm=7,jdp-,mt-,djg=6,fdhtxv=4,vx-,tf-,mmcf=2,mtzvc=7,zmql-,jqbbht=7,xkb-,ttmj=1,gzt=2,ktdg=7,bpt-,kzhq=5,zs=2,nntz-,qbp-,qrgx-,kfr-,lgk-,nf=2,srm=6,tc-,kgj=7,kc=5,bx-,pghc-,nck-,hhfxj-,pm-,fq-,dp=7,fvv-,ndfr-,hlls-,jtd-,dk-,mhm-,dgkp-,gvz=5,hpbm-,mgg=2,rqx=4,rdm-,sph=4,bbsd-,fvv-,qqvps=9,pk=5,gp-,mlj-,lm=3,jxft-,lc=3,dbd=9,jtd=9,qs-,dg-,bx=8,qt-,lmkh=8,ttmj=5,jf-,qlbr-,cf=8,hbfp-,rtfh=8,djg=4,llxv=1,shm-,gxn-,ds=8,vb=3,jqb=3,ttmj=6,stx=2,hrq=8,tpclf-,phqp-,ftxnm=3,vc=1,sk=2,psrt-,tng=8,nnj-,mgg=6,gb-,kjv-,cj-,lfk=1,lgz-,qnvr-,ccvbl=8,shqtb-,gp=4,pqz=5,mtzvc=9,fhmjh=1,fhx=6,pl-,chph=5,df-,qs=8,bkd=3,bc-,zmql-,mp=7,fdz-,hdzr-,mcj=9,xjk-,qxl=8,zvbn=5,gdqg-,hhfxj=9,cj=3,rkxr-,xjl=5,dfc-,tjkfxg=5,ffh-,mlj=1,mv-,vqpf=8,cps=4,ccvbl-,hrq=2,pvg=5,nck=4,cndm=4,jqq=3,pln-,cf=8,bjt=9,fhmjh-,vq=8,pl-,zst=9,qbp=7,cv-,mcj-,mp=7,zn=9,npnvn=8,ftxnm=4,hk-,fhmjh-,jlb=1,mbtcm=3,bh-,mv-,rkqqlz=2,sjf-,jhn-,hb=6,npnvn=5,qsbgs=9,xmhxk=7,cz=6,mhm=5,gpkk=6,jjt-,nzg-,srm-,bvg=1,kr=5,kph-,vzxxv=2,kq=3,mlb-,sn=4,grnfm=7,dkjc=6,bm=9,jcd=4,fsn=4,cnpzj-,kjbn=2,kgzj-,jjt=9,jf=6,ldv=3,fvv-,kgj=5,df-,zkcfgm-,kfcrmh-,prj=9,sp-,xg-,qjhs=2,bpg-,xdh-,gvz=9,lkh=4,bbsd-,sjf=2,cnmr=5,phqp-,kph=7,kfzf=7,fjqj=2,psrt=4,mxz=7,kdh=1,qkm=8,mmz=6,tdpr=6,lfx=1,fvv-,qjrk=3,zvp=4,jhb=8,kc-,tq-,kgj-,dfc-,kk-,bbsd=6,nzg=7,jqq-,nzgqhh=1,dgq-,bh-,lgk-,lvf=6,zfgsk=8,xxpn-,rxh=4,jpzs=1,gth=4,dz=9,dg-,hpbm=9,pzt-,jfsn=5,qb-,hrsx-,fql=2,mmcf-,ckx=2,fbrrk=7,bjqbx-,pktd=4,xcknz-,gxn=3,qjrk=3,hr=2,jdp-,mcj-,hdzr=6,hbfp=8,cfn=3,brj-,kk-,pghc=1,qn-,dn-,dxsch=8,sqdr=2,lbqfgn-,cdvqnr-,sdvhbf=9,gq=9,dk-,zt=4,bm-,mp-,sptllc=1,nthdl=9,hzc-,cp-,ng-,dxb=8,lfk=3,zgnd-,dz=7,jz-,gvk-,dkxzp=3,zc-,pxc=8,kdm-,nrlr=5,rkqqlz=4,ldl-,gb=2,ftcs=8,jv=4,mlb-,mkxx=3,sjgnj=2,tt-,sgzn-,rvz=6,kk=2,td=4,tst=6,zgnd-,dbd=5,mt=8,vqp-,ldl-,ftcs=1,kph-,vc=1,rc=2,kzhq=6,jlh=4,zc=4,stx-,dl=2,cpm=7,jfj=7,mq=9,jxjtk=2,dmpm-,fhx=2,jxjtk-,cfnj-,svq-,hdvrn-,pxc-,rxh=1,qbx-,qs=8,jk=5,hv=7,bnc=8,bfg=2,cnpzj-,dk-,hjbdrs-,vf=2,jlh=3,szs-,mgg=8,djg=7,qtn=4,brj-,dch=6,jg=7,jxjtk=4,jtmj-,cdvqnr=1,gdqg-,vbps-,kfr-,dkxzp=8,zxt=3,nl-,mkxx=7,jg-,kr-,ktd=7,lxj-,gvz-,qdv-,sgzn=7,dd-,fmf-,gsd-,zrjn-,rht=4,lgk-,nlmh=6,lvf=4,bmxnh-,mxz=2,kfzf=6,zvbn-,hpbm-,ktd=5,kh-,qjrk=4,qg=1,hcgz=3,jjt=3,dgm-,zfgsk-,kc-,dmpm=4,bk=7,tv-,zb-,fhmjh=6,jqb=9,mfhk-,ckx=2,mn=8,sn-,bkd-,jqb-,llxv=7,rj=7,hbfp=1,chs=7,dch-,xfnccr-,hqg=7,llx=1,pjbt-,dn-,nl=6,ccvbl=9,bx=3,ng=8,fjqj-,ldl-,pxc-,jmfc-,hcgz-,lzsk-,jq=4,mgg=3,jqq-,bbsd-,bjt=5,nzgqhh=5,kbc-,ccvbl-,jqb-,lh-,vvq-,zvp=7,vvz=9,vmp=3,lnb=4,hv=5,gx-,cj=4,tq-,ckx=8,pvc-,fjqj=1,sq=3,fcszl=7,tv-,cj=3,dg-,xhd-,jlb=2,bjt=4,gb-,hlls=5,mbtcm=2,hpbm-,sg-,rdm-,srt-,pln=6,pzt-,zt-,bpt-,rdpc-,mxz-,ldv-,rks=5,vzxxv=1,qb=8,gj=2,td-,kpn-,gxn-,jrbd-,cdvqnr=5,fqpqx=3,sn-,gt-,zjbgh=3,vlc-,xg-,lq=9,xfc-,dkxzp-,grnz-,jcd=5,lfk-,dbd=9,bk=7,gpn-,fsn=9,zxt=8,vxtbtr-,mm-,xgv=8,rxh-,ss=7,bx=6,fm=2,dx=3,cgppx-,prj=6,cxph-,ztx=2,lgz=4,rtfh=6,ztx=5,cd-,xcs=1,qz-,jtmj=4,tnt-,sjf-,jk-,fvf=4,cmdv-,pkjs=6,jxz=6,xzfrs-,cvk-,mxz=9,cfm-,mmz=3,cn=2,jt=4,xkb=3,ccvbl-,pqz=7,lq=1,svk-,vjp-,mtzvc=1,rzx-,xjkddf-,bpt=7,tnt=1,qqvps=3,qnvr-,kpn=2,jl-,dh-,vqt-,ztn=2,pqhx=5,kq-,kgj-,kfr-,pvc=7,bpt-,cnpzj=6,cv=2,rqx=7,fhx=8,jf-,dzxmm=2,zb=2,vf-,zp=1,cnpzj-,jqb=4,rdm=7,cfnj-,cps-,fgd-,mdxkng=6,jqb=8,qgzq-,qsbgs-,tnt-,rrt-,lcf-,npnvn=6,rdm=5,cpm-,lbqfgn-,lbqfgn=7,xcs=9,dn-,qgzq=7,jtd=4,cp-,zbdb-,fdhtxv=7,zvp=3,vn-,qf=7,kk=4,jhn-,qz=9,jk-,rvz=1,cx=2,hzc=4,dl-,zbdb-,gth-,ffg-,zdz=8,zb-,szs-,pl=1,bkt=1,dkjc-,prj-,vx=9,xd-,ndtm-,mzx-,xfnccr=1,npb-,pvc=3,tgp-,fdz-,cfn=8,zkx=9,jxjtk-,vf-,gt-,gp-,mgg-,gcbcp-,zjbgh=5,kgq=2,gx=7,gt-,ccvbl-,kbg-,zxt=1,zdz-,nck=8,nzg-,vzxxv=4,qtn-,qjhs=5,gpn-,nzgqhh=5,jp=5,hnr-,zmql-,gdszll-,psrt-,nthdl-,dgb-,gth-,fbkd=1,pqz-,vn=1,kdgb-,gzt=6,lzcvmq-,jhn-,tv-,jxz=7,nthdl=2,tk=2,gvz=9,cz-,qtn=4,dd-,pghc-,kzhq-,jx=3,bbs-,sn=5,fsn=6,jrbd-,fnf=1,hsl=6,mtrlfr-,kgzj=3,zrgctc=4,vqt=3,zvp-,kfzf-,fvf=9,hnr-,cfm=5,ctx=7,kgj=6,hqg-,tpclf-,tng=9,tjpn=6,svq-,tt-,gp=7,jslrh=5,qqvps-,hhfxj=3,lgx=6,cgppx=1,mznq-,ckx=3,ndtm=1,qqvps-,xdh=2,dk=3,cdvqnr=6,rhz-,bjt-,rkxr=9,zp-,kzcrx=3,ldv=6,gd-,lbqfgn=3,xssjj-,bx-,jl=5,zvp=5,ctx=9,fdhtxv-,hr-,gxn=1,zgnd=1,ffg-,zgnd=5,zdrp-,hpg-,pkjs=8,nck=1,hpr-,fdz-,rjk=8,qsbgs-,mkxx-,sjkg=8,mm=2,rjk-,kz-,sph-,dvh-,ck=4,jp=2,mtsr-,gp=6,qb-,jmp-,sjf=2,cxph-,kc-,bkd-,hbxq-,jpzs-,fbkd-,dfmj-,vqpf=5,df-,xxpn=2,vb-,rcp-,kgj=7,qt-,xz=1,fzg-,jdp=3,tdpr=1,tpclf-,qkm-,vx-,qbx-,bpt=8,sjb=9,srqc=1,bnc=3,dch-,xlghf-,jfsn=6,snr=5,kh-,srt-,ndfr-,qjhs=7,dqh=7,sjf-,lgz-,hdb-,jxft=9,mv=9,mbtcm-,gb=6,jd-,xcknz-,xvpqh-,shm=9,fql=9,mtzvc-,jc-,vmp=1,gxn-,ndfr-,fbrrk=1,hlls=4,xk-,krzb-,hrq-,kzhq=6,lmkh=6,ffnzq=2,bpg-,zjd-,hjbdrs=9,vf-,mj-,rkqqlz-,gd=2,ztn=4,lzsk-,zf-,vjp=2,zdrp-,ftcs-,kdm-,djg=4,lvf-,bqf=7,tng-,jslrh-,qf-,qnvr=1,cpm=4,ftxnm-,mcj-,pz-,psf=8,kfzf=8,mr=3,dfx=6,sp=2,hsl=4,rzx-,rzx=2,kjbn-,hgvbj-,zvp-,fx=1,zbdb-,jmp=9,qhd-,bm=2,xcknz=7,xssjj-,mm=5,pg=4,gpn=9,pk-,zgnd=2,jxz-,kgq=3,tc=9,xfc-,mggbm=3,sjkg-,xhd-,mvf=6,mggbm=9,bm-,kq=9,gdqg-,mq-,hdzr-,tst=6,lkmqbg=6,pj=2,pln-,xhd=6,gb-,hpr-,ckx=4,nt=3,kzhq-,lgz=9,cxph-,tnm=4,kjv-,zbdb-,xhd-,mzx=3,tgp-,nq=3,cdrk-,ldv-,cpm=1,dj-,mlj-,sgzn-,lzsk-,sjkg=2,vc-,xdh-,pjbt=1,vb=1,fvv-,tt-,xzq=7,pkgb=9,xcs=1,bqf=3,stx=3,srt-,ktd=3,lzsk-,qt-,npb-,rzx-,lmkh=2,fzg-,dkjc=6,kjv=6,jfj=1,vx-,chs-,zkcfgm=8,jlh-,jlh-,dch-,fj-,vg-,lgz=1,jl=2,nl-,kfr=2,dh-,zkx=5,lkmqbg-,tpclf-,hqg-,kfzf=2,qbp=8,gdqg-,pqz=6,fbrrk-,fn=9,dkjc=7,fzg-,bc-,xdh-,stx-,kjv-,hlls=5,lfx-,dgb=4,pjbt-,mtzvc=2,xd-,dxsch-,hb-,rj-,cz-,cgppx=9,svq-,zkx=9,hhfxj=8,ldv-,pqz-,ccvbl-,tt=2,zt=9,ffnzq=9,hnr-,nq-,mxz-,srqc=6,gcbx=7,tdpr-,qbbb=5,hbfp-,tfpj-,jl-,zdrx=8,bkt=6,zrgctc-,lnb-,xhd-,grnz=8,sq=8,fhmjh-,ldl=4,xk=5,zgnd-,qkm-,gvk-,sq-,xlghf=1,jmp=1,qgzq=7,bvg=8,sq-,jtmj-,xfsd-,bvg=8,dk=3,dz-,jqb-,vbps=2,dfc=2,qxl=2,jmfc-,dp=6,hmxgqd=4,mznq-,kq=5,xkvrx=9,jlb=2,jc=7,nzg=1,jl-,bnc=3,lzsk=1,hpbm-,hb-,qbbb=6,qbx=5,xmhxk=3,vlqj=7,cv-,qs=1,mt=3,cmdv-,zdrp=4,sg-,qlbr-,kc=9,prj-,fn=1,kk-,rjk-,zrgctc-,ktdg=3,fdz=5,cz=7,hmxgqd-,vg=9,mmcf-,xkvrx=5,brj=8,sp-,sptllc=8,tc=1,fdhtxv=3,qlbr=1,fgd-,bmxnh-,vgnn-,nq-,ftvjzf=7,jqb-,qkm=2,mlb-,srt-,dxb-,dkjc-,jx=1,gt=6,hcgz=1,dkjc=6,jk-,kgl-,jg=3,dx-,szs=7,tjkfxg=9,tdkcl-,vf-,fmf=2,srt=8,xfc=9,lgx=4,zb=9,kdj=3,hhfxj=2,kgl-,rqx-,rzx=6,ztn-,mfhk=6,kbt-,zjbgh-,xsf-,vqp=9,cnpzj-,qrgx=5,fvv=6,sg-,mcj-,jdp-,cnmr-,gdszll=5,tv-,jq=9,dkjc=4,tnt-,vvz-,rc=4,mmcf=2,gq=2,zm=1,lq=9,fvf-,vjp=7,zjbgh-,jhn=9,bq-,xfnccr-,kl-,vjp=3,dx-,mgclg-,tng-,mq-,zvbn=4,jhb-,mt-,ffnzq-,ztn-,ljf=4,qt-,nmm-,kbt-,nmm=5,jp-,xxpn=3,kgzj-,cps=9,gcbx=7,zm=2,hv=8,lm=7,hrq-,gt-,cp=8,dv-,fmf-,dbd=6,mgclg-,kbc=7,ck-,rrt=2,sjb-,krzb=2,srqc=7,bpg=5,vxtbtr=6,mtzvc-,xd=3,dj-,xkvrx=1,qgzq=6,kh-,kbc=7,pvc-,cxph=3,fj-,qg-,zgnd-,vqt-,bkt=9,dc=9,rks-,tc=7,lzsk=2,srm=1,ffg-,fqzf=3,zkcfgm-,fmf-,gcbcp=7,nmm=2,zh=8,mmcf=9,kggkk-,sgzn=9,rht=5,jcd-,npb=7,bkt-,mlj-,vn-,ms=5,ktd=2,qjhs=1,nl=6,fnrjl=4,gx=5,cd-,mdxkng-,qsbgs-,chph=5,rht-,ffh=5,fhmjh-,cfn-,jqq-,pm-,pp=7,kr=7,pvc-,bc=7,fhx=3,tv-,tgp=9,qb=3,xfnccr-,lzsk-,hrsx-,tf-,fqzf=7,bjqbx-,dgkp=8,bm-,mr=7,zkx-,qbp=8,dl-,gd=2,pkgb-,kgj-,bc-,rqx=8,xzfrs=9,stx=8,zdrx-,fmf=8,qjrk-,mlb-,cpm-,dch=5,rht-,xfsd=7,jxjtk-,zc=2,cfn=6,cv=6,jjt=1,kr=3,pghc=5,kfcrmh-,jhn=3,xkvrx-,gt=3,bvg=7,pvg-,jpn=7,bbs=8,rvz=4,lnz=9,mkxx-,jfsn=2,qdv=6,qjrk=1,zvbn-,fm=3,tk=9,stx=5,qg=6,rzx=4,vjp=8,xcs=5,fx=7,bmxnh-,mfhk-,dk=3,mmz=4,jc=6,szs=3,hbxq-,vjt-,tnm-,cndm-,lgk=2,qbbb=3,hpg=5,rvz-,nzgqhh=5,lnb=3,xgv-,gcbx=7,ffg=5,fbrrk-,zm=5,xkvrx=4,chs-,dzdn=7,tt=8,snr=1,cmdv-,lbqfgn=3,jc=8,kzcrx=6,ms-,vvq=7,gt-,jlb=7,bnc=1,dl=3,ttmj-,ld-,kgl=1,tc-,gpkk-,kbg-,qbx=9,bnc=2,ndh=7,lgn-,cndm-,rhz=2,pln-,kdm-,qzpdbt-,qbx-,sn-,qbp-,dqh-,lkh=4,kdgb=1,mmcf-,qbbb=9,gxn=2,kr=7,fhmjh=2,xssjj-,jlb=6,mv-,lvf-,dfmj=9,tdpr-,gsd=3,nz=7,qpfx=9,fqzf=8,vgnn-,hpg-,cdvqnr=5,kc-,nq=4,mxz-,hr-,zs-,jxjtk-,tf-,zr-,bx-,bt-,jz-,pxc-,bh-,jhb=5,cd-,zjd-,lnb-,jh-,sjf=3,pkjs=4,xdh=9,xz-,cj=1,rhz=7,lxj=2,kbg=8,qjhs-,hmxgqd=6,bjt=9,qzpdbt=4,sptllc=9,nmm=8,sptllc=6,mgg=8,gpn=1,xd-,hqg=3,vqp=8,sn=7,fzg=4,zp=8,rkqqlz=3,ss=9,mbtcm=4,kzhq-,kfzf-,rzx-,lbqfgn=2,xfsd=2,kgl-,qnvr=4,kdgb-,bl=1,hb-,bb-,bjqbx=6,kk-,nthdl=6,jfj=1,vvq-,fhx=4,jcj-,cx=2,bmxnh=8,hcgz=9,ndfr-,hn-,hz-,gdqg-,cpv-,hrq=9,mj-,jd-,jc=8,fmf-,xzq=6,fql-,jmp=8,jrbd-,nthdl=8,bjqbx-,qkm-,td=8,hv=6,brj-,qsbgs-,dfmj-,dfx-,vqt=2,cfm-,fnrjl-,nmm-,zbdb=6,cj-,gcbcp-,fj-,qnvr=4,fx-,bm=5,tjpn-,jxz-,hv=1,kgl=7,fj-,vc=9,jh=3,bpg-,tfpj=2,svq=2,zdz=4,fmf-,jlb=5,gb=7,hpg-,kk-,cps-,rcp-,mgclg=4,zxt-,qhd=8,qsbgs-,dx-,tng=5,qn-,jpn=9,zh-,pzs-,kgl-,fj-,ktdg-,gj=6,hdzr=2,qxl-,jxjtk-,nr-,fqpqx-,mj-,nkv-,kjv=9,jl=6,sjb-,dzxmm=6,fnf=1,vq=2,krzb-,cv=1,xfnccr-,snr-,svkh-,jrbd=4,xssjj-,nr-,qb-,hdb-,tnt-,cpv=8,fvv-,ztx=4,dmpm-,hsl-,cnmr=9,jmfc=3,qqvps=4,sk-,ckx=5,dgb-,hk=8,nq-,rdm-,ljf-,qzpdbt-,lm-,lnb=3,ftcs=4,bb-,cmdv=7,lxj=4,dg-,kq=1,qhd-,zst=3,tdkcl-,qkm=3,tt-,pln-,lfx=3,vmp=6,fqpqx-,rqx=7,pkgb=6,rhz-,rc=1,xk-,nthdl=7,lcpg-,lkmqbg=9,sq-,xcknz=1,shqtb-,kzhq=7,pm=3,qdv-,ttmj=8,pghc-,cpm=8,hbxq-,kvgqcd-,xk=2,mvf-,xcknz-,xk=2,qjhs-,jq=2,fbrrk-,jslrh=8,bmxnh=4,dd=3,xcs-,hhm=5,hxphc-,hzc=2,dx-,jxjtk-,jtmj-,pjbt-,svq=6,grnz-,dfx=9,lq=2,cmdv=7,lkmqbg=4,nrlr=7,sq=6,pzs=4,dqh-,dkjc-,jx-,hgvbj=1,bc=9,dk=3,cd-,sgzn=1,cn-,qzpdbt=4,cn-,kdh=5,ndtm=9,dg=5,lh=7,vqpf=4,tdkcl=6,ndh=1,tf-,hcgz-,rrt-,ftxnm=2,zrgctc-,kbc=2,mlb-,bm-,xjl=4,fjqj-,cfnj-,bb=4,gpn-,zrgctc-,xcs=4,dd=4,chs-,gj=3,fq=4,pz-,hqg-,zp=8,hlls=1,dk=8,vxtbtr=4,jfsn-,zst=6,jn=6,jqb-,ndfr-,hcgz=4,mlb=3,hhm=4,dgb-,kgzj=7,llx-,kbt-,lkmqbg-,kzcrx=8,xgv=2,llxv-,ztr=1,sjgnj-,vxtbtr-,mxz-,ktd=9,tr-,gq-,dg-,gb=3,xsf-,zfgsk-,cfm-,jc=7,xmhxk=2,xd=5,jt=3,rzx=8,hbfp=4,cfm=1,rlsd=6,hrsx=5,krzb=8,hpr-,mr=7,xzq=8,dc=4,kgl=9,qrgx-,lcf-,dh-,bb=2,fm-,jqbbht=4,pkgb=7,gth=2,cdrk-,pk=2,vzxxv-,zc-,dgb-,kr-,xhd=2,xzfrs-,qs=8,gd=2,pzt-,svkh=8,hnmv=3,jh-,sjf=8,llxv=2,xcs-,gvk=9,rkqqlz-,cfnj-,ftvjzf-,rc-,qqvps-,llxv-,gzt-,kdh=6,qjrk-,qrgx=2,zdrx=5,gp=5,rht-,mdxkng=9,hmxgqd=5,kkr=7,lkmqbg=9,tv=7,zm=6,mm-,mbtcm-,rkqqlz=2,dd-,xlghf=9,vlqj-,phqp-,bkt-,nz-,hn=2,lvf=2,hhfxj-,tr=8,fzg=5,xjk-,gxn=9,fbrrk-,pkjs-,xjk-,pvc=4,tdpr-,kfr-,pp-,td=6,cz-,qbx=6,dp-,mf=6,lh-,ftxnm=6,ndh=6,tnm-,gdszll-,zkx-,rtfh=8,td=7,vq=1,hz-,hzc=9,xg=6,mm-,dp=4,bjt=8,npnvn=4,fq-,xzfrs-,kgj-,hhm-,fnf=2,kkr=2,jq-,zjbgh=3,fnf-,qnvr=5,nmm=1,kbt=7,nr-,rj=6,vg=2,qbbb-,nq=7,hrsx-,tjkfxg=3,mm-,fm-,cz=1,jtd=5,pm=3,hnmv=3,llx=5,kgq=4,pz-,xd=8,mp-,sptllc-,zt-,hhm-,gj-,cz-,zb-,bjt-,jdp=3,rqx=3,rtfh-,bb-,jcd-,npnvn=6,ndh=2,ss=5,jtmj-,hxphc=1,jmfc-,shm=9,xfc-,zt-,jl-,rkqqlz=7,lkmqbg-,kgq=8,bh=2,jpzs=3,fq-,mkxx-,fm-,mggbm=4,jt-,fjqj=5,msc=8,zn-,rkxr=4,tr=8,mcj-,pkgb=9,hr=7,dkxzp-,dkxzp=7,rzx-,xgv-,ccvbl=7,lbqfgn=2,bbs-,jtd-,dxsch-,gsd=4,bjqbx=9,hv-,dz=3,hlls=4,xd=3,dfmj=2,nn=9,rjtg=2,hgvbj=9,sjkg-,bt-,nmm-,bm=7,kfcrmh-,xgv=6,kgl=8,vmp=2,ktdg-,pc-,vqt=1,cfm=9,bt-,jh=5,gj-,qbx-,kzhq=7,dz-,sqdr=5,qf-,kbc=5,lzcvmq=4,dz-,mm=1,sjf-,nntz=3,xmhxk=9,fx-,vzxxv=4,mt-,pl-,xkb=3,dgkp-,lzcvmq=2,fgd=5,jh-,tng-,xzq-,svkh-,vqt-,sp-,td=3,mhm-,vvq=1,kjbn=7,zvbn=3,jg-,svq=2,svkh-,jhb-,dgm=7,vx=6,zrgctc=6,qz-,xvn-,kz=4,mtrlfr-,jdp-,hhfxj-,tgp=1,rkxr=3,lfk=9,zdrp-,fm=6,jnd=9,ftcs=9,zkcfgm=3,pqz-,mbtcm=7,hmxgqd=7,dxb=1,sp-,sn=7,jxjtk=1,lc-,ds-,sjf-,lc-,mlb=1,rhz-,qf=6,rkqqlz=6,vxtbtr-,bm-,zc-,lgn=9,qxl-,hnmv=3,xhd=7,tnt=9,rhz-,qxl-,ldv-,mp=2,fqzf-,kk=6,dxsch-,xhd-,ktdg=1,gcbx-,jpzs=1,zr-,dd=3,tv-,cnmr=4,dkxzp-,mlj-,zr=6,rzx-,fx=7,bkt=6,fbrrk=5,pln-,fhmjh-,fhx=2,rkqqlz=6,rhz=5,zvp-,kggkk=5,qb=1,kdm-,qkm=8,cps=2,dkjc=4,dgkp=4,cdvqnr-,grnfm=4,pln-,gb-,ztx-,ffh-,vf=5,llx-,snr=8,mgclg=5,gt-,rhz-,pl=8,lcf=5,rzx-,bqf-,bq-,pl=7,dk=4,gpn=1,hrsx-,rjtg-,qjhs-,xxpn=3,zst=4,gvz-,qsbgs=4,rkqqlz-,vzxxv-,fnrjl-,grnz=1,mdxkng-,gvk=1,zjd-,zvbn-,lxj-,mcj=9,dfmj-,xfsd-,tf=4,jcj=5,fj=9,nck-,srm-,qhd=6,nz-,kpn-,ztx-,gvz=2,fj=8,bk=5,bb=4,xhd-,lm-,bmxnh=6,lgk-,llxv-,sg=2,nthdl=9,zkcfgm=7,hk-,jpzs-,bjt-,jqb-,ffnzq=1,bk-,jmp-,bmxnh=3,zs-,zbdb=9,fbrrk-,rvz=1,mn=6,lkh-,rvz=4,zvp=7,qzpdbt-,ktdg-,tq-,mq=6,pzs=7,tv-,nf-,jpn-,mn-,cdrk=2,fgd=5,hhfxj=1,mv=9,cfnj-,fvv=6,nf=5,lgx-,fbkd-,snr=1,zmql=3,dj=6,chs=4,msc=5,hgvbj=4,npb=3,kkr-,tr-,kh-,xgv=2,kfcrmh-,zdrx=2,vqp=3,tf=5,pqz-,rhz-,dch=9,bk=5,lzsk-,hrq=2,kfcrmh-,kfzf-,mgclg=6,hdvrn-,svk=4,kgq-,fgd=8,nq-,cnmr=3,jh=2,hmxgqd-,lcpg=4,fbkd-,jqbbht-,tgp=9,jslrh=7,dch=2,gcbx=4,kfcrmh-,xz=1,qpfx-,llxv-,cmdv-,mr-,sgzn=9,mgclg-,brj-,tst=7,xd-,qjhs-,pxc=8,mq=5,fnf=4,srqc-,zkcfgm-,nck-,pkjs=5,hnmv-,fx=1,kph=3,xkb-,lnz=5,cps=5,qbx=3,jhn=1,nr=3,rhz-,qpfx=3,pzt=7,pjbt=6,hdzr=6,kkr-,rqx=1,llx=1,hbfp-,tr-,rxh-,qt=1,dbd-,jslrh-,xkb-,snr-,dqh=4,kdj-,jc=1,td=9,grnz-,mkxx=9,rkqqlz-,zbdb-,hrq-,gpn=9,qtn=5,kfr-,gt-,dbd-,xk-,kzhq-,kzcrx=8,bmxnh=3,ccvbl=7,vzxxv=1,tnm-,xd-,gdszll-,qbx-,td-,gt-,gq=3,hmxgqd-,nn=3,jmfc=8,kdh=7,kq-,kbc=7,qzpdbt=6,dzxmm-,cxph-,fvf=7,mm=3,zdrp-,qb-,zvbn=9,mj-,qz-,hmxgqd=9,dpl-,fgd=5,pzs=1,kh=1,zp=3,prj-,rkxr=1,cxph-,knf=7,zfgsk=7,dv=8,bx-,shqtb=5,zp-,kl=2,kdgb-,mq-,vx=7,vjt-,npnvn=3,tr=7,mm-,kgq=5,ccvbl=7,prj=8,jslrh-,jz-,kdh=1,jrbd=5,nl=6,hhm=5,nzg-,dl-,pkgb-,kzhq-,dbd-,zs=8,gd=6,tk=7,zkx=7,sk-,xcs=7,jtd=5,xg-,xjk=7,hnmv-,ffh-,kdh=3,tf=2,hdb-,kz-,kdj=6,nlmh=1,sjkg=9,bjt=9,rzx-,cps=5,lgx-,bc=7,dgq=6,kkr-,xfsd-,gpkk-,fhx-,tpclf=9,hz-,jl-,mf-,gpkk-,rdpc-,kbc=5,jhn-,hzc-,rqx=6,qpfx-,qnvr=8,vc-,tptsg-,mt-,kfr-,dgkp-,gd=7,mznq=7,ng=1,cnmr=9,bpt=5,hbxq-,sjgnj-,nzgqhh-,hpg=5,zkx=4,dgq-,dzxmm=8,fql=6,hnmv=8,fjd=1,kfzf-,nzg-,xkb=8,vqt-,shm=7,bmxnh=5,qkm-,svq-,srm-,pxc=9,fmf-,pqhx=5,dpl=2,pktd=4,hpr-,xgv-,dh=3,dfmj-,ffg=2,kfzf=3,fmf-,dxb=4,xzq-,ztn=8,xjk-,gp=8,cpv=7,gdqg=4,gcbx=1,hmxgqd-,rkxr=2,rlsd-,shm-,bk-,fj=4,hqg-,rvz=7,dvh=8,vvq=5,kph=9,npnvn-,svkh-,tk-,jcj-,lnz=2,zb-,nntz-,fgd-,hhm=4,dkjc=6,xg-,hpr=7,fqzf=5,kc=6,ldl-,tkt=8,zrjn=3,fcszl-,cfn=6,bpg-,gpn=3,hmxgqd=7,llxv-,gzt-,dzxmm-,lnz=3,nz=7,ds=1,tf=9,kbc=3,fj-,ztn=9,ndh=9,rcp=8,jmfc-,gb-,mmz-,jcd=3,vx=2,zm=5,dfx=6,jfsn=6,gq=6,zdrp-,hlls=8,kjbn=3,pzt=2,cfm-,xvn-,hdzr-,dkjc=5,srt-,fdhtxv-,qtn-,ftxnm-,mt-,dc=2,zkx-,pkjs=7,shqtb=5,jnd-,tjkfxg=7,kdm-,cx=1,mbtcm-,fdz=1,gpkk-,fjqj=1,rvz=2,jfj=3,vqpf-,rkqqlz-,vb=3,xlghf-,gpkk-,nl-,mkxx=3,dqh=7,qz=8,hcgz-,qtn=4,xjl-,qs-,pkgb-,kbg=8,xzfrs=4,zvp-,npnvn-,jcj-,dxsch-,tvzdr-,bvg-,zxt-,mmz=4,hk=3,rkqqlz=1,tfpj-,mt=5,jl=5,bh=3,jt=7,mj=7,zbdb-,jd=5,lzcvmq-,bk-,mgclg-,lkh=8,hpr=6,vx=3,pghc-,dv-,mfhk-,hsl-,mlj=9,bjt=3,ktdg-,hz-,dv=8,zrgctc-,fq=3,lkmqbg=2,xxpn-,ftvjzf=3,zst-,tjpn=7,nn=2,hrq-,sg-,zst-,tnm=8,zkcfgm=4,tkt=2,vjt=3,qlbr=1,nr-,jh-,jtmj=8,mn=5,cvk-,sjf=5,mhm=7,brj-,kfr-,szs=6,dz=1,zn-,jlb-,tf=2,shqtb-,jk=7,zdrp-,dp-,sgzn=2,bmxnh-,xlghf=2,nt=2,qjhs=7,zt-,rvz=7,pc-,jpn-,qzpdbt=2,bh-,jk-,jjt-,hnr=9,jxz=8,cv-,fdz-,kjv-,psf=2,cxph=6,cgppx=1,cgppx-,jtmj-,jfsn=3,nlmh-,zm-,llx=4,sjkg=6,kdj-,tdpr=8,pvg=4,dqh=3,hn-,qhd=9,fmf=5,nz=8,xvn-,mxz-,kgl=2,qs=8,nf=5,zxt=9,jqq-,mmcf=8,cfm-,dg=3,zrjn-,vqpf-,llxv=6,jt=6,rkxr-,jg=4,jnd=6,gvz=4,jq=8,hpbm-,cvk-,fqzf=6,pg-,tc=5,zdrx-,pzs-,hpbm-,pp=8,vjt-,xlghf-,ktdg=5,vqt-,hgvbj-,cx=8,psf-,tdpr=4,tt-,shm-,zrjn-,dp=2,stx-,hz-,vjp-,qkm=2,kq-,mm=9,zjbgh-,mv=8,rkqqlz-,tk-,rdm-,kkr-,cmdv=3,srm=7,lm-,fsn=1,kbg-,lcpg-,mlj=2,tng=2,dzdn-,qbbb=4,dp=7,jh=8,mznq=1,kk-,hpg-,kbt=9,jq-,td=1,brj-,hsl-,pj=3,fhmjh-,gvz-,hgvbj-,tk=5,tvzdr=9,zt=9,jqbbht-,pxc=4,svk-,fvv=8,jp=8,vvq=6,zmql-,pp=2,lcpg-,pvc=8,fn-,bb=9,bkt=3,hn-,dz-,zst=6,zjbgh=7,bmxnh-,fsn=2,kgj-,qjrk=2,jnd-,bmxnh=6,hgvbj=3,xkvrx-,fvf=8,hlls-,vb=1,dj-,rxh-,lvf-,gd-,bl=6,lxj=3,ldv=6,lfk=1,vg=4,xvpqh-,fx-,jl=8,hbfp=4,bfg=2,tptsg-,kggkk=7,ss=7,fvf=6,tjkfxg-,hz-,hgvbj-,mdxkng-,kh=4,xsf-,vf=3,hgvbj-,fx-,fnf=1,lnz-,hr=3,chs-,tk=7
diff --git a/src/day_15.rs b/src/day_15.rs
new file mode 100644
index 0000000..c2b7806
--- /dev/null
+++ b/src/day_15.rs
@@ -0,0 +1,96 @@
+use std::collections::HashMap;
+
+use anyhow::Context;
+
+use crate::{Problem, Solution};
+
+pub struct Day15;
+
+impl Problem for Day15 {
+ const DAY: u8 = 15;
+
+ const INPUT: &'static str = include_str!("../input/day_15.txt");
+}
+
+impl Solution for Day15 {
+ type Answer1 = usize;
+
+ type Answer2 = usize;
+
+ fn part_1(input: &str) -> anyhow::Result<Self::Answer1> {
+ Ok(input.trim().split(',').map(hash).sum())
+ // 509784 ==
+ }
+
+ fn part_2(input: &str) -> anyhow::Result<Self::Answer2> {
+ Ok(input
+ .trim()
+ .split(',')
+ .try_fold(Boxes::new(), process_step)?
+ .into_iter()
+ .map(calculate_power)
+ .sum())
+
+ // 339464 >
+ // 230197 ==
+ }
+}
+
+type Lenses = Vec<(String, usize)>;
+type Boxes = HashMap<usize, Lenses>;
+
+fn hash(s: &str) -> usize {
+ s.trim()
+ .chars()
+ .fold(0, |acc, c| (acc + c as usize) * 17 % 256)
+}
+
+fn process_step(mut acc: Boxes, s: &str) -> anyhow::Result<Boxes> {
+ let (label, power) = s.split_once(['-', '=']).context("Failed to parse input")?;
+
+ let key = hash(label);
+ let lenses = acc.entry(key).or_default();
+
+ match lenses.iter().position(|(s, _)| s == label) {
+ pos if !power.is_empty() => {
+ lenses.push((label.to_owned(), power.parse()?));
+ if let Some(index) = pos {
+ lenses.swap_remove(index);
+ }
+ }
+ Some(index) => {
+ lenses.remove(index);
+ if lenses.is_empty() {
+ acc.remove(&key);
+ }
+ }
+ _ => {}
+ };
+
+ Ok(acc)
+}
+
+fn calculate_power((id, lenses): (usize, Lenses)) -> usize {
+ lenses
+ .into_iter()
+ .enumerate()
+ .map(|(i, (_, len))| (id + 1) * (i + 1) * len)
+ .sum::<usize>()
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ const INPUT: &str = "rn=1,cm-,qp=3,cm=2,qp-,pc=4,ot=9,ab=5,pc-,pc=6,ot=7";
+
+ #[test]
+ fn test_part_1() -> anyhow::Result<()> {
+ Ok(assert_eq!(1320, Day15::part_1(INPUT)?))
+ }
+
+ #[test]
+ fn test_part_2() -> anyhow::Result<()> {
+ Ok(assert_eq!(145, Day15::part_2(INPUT)?))
+ }
+}
diff --git a/src/lib.rs b/src/lib.rs
index 18ea6fa..620bcf0 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -2,9 +2,6 @@
iterator_try_collect,
iter_array_chunks,
array_windows,
- array_chunks,
- let_chains,
- slice_group_by,
iter_intersperse
)]
@@ -22,6 +19,7 @@ pub mod day_11;
pub mod day_12;
pub mod day_13;
pub mod day_14;
+pub mod day_15;
pub trait Problem {
const DAY: u8;
diff --git a/src/main.rs b/src/main.rs
index dee8e7f..20896a1 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,7 +1,7 @@
use aoc_2023::{
day_01::Day01, day_02::Day02, day_03::Day03, day_04::Day04, day_05::Day05, day_06::Day06,
day_07::Day07, day_08::Day08, day_09::Day09, day_10::Day10, day_11::Day11, day_12::Day12,
- day_13::Day13, day_14::Day14, Solution,
+ day_13::Day13, day_14::Day14, day_15::Day15, Solution,
};
fn main() -> anyhow::Result<()> {
@@ -19,6 +19,7 @@ fn main() -> anyhow::Result<()> {
Day12::solve()?;
Day13::solve()?;
Day14::solve()?;
+ Day15::solve()?;
Ok(())
}