diff options
| author | nekineki <nekineki@nekineki.net> | 2025-12-11 17:38:11 +0100 |
|---|---|---|
| committer | nekineki <nekineki@nekineki.net> | 2025-12-11 17:40:09 +0100 |
| commit | c245d85f3d488b0c580f7fe6b44147abb775ee20 (patch) | |
| tree | 773c885c213a623f368e5f4bf8a055224770becf | |
| parent | 93bbed1d8dae3bbbb785eeeb0732fa33a72a7acf (diff) | |
day11
| -rwxr-xr-x | 2025/day11.py | 51 | ||||
| -rw-r--r-- | 2025/in/day11.pzl | 568 | ||||
| -rw-r--r-- | 2025/in/day11.ref | 10 | ||||
| -rw-r--r-- | 2025/in/day11_2.ref | 13 |
4 files changed, 642 insertions, 0 deletions
diff --git a/2025/day11.py b/2025/day11.py new file mode 100755 index 0000000..5e9df65 --- /dev/null +++ b/2025/day11.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 +from functools import reduce +from re import findall +from copy import deepcopy +import sys +# import numpy as np + +filename = sys.argv[1] if len(sys.argv) == 2 \ + else "in/" + sys.argv[0].split('/')[-1].rstrip(".py") + ".pzl" +data = open(filename).read() +lines = data.rstrip('\n').split('\n') + +D = dict() +for line in lines: + l, r = line.split(':') + r = r.strip().split(' ') + if l in D: + assert False + D[l] = r + +def dfs(start, end, visited, D, depth=0): + if start in visited: + return 0 + visited.add(start) + + if start == end: + return 1 + + s = 0 + if start in D: + for node in D[start]: + s += dfs(node, end, visited.copy(), D, depth+1) + else: + if start != 'out': + print('end of path', start) + return s +res1 = dfs('you', 'out', set(), D) + +# export graphviz +# for l in D: +# for r in D[l]: +# print(f"{l} -> {r}"); + +p1 = dfs('svr', 'fft' , set(['rmc', 'ibq', 'zdx', 'foc']), D) +p2 = dfs('fft', 'dac' , set(['iwg', 'kxp', 'fnk', 'you']), D) +p3 = dfs('dac', 'out' , set(), D) +res2 = p1 * p2 * p3 + +print('res1:', res1) +print('res2:', res2) + diff --git a/2025/in/day11.pzl b/2025/in/day11.pzl new file mode 100644 index 0000000..bca4ebb --- /dev/null +++ b/2025/in/day11.pzl @@ -0,0 +1,568 @@ +shx: usd tnq min tsg shc ilw wje wui iyi jvd lab syu jap lyc utc ees +dke: out +iit: xpy +rwz: nht +fnk: woh vaa hpc aql dfq qct obn vdy otq bbf kjz jbo +azf: ogd xuz oll rzq +ljq: jcx +muz: dnx dac fgb +ejr: foc zdx rmc +ayv: fvz +zkf: wkm mpe zps +odi: ybq jxb +job: que reh twn +crg: qje +jph: yhv +wsq: bnb xzs rgl +wny: zfk sqb +rjz: kmz rvt +rmc: bmr ycq mzw myd rxa uwx bgg two gtu +beg: kxp iwg you +vxz: omz +gkk: fns +nmv: yhn mtv wwk +pry: tea kln dzt jvq pak qqc vuj phb wny +wfb: ckw ogm +bnn: ibq zdx rmc +tqc: zvk +pwx: mgx emq +qct: zsg lgp eoa cqg wfb +eoa: yga ckw rub +yhv: ncm uve mrr bzu +lgp: ckw +dfl: aux +zoi: drr +huu: fns rol +tqz: klf gsz efl +jfp: fns rol uqy +tfp: qqt ebp tqz +bzu: ffm vsu +xiw: rmc foc ibq +mpe: out +hzk: ibq foc +qts: tjb ztv +tto: mkw +bjp: rmc zdx +ubu: anv +wed: iro njj syi nku +mfd: tjb +ckp: xlr qne +kvg: lqa kvy +zvk: ybq pry jxb dmu +rai: cqm rdk +bgg: pur npq +ljb: anv dum hdz +fgh: jqs sqp ept hnx +lwm: piv mgx +amg: qcp +phb: aeu hgi niz bjx +vcv: iec +zsg: ogm ckw rub +ggz: kxp iwg you fnk +rpq: cqm rdk +zey: cpt xiw xjq +lig: aye wtc wbh agg +sqb: xwo +tjb: oqi snu hnn cxp zka eoq sce igg crr kom xvg xea cnn dwd rvv jva +dzt: zuh yhg ocy ubu ljb +vsn: fnk you iwg kxp +ept: qwp +lcj: ugo pkl +tea: hgi aeu bjx niz +oqi: csa umy +bbf: dfl jcu xda sfg +cqm: zpq amg map +cqa: pkl ugo jcx lgk +xdw: fcw olh svq huu nnx +jlb: oxf bjp +iro: rgp +ees: rpm mxd umf +cya: iec bnn +ucp: bzu uve akd mrr +ycq: bnb gav rgl +hcg: whz egh grp +npq: qne xlr koe +hgi: rtq uxh aog sgg +rav: rai +eyb: jft +iua: dnx +edk: trd akj aok +ewv: ocy ubu yhg zuh +drr: lwp +lyc: shp uwq pwx +zjm: cxy jxb +ujq: foc zdx rmc +sfg: qbi +uwk: hos wvu ggd +uio: qbk xqj job +jvk: ept jqs +xex: hzk ipu ugl +igg: wed +nkg: pxc swh +maa: egh whz +rbm: jph xpy clk +ehg: rmc zdx ibq foc +kdo: bno bqe +lrw: uqy +tsg: shp +iri: gav +mgx: yzx +min: rpm mxd +tlq: fns rol uqy +jxr: tnq tsg shc utc +pld: out +grp: ztv +jcx: pch +fgb: buj drr +hcr: omz +zkn: dmu pry jxb ybq +vbi: you fnk kxp +hil: hos wvu ggd +dbx: dmu pry jxb ybq +lvp: yzx +ptf: gkc uio jsu zny +lwp: you fnk iwg kxp +aqt: lhq upa +thg: olc +mvu: uwk sfd qwn ipb +kxp: uvd kjz vaa woh aql ptf qct obn rav hgf otq bbf jbo hpc gsw sgm ywv vdy +ohu: ebp +lzw: znc +ztv: hnn oqi snu zka eoq cxp igg khi fpj sce xvg crr dwd cnn rvv jva vks axk +jtq: oxd +prw: tif zex jkb lwe +ebp: gsz efl klf +map: ima wye qcp +zny: job +glc: fft tuw +uts: tfp zze +ivv: hil ipb qwn +cxp: dms +syu: hct mcf +gjy: jfp omz +zpq: btn qcp wye +sgg: byk +nku: ffr +gzv: lqa kvy +oge: uwk hil ipb qwn +xuz: iwg kxp you +two: idl jvk tqn +gsw: gkc zny uio +wnt: vlj puq azf olc +wbh: uvz ybl +foc: vzq ycq mzw fxv wsq +vgv: mss oti pne tqc +pak: hgi gcq niz +wmb: rdo lig nsv +dwd: uoq +mhi: out +kie: uah nkg +pdg: beg vsn +upa: dnh qim lss +nzr: lvp +fmm: gav bnb +tqn: sqp hnx ozd jqs +hse: cxy dmu pry jxb ybq +fpj: nbz qfe +wqj: vxv akj trd aok +vzx: iju fgd jft +eak: out +jhn: zps +tif: usi wce +hqa: rmc ibq +ihe: wyz +lfp: gzv fsd kvg aix +puq: hir ogd +pch: hqa nnl ydp +anv: mkw suv tlq gkk +jmb: dac fgb +ruo: yzx +mxd: fhp sjx dfy +nbf: ctg pxc swh +uvd: ayv rpq +idl: ozd hnx sqp jqs +mry: ruo mfd nht +ybl: pdf vbi vsn +yvt: dmr kdo yyb osw +brq: vqg wzq lqv pqy +hgf: rpq +lhq: foe lss +nor: jim +ruk: lgh +fsd: lqa gkv +ziu: tjb +yhg: dum anv tto +aql: jsu +ugo: rtl ohg sri +enz: fjj uts ees jap lyc ilw usd tnq min iyi wui wje +xpm: fft tuw yss xex +vks: vsh cqa +gkv: fnk iwg kxp +aok: jxb dmu cxy +prc: jph lna xpy +hyp: cya +akj: pry ybq +ukn: rmc ibq zdx +hct: ino qts +lab: mry nzr hje rwz +wce: fns uqy +rfb: xzs +efl: yzx ztv +kln: sqb jim +koe: hbd njh uai ptb +mss: zkn +ozl: ztv +vuj: bjx niz hgi gcq aeu +osw: fvt bno +jkb: wce +jft: out +lss: fwv edk +fgd: out +suv: rol uqy +uer: dnx zoi +ilw: uen umg gco qhj jwi +yga: hvl +qbk: reh twn que +xqj: twn +vdy: uxj rbm prc +shp: piv emq +aam: fcw huu svq nnx +uvz: vbi ewo beg vsn +nbz: nkg +xga: yzx tjb +usd: lwm pwx +uxj: clk jph +trd: pry jxb cxy dmu +otm: vgv qje wyz +jwi: hcg +klf: yzx +iec: zdx ibq +qbi: rjz znc gye +kvy: you fnk kxp +zze: tqz +hjj: rzq xuz ogd +uxh: lrw +ogm: mkm hvl tmd +csa: njj hyp nku +kjz: jcu xda wmd +jsu: syh qbk job +qcp: eak nil pld dke +reh: eru zkf ico dps +ggd: iwg fnk +wyz: mss tqc pne +twn: eru ico dps zkf +gco: maa +caj: odi +sgm: rpq ayv +rzq: kxp fnk +rtq: byk sxw +dnx: drr +bno: iwg +mcj: ibq foc +qwp: dmu cxy pry jxb +axk: ljq cqa vsh +btn: pld nil eak oln dke +ogd: fnk kxp iwg +wkm: out +aku: fhg aam +lgk: ohg +wye: nil +jqz: kvg +fns: vlb wmb eza nmv wnt wrv mxa pbs snn +omz: rol uqy +uur: fns rol uqy +buj: qbz +wzx: yvt wwk mtv +yyb: fvt bno +sxw: fns +gkc: qbk syh xqj job +obn: zsg lgp eoa cqg wfb +lqa: kxp fnk +rub: sgv hvl mkm +gml: ztv +njh: yvf +tbf: gco uen jwi +zis: fax +fwv: vxv +gtu: lhq +iuz: hdx +ptb: txn cpk +hvl: itd +jim: prw xwo +ctg: cpt mcj ujq xjq +cpt: rmc zdx ibq +que: ico dps zkf jhn +ktp: wwk +olh: uqy +vjv: mhi iju +erx: ybq pry +znc: brq nhw dqw rvt kmz +dqw: vqg lqv wzq rxc pqy +qwn: ggd +jsh: rdo +oxd: pry +ncm: pwb ffm vsu +dum: tlq lpq +jxb: lnm jrb kpk kln ewv +sce: hwp maj gpj +czz: nkg nbf +pxc: xjq cpt mcj +ino: tjb +yzx: crr kom xvg xea cnn dwd rvv axk jva oqi snu hnn cxp eoq zka fpj sce igg khi +nil: out +foe: fwv edk lrz +uwq: piv ziu emq lyr +hwp: bjp ukn +xfb: yzx +gav: caj dcs iuz +lna: hfp bje +rdk: amg +nnx: fns +zfk: raq xwo +rvt: vqg wzq lqv +iju: out +umg: hcg tnx +aix: kvy +svr: jxr shx enz uha gjl +dkt: out +gjl: ees uts utc lyc jap syu tbf lab jvd wui wje ilw tsg shc qbx min tnq usd +ihb: fhg xdw +lqv: out +dps: mpe +gpj: bqd ukn +sri: ehg hqa ydp nnl +bnb: dcs caj epv +eno: fvt bqe +swh: mcj xjq +pbs: iua jmb muz +qim: lrz rdb wqj +khi: czz kie nbz +eru: dkt wkm mpe +dms: nbf +byk: rol fns +raq: jkb xde zex tif +oll: fnk +vzq: lhq gjp +zex: wce usi +xjq: ibq +toi: xfb xga qts +oks: aix fsd +lwe: wce +mkw: uqy fns rol +ipb: ggd wvu +uoq: nku njj syi +pwb: out +vlj: hir oll rzq ogd xuz +ief: fns +mig: byk +uen: maa +gcq: rtq mig aog sgg +zdx: and otm ycq iri vzq aqt wsq gtu crg two bgg rxa ihe fmm myd fxv bmr zis rfb +rol: ktp ivv lfp gwh wnt wrv wmb mof mvu thg +exq: zuh yhg ubu ocy +nmf: lig nsv +wmd: lzw +dnh: wqj lrz rdb edk +wui: dvj mxd rpm +yss: ugl hzk ejr +rgl: caj jtq +mxa: hjj +xda: qbi aux lzw +rtx: iju jft fgd +bqe: kxp fnk you +dcs: dbx odi +utr: ckp npq +ozd: ygq qwp +fcw: rol fns uqy +fax: foe +qje: pne tqc +wek: qqt ebp +eza: lig nsv +woh: cqg eoa lgp zsg +dvj: dxc +myd: npq pur +eoq: nbz +ydp: zdx ibq foc rmc +hpc: rbm prc iit +tmd: eyb vzx rtx +njj: cya ffr +ffm: out +clk: yhv bje +zps: out +ckw: hvl tmd wti +hos: kxp iwg +mof: rdo +tnx: whz +yvf: cxy dmu jxb +uah: ctg zey +zka: uoq umy +jcu: qbi +lpq: rol +qqc: qod vxz gjy +akd: vsu pwb +hir: kxp you +and: pur npq +pkl: rtl +qqt: ozl gsz efl +ywv: wmd sfg jcu +sez: ggz lwp qbz +nsv: agg +rtl: ehg nnl +fvz: map +jqs: qwp +cxy: nor kln tea exq pak qqc ihb aku +nhw: vqg pqy rxc +yhn: eno yyb kdo osw +aog: lrw sxw byk +vsu: out +kpk: hcr qod gjy lgh +pur: qne xlr +ocy: hdz tto +kmz: pqy +osb: yhg ljb ubu +ffr: bnn +jva: xpm wml +oti: zvk zjm +wwk: eno yyb +wrv: jhf jmb uer muz iua +nnl: rmc +svq: fns +crr: ljq lcj +tuw: ejr ipu ugl +xpy: ucp yhv bje +syi: vcv +hnx: qwp ygq hse +lvj: hcr qod gjy lgh +wtc: ybl pdg +pne: zvk zjm zkn +uwx: jvk idl tqn +txn: ybq pry cxy +ohg: nnl hqa ydp +xzs: epv caj iuz jtq +otq: iit rbm +lrz: trd akj vxv aok +pqy: out +itd: jft +sgv: eyb vzx vjv rtx +sjx: tjb +mcf: qts xga xfb +jbo: ayv +jap: mry nzr rwz +sfd: wvu hos +niz: rtq mig aog sgg +fft: ugl hzk ejr +mrr: ffm +snn: gzv fsd aix +cnn: xpm glc +xvg: gpj hwp +vlb: hjj vlj +uai: xfz txn erx +oxf: zdx +agg: ybl uvz +lgh: ief +qfe: nbf nkg +wwy: ebp qqt +wml: yss fft +ygq: dmu cxy ybq +hbd: erx xfz yvf +xfz: ybq pry jxb dmu +dxc: yzx +jrb: aeu gcq niz +ugl: zdx ibq rmc +fxv: wyz +ima: nil eak dke oln +cpk: jxb cxy +uha: wui utc ees wje lyc qbx tsg syu fjj usd tnq +hfp: mrr uve ncm +hnn: ljq cqa +ewo: fnk you +utc: jwi qhj uen +dfq: dfl wmd sfg +xlr: hbd njh bdx ptb +gsz: ztv tjb +aeu: mig rtq +wzq: out +jvq: xdw aam +rpm: dxc sqq fhp +vqg: out +rxa: wyz +oln: out +rdo: aye wtc +fhp: ztv tjb yzx +ico: dkt mpe +tnq: pwx uwq lwm +xwo: xde jkb tif +rdb: trd akj aok +hje: ruo gml +ybq: ihb qqc exq lnm lvj tea ruk +qbz: fnk iwg kxp +mzw: jvk idl fgh +ibq: ycq mzw utr aqt and otm two bgg ihe gtu crg myd bmr fmm zis rfb +qne: uai ptb +rxc: out +lnm: jim +hdz: mkw suv lpq +umy: njj +you: obn rav qct otq ptf gsw +iwg: kjz rav obn hgf ptf aql vaa woh dfq bbf jbo otq ywv sgm vdy hpc +nht: yzx tjb ztv +wje: wek zze ohu wwy +qve: kmz nhw +rgp: axv bnn +aux: qve gye +wvu: you fnk +jvd: mcf toi +vsh: lgk +bmr: ckp +emq: ztv tjb yzx +usi: rol fns +syh: twn reh que +bqd: zdx foc rmc +qbx: shp +qod: omz ief +dmu: ewv nor dzt osb ruk tea +fjj: wek tfp wwy zze ohu +sqq: yzx tjb +whz: tjb yzx +snu: glc xpm +kom: uoq wed +ipu: foc rmc +mtv: eno osw +wti: rtx eyb itd vjv vzx +vaa: rbm +jhf: zoi +fhg: olh nnx +egh: ztv tjb yzx +maj: oxf bqd ukn +bje: bzu uve akd ncm +gwh: jhf uer jmb iua +epv: odi dbx +piv: yzx tjb +cqg: yga rub +dac: buj sez drr +axv: foc rmc +xea: jlb +xde: uur +vxv: pry cxy dmu +aye: uvz pdg +qhj: hcg maa +fvt: fnk you kxp iwg +lyr: ztv +uqy: nmf jsh wrv gwh oge eza oks vlb wzx jqz +pdf: kxp iwg fnk +shc: hct +olc: oll hir ogd xuz +rvv: nbz czz dms qfe +mkm: vzx +gjp: qim +dmr: bno fvt +zuh: dum +gye: brq nhw kmz dqw +hdx: jxb cxy dmu +sqp: qwp hse +iyi: nzr mry +umf: fhp dfy +bdx: erx txn yvf +uve: vsu +bjx: aog sgg uxh mig +dfy: tjb ztv diff --git a/2025/in/day11.ref b/2025/in/day11.ref new file mode 100644 index 0000000..01e5b43 --- /dev/null +++ b/2025/in/day11.ref @@ -0,0 +1,10 @@ +aaa: you hhh +you: bbb ccc +bbb: ddd eee +ccc: ddd eee fff +ddd: ggg +eee: out +fff: out +ggg: out +hhh: ccc fff iii +iii: out diff --git a/2025/in/day11_2.ref b/2025/in/day11_2.ref new file mode 100644 index 0000000..d787665 --- /dev/null +++ b/2025/in/day11_2.ref @@ -0,0 +1,13 @@ +svr: aaa bbb +aaa: fft +fft: ccc +bbb: tty +tty: ccc +ccc: ddd eee +ddd: hub +hub: fff +eee: dac +dac: fff +fff: ggg hhh +ggg: out +hhh: out |
