d15
This commit is contained in:
1 parent
0f5dcc20ce
commit
8683c9c8b3
4 files changed
+77
No files matched your search
@@ -0,0 +1 @@
|
||||
bvm=6,mn-,gt=2,bc=2,nfn=1,cz-,ptq-,mt-,flj=4,dmnj=4,jppb=9,vzzgbv-,ccj=7,jbkdsm-,jfzcm-,zxf-,scjz=5,gqz-,tbs-,qzcb-,jg=7,nvz=7,zf=9,mkj-,nc=7,gsnbj-,bcs-,cgb=5,zljm=7,fsqtxt=3,zbm=5,lnd-,ddf-,qx-,jc-,xh-,kxvc-,fzm-,sxfqnm=1,lnd-,jrxgf=8,zbm-,dp-,lj-,cqp-,bb=4,clf-,msbxx-,vft-,nsstz-,scqj=4,ns-,jjr=1,lqzlm-,zdxd-,cf=6,tbs-,vb=9,nbk-,bdt=3,lhd=8,tzmz=9,rpc=3,rnx-,lhhbz-,vdt=7,kqq=3,np-,cqk=9,hcld-,fsqtxt-,vglgq-,xrn-,xnvv=3,ccj=5,zf-,kc=7,jbkdsm=1,vpl=1,hx=9,mc-,hk-,qk-,nc=1,tsnv=9,dztd=4,bgv-,tt=1,hqh-,ljr=4,znb=9,qzcb=3,prf-,jn=9,bdt-,xr-,vpl=3,pkx=7,vdt=7,zt-,rv=2,bkx-,cpc=4,cf-,fk=4,mrx-,qrz=6,ljjg=5,qhbl-,fsqtxt-,cg-,kncgk-,jjr=2,jqrkf-,sdjrvt=7,msv=6,hxl=1,czgrc=8,hx=9,dsxh=9,nrv=5,hqb-,xt=6,szs=2,hbq-,vs-,dsb=7,fzm-,sb-,rn-,smc-,fxnx-,zx-,clf-,xmp-,ktp=6,kch=3,xnvv=9,cg=5,rzd-,mbm=8,qfp=1,sn-,gvmct-,pnq=9,zljm-,hcld-,ddf-,cbkm-,qt=7,rngsk-,gqgd-,qzcb-,qvmctp-,sn-,hq=3,cd-,kph-,zxf-,zgxn=4,tbdbvh-,qttxq-,dndl-,vdt=9,qnc-,qbbbv=7,bh-,vrgf-,jf=4,rv=9,tcllf-,lq-,qpp=1,tcllf=6,bpq-,ff=5,cpc-,qtj-,zfxr=4,rvt-,lk=8,lb=2,xt=7,hq-,dn=5,gkms-,vpl=8,gscr-,jm-,npkcv=2,dv-,jbkdsm-,bb=5,pkx-,plm=5,hvh=9,skj=9,sb-,qvm=3,hq-,gqgd=4,dfm-,tbs-,cg-,fv-,xmp-,kxn=2,nv-,tsbk-,fsqs=7,fsqs=5,pc=1,ptq-,xpsf-,dbx-,jx-,gds=8,ndhl=5,ctck-,fxlq-,grs=8,bvm-,dpcsth-,scqj-,qt-,dfm-,rzkj=4,hqb-,cf-,lmzdj=6,bvm=7,kph=5,ctck=6,mmh-,mzc=6,nsstz-,vqk-,hk-,xjx-,gthv-,ghg-,rxglp-,mmh=4,dp=4,lb-,ckp-,tcjb=7,nzq=2,rvt=3,zv-,jmq=3,qvmctp-,cz-,xrn-,fx=9,sn-,zlv=7,vdk=8,sdjrvt=6,zhqdqm=6,rzd-,qzcb-,gkms-,cbgh-,vdhc=6,rkx=6,fxvvt=4,fzb=1,zlbv-,qfp=7,qvm-,pkx=3,fxlq=6,nrv-,qrz-,tbdbvh=3,kqd=3,sj=7,cj-,kqb-,tc-,nrp=1,qqvn=9,pmq-,kqq=4,kmpq-,ljq=3,ksxkbn=5,drbrb=7,np=8,lxkb=5,sgfv-,tcc=4,mx-,rj=1,xk-,xpsf-,skc=6,kjzp=7,gn-,xjd-,gsnbj=5,ccj=1,ql=9,xrn-,sz=1,tbs-,dc=7,hjjd-,smb=5,kp-,fxt-,qpp-,lb-,nz-,mn-,bpq-,rxglp=3,kbp-,rn-,qhdf-,gkms-,qnc-,gxjgv-,hz=4,dhpbb=7,cbgh-,lszh=5,gds=5,mmrbd-,mcl-,qnm-,lgzsh=9,fsqtxt=8,rzkj=1,fzm=7,xr-,ztsqm-,zgf=3,dp-,lzb=6,vjqsfl=4,km=6,chf=9,vlftj=8,zpjcm-,xrn=3,qk=1,vb-,ptq=8,zs-,fv-,hb=2,kqd-,pm=7,kv=1,kph-,vdhc=7,dsxl=8,xf=6,ckp=9,dm-,phv=4,rm-,ft=3,qbbbv=2,bdt-,qmdpz=8,mx-,nprdk-,cnn-,gf=8,nq=5,nsstz=7,gld=7,bvm=5,jfdk=7,kz=8,skj-,msv-,cdn-,qnc=5,hlr-,prf-,btfm=7,vd=1,pc=7,tsf=9,fn-,vkxq-,kb-,bjkmj=4,xbx-,jx-,fq=1,fm=9,fk-,cr-,rpc=5,mc-,dsb-,vv=3,nvz-,jt=6,kth=2,bgv-,vqk-,vss=7,mmh=8,nfn-,zjlc=1,fjdjn=9,mx=3,tzx=8,fxt=9,ggz=1,nzqn=7,lrspkv-,vdt=7,vhbdb-,mmnhjn=2,qpp-,xpsf-,pc-,vjqsfl-,vss-,qv-,fjdjn-,jx=9,tmd=7,gk-,sr=9,nzqn=5,tbdbvh-,xt-,dr=8,th=8,vkxq=1,rdz=7,vvbv=1,hzr-,lln-,jp=9,vdd-,gnzd=2,vpgfjs-,zkhm=9,lt-,nz-,zn-,gld-,qxrc-,tcm=3,qtj=6,lg=9,sj=6,mmnhjn=6,jn-,lt=2,zxf-,lln-,gf=3,scjz-,bn-,fv=9,vft=5,xr=4,fxvvt=2,rc-,qj=2,gx=9,lntx=6,rzd=6,sxfqnm=4,dn=2,fsqsc=1,rvt-,qrz-,kkq-,vpgfjs-,jbsv=1,bblqrt-,gg-,dqsc-,gskl=9,kch=6,zkhm=8,xkl=4,gp-,pmdhcb-,jn-,kncgk=4,phv-,tzx=5,fjdjn=8,vprd=9,rz-,ll-,pjf=2,tbdbvh=6,bb-,hzr-,vrgf-,fk-,mrx-,zj=3,fsqtxt=6,rhltg=2,qkpg=5,lgzsh-,slsz-,bpq-,szs-,vdt=8,ppnc=4,pq-,fsqsc=4,hdt-,fkk=9,tmd=1,vzzgbv-,ztrtr-,vglgq=8,mx-,ff-,prf=3,qj=4,prf=6,lz-,bpq-,kph-,mhxd=5,kxn=7,nzv=7,gvh-,bscdp=6,gnzd=3,nv-,xrn=9,qtn=1,lt-,btfm-,cz-,ttmsd-,ktp-,kb-,qmdpz-,gvmct-,pjdr=5,gld=2,nzqn-,dt-,lc=6,tbdbvh=6,msldhq-,pcd-,jqr=9,jcb=2,nf-,scqj=4,bb-,lk=9,chht=8,bx=8,kjzp-,lhd=9,lgzsh=9,bgv-,tcm-,dmnj=2,szn-,lcc=9,cj-,sbk-,vdd=3,mn-,cdf=2,nh-,fjdjn=4,zpf-,dm=1,xq-,rnx-,qkg=9,nzv=2,ft-,zlv-,gsnbj=7,hb=9,gnf=3,kkq=5,fsqs=7,nprdk-,fxvvt-,mmmznv=4,ml-,mc=4,mx-,rz=6,zfjdds-,sz=5,nfn-,mt=3,md=2,qnc-,plm=4,phv-,kmpq=2,dn=5,btfm-,pkx-,ksxkbn=9,qnc-,kth-,lh=9,zktn=2,zrqm-,qqvn-,qqlx=2,kth=5,lxkb-,qn=3,msbxx-,qpv-,qz=3,dhpbb-,gmn-,lt=1,xjd=8,lsk=4,jbkdsm=9,sx=1,nbd=6,zljm=7,ks-,jgmh-,pk=9,kjzp=3,zrqm=8,zfjdds-,qrnx-,ff=3,jb-,ck-,fn=2,dsb=3,nvz-,gthv=2,njnn-,frz=8,dqsc=9,gnt-,rh=8,zt-,qfp-,chk=2,qf=9,gx=8,lntx-,kh-,rf=8,ls-,lsk-,zn-,jb=7,kxn=2,bx-,qhbl-,nc-,bscdp=7,lq=5,jc-,skj-,rvcc=8,gp-,xpsf=2,tk=4,lcd-,md-,scv=3,lzvgs=4,cqp-,kjzp-,vxv=1,pk-,gvmct=3,fjdjn=7,jcb=5,hcld=8,hmm-,chht=9,msldhq-,bf=4,nbh=8,tsnv-,qdv-,skj-,vxv-,mcl-,zk=1,dfp=2,dtqq=2,smc-,jbsv=5,qlf-,vft-,dj-,zx=5,pc-,fxvvt-,ptl-,pfmq-,tn-,gskl=2,qc-,tt-,dr=8,mkj=2,nf=5,lzb=8,ll-,fxlq=3,dl-,sj-,bblqrt=2,hgz-,mmrbd=8,xts-,mm-,bp-,nv-,dhpbb-,zv=2,msv-,dj=4,qv-,cr=9,pcd=8,nzv-,dgdtp-,dm=1,chf=8,hv=9,trn=1,bblqrt-,ggz-,jmq=1,kmpq-,gg=3,ptl-,tsbk=7,nrv=3,lt=9,hdt=4,dhbn=4,ptl=9,tzf-,xrn-,ppnc=8,tcc=5,tcjb=4,hck-,vpgfjs-,dm=1,gg=9,dl=5,bpq-,bc-,dfm=2,ljq-,zfxr-,kgn=7,tcjb-,kqd-,jgmh=2,rm-,lntx=6,fzm=9,bkx-,sxfqnm=8,nprdk=4,zbm-,vft=9,jp-,cdf=4,dz-,cqp-,cnn-,nxgxx-,ljq=3,pm=7,mhxd-,gshf-,fx=1,qfj=4,qnm-,xzt-,gx-,lntx-,fkgtl-,nbh=1,qttxq=5,fjdjn-,hzr=4,kph-,nsmvkh=9,qfp-,dr=2,xkl=4,hmm-,nzv-,njnn=2,rzd-,sdjrvt=5,qz=2,zlbv=5,tc=3,dztd=3,bh-,btfm=5,chk=1,gnf-,gds-,qnm-,dp-,hdt-,gdf=9,jxlg=6,hcld=8,qqlx=3,mmmznv=5,cpc-,zt-,tsnv=2,hb-,nh-,rnx-,np-,fq-,zbs-,pkx=2,nkg-,dhpbb-,nzv=8,dr=9,rm-,cgjdd-,nxgxx=4,jjr=5,rmfb-,vlftj-,kqd-,hb=7,rn=3,pf-,lzb-,qpp=6,pm=2,zjlc=5,kjzp-,nbh-,lrspkv=6,ls=5,pkx-,vlftj-,tcm-,drbrb=1,qnm-,bdt=8,chf=9,dpcsth=5,nc=2,jbsv-,kms=4,qtn=3,tzxLine truncated
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
:- use_module(library(pio)).
|
||||
:- use_module(library(clpfd)).
|
||||
:- initialization(main, main).
|
||||
|
||||
main([FileName|_]) :-
|
||||
input(FileName, Input),
|
||||
hashes(Input, Hash),
|
||||
writef('Answer=%t\n', [Hash]).
|
||||
|
||||
hashes(Strs, Hash) :-
|
||||
concurrent_maplist(reverse, Strs, RStrs),
|
||||
concurrent_maplist(hash, RStrs, Hashes),
|
||||
sum_list(Hashes, Hash).
|
||||
|
||||
hash([], 0).
|
||||
hash([C|Str], Hash) :- hash(Str, Prev), Hash is (Prev + C)*17 mod 256.
|
||||
|
||||
% Input stuff
|
||||
input(FileName, Input) :- phrase_from_file(string(Input), FileName).
|
||||
|
||||
string([]) --> (eos; "\n"), !.
|
||||
string([Item|Items]) --> item(Item), string(Items).
|
||||
|
||||
item([]) --> (","; "\n"; eos), !.
|
||||
item([C|Chars]) --> [C], item(Chars).
|
||||
|
||||
eos([], []).
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
:- use_module(library(pio)).
|
||||
:- use_module(library(dcg/basics)).
|
||||
:- use_module(library(clpfd)).
|
||||
:- initialization(main, main).
|
||||
|
||||
main([FileName|_]) :-
|
||||
input(FileName, Actions),
|
||||
perform_all(Actions, Boxes),
|
||||
findall(
|
||||
Power,
|
||||
( nth1(BoxI, Boxes, _-Box),
|
||||
nth1(LensI, Box, _-Focal),
|
||||
Power is BoxI * LensI * Focal),
|
||||
Powers),
|
||||
sum_list(Powers, Answer),
|
||||
writef('Answer=%t\n', [Answer]).
|
||||
|
||||
perform_all(Actions, FinalBoxes) :-
|
||||
length(EmptyBoxes, 256),
|
||||
foldl([N-[], N, NextN]>>(NextN is N + 1), EmptyBoxes, 0, _),
|
||||
foldl(perform, Actions, EmptyBoxes, FinalBoxes).
|
||||
|
||||
perform(BoxN-Action-Label, Before, After) :-
|
||||
nth0(BoxN, Before, BoxN-Box),
|
||||
call(Action, Label, Box, NewBox),
|
||||
select(BoxN-Box, Before, BoxN-NewBox, After).
|
||||
|
||||
remove(_, [], []).
|
||||
remove(Label, [Label-_|Box], Box) :- !.
|
||||
remove(Label, [Lens|Box], [Lens|NewBox]) :- remove(Label, Box, NewBox).
|
||||
|
||||
add(F, Label, OldBox, NewBox) :- select(Label-_, OldBox, Label-F, NewBox), !.
|
||||
add(F, Label, OldBox, NewBox) :- append(OldBox, [Label-F], NewBox).
|
||||
|
||||
% Input stuff. [0-(add-1)-"rn", 3-remove-"cm", ...]
|
||||
input(Name, Actions) :- phrase_from_file(insts(Actions), Name).
|
||||
|
||||
insts([]) --> (eos; "\n"), !.
|
||||
insts([Box-Action-LabelS|Items]) -->
|
||||
item(Label-Action), insts(Items),
|
||||
{reverse(Label, Rev), hash(Rev, Box), string_codes(LabelS, Label)}.
|
||||
|
||||
item([]-remove) --> "-", (","; "\n"; eos), !.
|
||||
item([]-add(N)) --> "=", number(N), (","; "\n"; eos), !.
|
||||
item([C|Chars]-X) --> [C], item(Chars-X).
|
||||
|
||||
hash([], 0).
|
||||
hash([C|Str], Hash) :- hash(Str, Prev), Hash is (Prev + C)*17 mod 256.
|
||||
@@ -0,0 +1 @@
|
||||
rn=1,cm-,qp=3,cm=2,qp-,pc=4,ot=9,ab=5,pc-,pc=6,ot=7
|
||||
Reference in new issue
Block a user