commit f5bc3fa2ec514da83506533cacab2b06a1e55937
parent 664fab995228eaaa0789807419567c09a15fa2bb
Author: Jack Sangdahl <jack@pngu.org>
Date: Thu, 11 Dec 2025 16:10:49 -0700
Day 11 2025
Diffstat:
| A | 2025/11_2025.py | | | 35 | +++++++++++++++++++++++++++++++++++ |
| A | data/11_2025.txt | | | 618 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
2 files changed, 653 insertions(+), 0 deletions(-)
diff --git a/2025/11_2025.py b/2025/11_2025.py
@@ -0,0 +1,35 @@
+from functools import cache
+
+input = open("data/11_2025.txt").read()
+data = input.splitlines()
+e = {}
+
+for i in data:
+ x, y = i.split(":")
+ y = y.split()
+ e[x] = y
+
+
+@cache
+def part1(x):
+ if x == "out":
+ return 1
+ else:
+ return sum(part1(i) for i in e[x])
+
+
+@cache
+def part2(x, vis_dac, vis_fft):
+ if x == "out":
+ return 1 if vis_dac and vis_fft else 0
+ else:
+ res = 0
+ for i in e[x]:
+ new_vis_dac = vis_dac or i == "dac"
+ new_vis_fft = vis_fft or i == "fft"
+ res += part2(i, new_vis_dac, new_vis_fft)
+ return res
+
+
+print(part1("you"))
+print(part2("svr", False, False))
diff --git a/data/11_2025.txt b/data/11_2025.txt
@@ -0,0 +1,618 @@
+smm: tio mqi
+srf: asb hrw lpc lza kpa
+fjk: ott ywq gbs yku rro zfr lux yma qvo onw stw zld rvw ldb uhp mcx hxv hxo
+mgh: gaw ndt qtm
+qiv: ott gbs rro yku npw rvw uhp mcx qvo hxo hxv
+xwp: vhq qjv
+xbi: vck phf
+you: nwj epv srf wvp rxg ogv vjc
+phf: ako
+irk: fji ako
+dac: vjp fjo awm
+yuc: rjb
+buz: ela
+zyt: fft gzm csv
+ber: kin urx
+den: xbi
+lza: uoy xbb eav mha
+gwp: ijl
+iky: qtm ndt dtm nca
+vdz: ykl alt nnv
+uis: hld bdn roq npn ygr hzq
+izu: guq rvh rkh
+obl: nmj bmq osr
+bjk: mir
+fsn: ipg rbd
+erd: vzc
+lga: kin vcp eru
+ypc: atw hlv
+hjt: mfg
+olh: mhk
+mhk: rfx eyd gpg
+nfg: oky pje
+rud: kjx yyp
+iil: uis tyj gaj
+pqh: jyv mqi
+quc: dyn ccb kuw fcd
+uty: xvm uii pgd
+jys: out
+jmr: mee qqr
+wft: rms
+ehl: cso qzt zpi
+rqf: kdf wft cmp
+cup: kin urx vcp
+vzc: mih
+ysr: fqt dxu
+icl: abd mzr
+rru: kin vcp
+bkd: fgk kqx gve
+caa: fut wxy
+qtp: bno
+mrx: vdz uyt tmu ums
+evv: bae opl
+iov: dss ntj rrp
+cdt: jyv
+otx: iww bae
+yrp: jyv tio
+vub: ryt ryp
+uly: jvs esf ryt
+dql: yxi
+zcl: kmn
+bls: fgl zta lrk
+rqj: lmw esh cup
+rot: icu qlu you ako fji
+sgb: hqx hsd otc vum
+thc: fji ako you qlu
+qzt: dzv eyw
+hve: zih cup esh kez
+tkk: eib lss wlq tpo tqm
+bkp: mlx ukm
+rjz: mfg bkd
+gij: dzv mxy
+ldb: soe ukv
+onw: orm stl wbz
+wxy: jyv tio
+ohm: tio mqi
+twt: jys qbu
+esf: gae btm pdl rud
+jlq: wft ghj kdf
+mqi: gku lpe qrl yva kwo bnh ysr emr nez soy
+oky: den heu
+avf: dac
+mde: jyv tio
+bbm: yki lux hxo stw yku ywq mcx onw rvw ykr
+ryp: btm oez rud
+nmj: uis
+uyt: ykl
+dzv: sgd lee qkh mpi vqc eep zyo ksk nfg oye fqv rqf iov miv nti lam znl jlq
+dlb: ndb gaj jgb
+ywq: znd xjl gwp
+mxk: ohm smm cqd
+yvw: kuw dyn
+jlg: mrt
+pgd: out
+wyg: out
+med: jtd cdt tlj
+gqp: ako fji icu you
+xwq: nnv alt buz
+mha: xpx rjz hjt
+gqb: guq rkh
+ovt: uax
+dlw: uis ndb
+hxv: oms mgf
+icu: ree srf qug ynb eom wlv epv wvp xac rhi mrx nwj yqh ogv vjc nrn xwp dqf hhk qwd kcd nch
+rrp: sbg pve
+bwc: urx kin eru huq
+ncv: uwh
+yxi: ryp jvs esf
+sgw: uis gaj
+avn: pdh
+hqt: nhi wpr sqy
+gku: dxu hzf ejn
+eep: cig pje oky
+fjo: yhr wuj
+pyp: pdz pst
+qmo: gaw nca
+nqq: zlg sbg qoa pve
+vdy: nvo
+ogd: eru huq vcp urx
+ako: qug ynb ree xac vnb ogv nwj yqh dqf xwp qwd hhk
+hdq: avn nxo dum
+ccb: cvz kmn quo
+ilj: cxl glv
+nuh: kuw dyn zcl ccb
+uwe: qqr med wnb
+tyj: bdn roq qpy npn rtr ucs hld bkp twk ede pyp xmx
+bnh: ejn hzf
+mfl: bpw enh
+vjp: eyu
+nch: npc vju gqb izu
+xvm: out
+rfx: jyv mqi tio
+cqm: soo uwe oif jmr
+cso: eyw mxy
+vnb: wfo yjo qjv
+ucs: icl qtr
+trl: wmg
+lpc: mha eav xbb
+miv: tmi ygf wew
+hac: mob otx prm tyx
+rvw: gjk kgg oqf
+bmq: jgb ndb
+xwn: rms yim
+pdz: bls ant ipa eaf
+mih: tyj jgb gaj
+ukv: mmg tcr
+tpo: eyw
+oez: bud kjx iil
+hlv: dzv mxy
+uwh: qzt
+epv: omq xxi
+fda: lmw zih cup
+dpg: mxy eyw
+pst: ant bls blu ipa eaf
+wzx: umq
+lry: phf wbq vck
+qug: pyo
+lrk: dpg atw hlv
+bpd: emm qgb
+dyn: kmn cvz quo mht
+btm: iil kjx bud
+qqr: iqq jtd
+krx: psf
+jus: ott gbs ywq hlu zfr yma onw npw ldb rvw ykr
+qlx: vjp fjo
+tmu: ykl alt buz nnv
+bwg: cxl yxi vub glv
+jgb: xmx ifi hzq ede pyp bkp iku twk aws ucs fkm rtr ygr roq qpy bdn
+hxo: pwt wag pjy
+qwd: ujj xsy
+jsx: mxy
+hld: iab ewb
+ewb: stp
+hto: xlo
+aws: ncv cqq
+ufm: eib tqm wlq
+qpg: yic
+ldv: xbi lry
+qjv: svz rmy dsh
+uxj: xtn wxy
+rtr: ukm
+fqt: eiy
+ndb: qpy ede npn bdn iku ifi xmx rtr fkm
+iok: kiw twt
+ofp: dac blx
+hlu: nfe
+vhw: drt
+tjr: mzr abd xdk zdm jsx
+quo: tio mqi
+hll: qfu zqf vta
+dqf: wfo
+guq: tsb ugi jcz bjk
+ukm: jwr ufm
+gjl: bva
+vqc: ofp
+mfg: ige gve kqx
+blf: zjh iok rxe cdp
+lee: xwn
+fgl: hlv
+huq: vdy oqm wzx azd izl fzb jlg vhp
+cdp: kiw
+xjl: hlk bwc ogd rru
+pol: you icu ako
+pyo: zxu tge
+nwi: rot
+spm: daf
+ksr: iqq tlj jtd
+mqs: xjo
+xxi: zho
+lpe: dxu
+dss: zlg
+wpu: mfl sqy wpr
+stl: qex
+rxg: lpc lza
+hdb: xjo cuv
+gqm: dum mxk
+zqf: tyj jgb gaj uis
+azd: dum mxk nxo
+emx: blx
+tca: xpx hjt qtp
+fji: yqh ynb srf ree mrx ogv kcd qwd xwp nrn wvp
+lyj: enh rlj
+lvc: wew tmi swd
+jkl: mmg lga
+mzr: dzv mxy
+bbu: iok zjh
+eru: oqm yvw quc olh cqm ily vdy izl hpc jlg lts sco nuh gqm fzb wzx azd uwa yro zyt
+rjb: urx eru
+nui: fzr dun qxb
+stp: zpi
+uzo: icu qlu fji ako
+gbs: pjy fsn pwt mum
+may: out
+jvs: oez gae btm
+dsq: zqf
+tqm: eyw mxy dzv
+roq: pdz pst
+kgg: yeq sjk
+bpw: zee gqp
+drt: out
+ela: jaq jae uty
+uoy: rjz xpx
+ugi: mir srr xrm
+rxe: qse
+pje: mfi den ldv heu
+tzy: eyu ijh irk yhr
+nfe: qex yuc
+nrn: xwq tmu ums vdz uyt
+lux: mum pwt fsn
+kcx: thc pol
+zle: qgb emm
+kjs: qvs dur
+oif: ksr mee
+yjo: ubz
+kqx: out
+nnv: bub ela kbr
+dum: smm
+qlu: nch epv xwp vnb rhi eom nwj ynb qug srf ree mrx rxg vjc
+kuw: mht kmn
+qfu: ndb uis tyj jgb
+bdn: rxs hdb
+wbq: icu you qlu fji
+ogv: qjv yjo wfo vhq
+omq: yic hac zho
+ygf: atd tpr epr
+lts: ryw mhk ryi
+zxu: cdp uzs
+hut: qmo mgh
+sjk: qvs fda dur
+qtr: zdm jsx xdk mzr
+veb: out
+daf: nhi lyj wpr mfl sqy
+kjx: ndb tyj
+wvp: ujj nnl
+bno: fgk gve ubg
+svz: sph hto
+gve: out
+nhh: dlw mih onq
+eyw: vqc mpi qkh zyo eep sgd the lee nti lam znl yin lvc rqf iov fqv oye
+mxy: ksk lvc oye nfg miv jlq yin the spm qkh zyo eep
+awm: eyu yhr wuj irk ijh
+rms: hfy axv
+cas: tge zxu
+vsk: out
+oqm: csv gzm
+blx: vjp awm tzy
+tlj: mqi
+izl: exd tnl
+ums: buz
+agu: out
+nhg: xtn yrp ckd fut
+ant: zta fgl
+jyv: wvm ilj ejb bpd nez jqn yva yxj sgb emr ysr krx dql ywr qrl bnh roz lpe
+zta: dpg hlv
+pdl: kjx iil
+znl: dss rrp nqq eja ntj
+xdk: dzv
+cig: heu
+zlg: rot urv
+kiw: low qbu
+nca: icu qlu
+epr: iky mgh
+gzm: oca
+uhp: jna mgf oms nui
+qoa: uzo rot
+psf: qfu
+eom: dmy qpg
+ihp: rru bwc hlk
+hlk: eru huq vcp kin
+cuv: zrq nof gij dsz eki
+rvh: fwq jcz ugi bjk
+xmx: mqs hdb ijg cbm
+kez: vcp kin eru huq
+kgy: agu gfi qbu
+kwo: ejn fqt hzf
+dsh: hto sph
+mcx: nui mgf jna
+mrt: mde
+yma: gwp znd ihp lpn
+mfi: nnx
+eiy: ndb jgb tyj gaj
+zvx: zrq gij nof
+ejn: voz vke
+sqy: bpw enh
+bva: mih dlw
+ujc: you qlu ako
+rlj: zee ujc
+nti: ygf
+lrh: exc
+ijo: uzs zjh rxe
+ree: dmy
+mmg: vcp eru
+ubg: out
+znd: hlk ijl
+tyx: opl
+nwj: qpg omq
+zrq: mxy eyw dzv
+tio: roz krx emr ysr yxj kwo yva stt zle bwg wvm nez
+yku: mgf
+tpr: qmo mgh
+qkh: oky pje
+yhr: ako fji you
+fut: tio mqi
+ige: out
+lam: daf wpu
+mgf: dun qxb ber
+iab: uwh
+xlo: wyg glw drt
+xjo: zrq eki
+yqh: npc vju nto
+asb: uoy mha eav
+mdu: huq eru kin vcp
+zho: evv prm tyx mob otx
+stw: lpn
+fkm: cbm ijg
+zfr: orm stl lrh nfe
+axv: pol thc
+mpi: wpu daf hqt
+low: out
+exc: rjb mdu
+zih: huq
+atd: mgh
+vhq: rmy svz dsh
+yki: jna nui oms
+jna: dun qxb
+uzs: kgy
+dxu: vke
+izh: ewf yku npw zfr rvw uhp
+nom: qcl uxj nhg caa
+sph: xlo kjc vhw
+ejb: psf dsq
+bok: ehl
+soe: mmg
+ndt: fji
+blu: yow
+dtm: ako fji icu
+hqx: dlb bmq
+ykl: bub
+fzr: kin vcp urx huq
+yow: hlv atw dpg
+otc: osr
+orm: qex exc yuc
+ott: hta
+ygr: mlx ukm okd
+fhe: tio mqi
+iku: tjr
+lss: eyw
+bud: gaj jgb tyj ndb
+rvn: nhg uxj
+gjk: kjs
+uwa: csv fft
+npn: mlx okd
+mlx: fak tkk qql ufm
+jcz: srr mir
+vvk: out
+osr: gaj tyj jgb ndb
+kbr: jae uty
+nnl: tge ijo zxu blf bbu
+xrm: qjp vvk cqb qac
+kmn: tio mqi jyv
+nhi: bpw rlj
+qgb: ple gjl
+xbb: hjt
+qac: out
+qtm: ako
+pab: out
+nxo: cqd ohm pdh
+eyu: qlu icu fji
+atw: dzv
+tpn: zpi
+rhi: lza lpc
+vcp: ily cqm olh quc yvw oqm gqm nuh lts sco jlg hpc izl vdy vhp fzb hdq zyt uwa yro azd wzx
+lpn: ogd
+gaw: you qlu fji
+yro: csv
+voz: gaj tyj uis
+zzs: kjc
+zjh: twt kgy
+ytt: urx kin
+bae: qhn pab spa may
+csv: oca fhe mde
+cqb: out
+ujj: ijo bbu blf zxu
+hpc: exd
+cqq: uwh stp tpn ehl
+jwr: eib tqm tpo wlq
+mir: lwj vvk qac cqb
+jct: ksr mee wnb
+qcl: ckd
+iww: pab spa qhn may
+ewf: soe ukv jkl
+tfr: ytt prg
+opl: vsk
+jaq: veb xvm uii
+gzu: trl
+ijh: fji you qlu
+fak: wlq tpo lss
+whe: qjp vvk lwj cqb
+yyp: jgb tyj uis
+enh: gqp ujc
+nof: dzv eyw
+jae: veb
+pdh: jyv
+qwz: vcp urx kin huq
+mee: cdt jtd
+ubz: zzs
+qrl: hsd hqx vum obl otc
+gaj: hzq pyp ede iku
+umq: rvn nom vul amu ttu
+gfi: out
+mum: unt tfr
+hfy: wmg thc
+eja: zlg qoa nwi
+rmy: zzs hto sph
+eav: hjt xpx rjz
+qjp: out
+mob: iww opl
+qbu: out
+emm: ple gjl ovt
+oca: jyv tio
+cqd: mqi jyv tio
+wag: ipg tfr
+tcr: urx huq
+vhp: fcd dyn zcl ccb
+kin: gqm uwa nuh lts zyt wzx ily cqm quc oqm
+jtd: tio jyv
+nto: rkh
+hzf: voz vke
+ifi: iab bok cqq
+gae: iil bud
+ipa: fgl yow lrk
+dun: vcp eru huq
+rro: ukv soe jkl
+xac: xsy cas
+npc: rvh
+cmp: yim beg gzu
+rbd: ytt prg cbc
+onq: ndb uis tyj jgb
+zld: stl lrh orm nfe wbz
+yim: trl hfy kcx
+wlq: dzv mxy
+ckd: mqi jyv
+bee: ipa eaf blu bls
+fzb: umq
+wvm: hll psf
+roz: psf hll
+eaf: ypc lrk zta yow
+vum: ytn dlb bmq
+swd: atd epr tpr
+ykr: wbz nfe orm stl
+jqn: qei
+lwj: out
+alt: kbr bub
+srr: qac cqb lwj vvk
+exd: ttu amu
+vul: nhg caa qcl
+mht: tio
+yic: evv tyx mob
+xpx: mfg bno
+uax: sgw mih
+amu: nhg caa
+qvo: gjk oqf
+kcd: dmy omq
+zyo: eja ntj
+oqf: sjk yeq
+prg: huq vcp
+stt: vum otc hsd
+emr: vub glv uly
+ywr: hqx vum
+yxj: obl vum hsd hqx
+ede: qtr
+ynb: xsy ujj
+yva: uly yxi
+gpg: mqi jyv
+ntj: sbg
+cvz: jyv
+vjc: lza asb
+fqv: wew tmi swd
+fft: mde oca
+ryw: gpg ojm rfx
+tnl: rvn
+tsb: xrm
+kpa: eav xbb uoy
+vck: qlu you fji ako
+fgk: out
+rkh: ugi jcz fwq bjk
+npw: kgg
+okd: qql jwr fak
+beg: kcx trl hfy
+twk: qtr icl
+zee: icu
+ijg: cuv
+wmg: you fji
+sco: uwe soo jct oif
+ryi: eyd gpg ojm
+wnb: iqq tlj cdt pqh jtd
+ksk: emx avf zdz ofp
+pjy: unt rbd ipg
+vke: gaj tyj jgb uis ndb
+qse: agu low qbu
+yeq: rqj hve fda
+wuj: fji icu you qlu
+ytn: gaj
+esh: eru huq urx
+oms: dun
+unt: prg
+ple: nhh bva vzc
+tmi: tpr hut
+qhn: out
+nez: qei qgb emm
+hzq: bee pst pdz
+urv: qlu
+cbm: zvx
+bub: jae
+vta: ndb uis jgb tyj gaj
+pwt: tfr unt
+wfo: rmy svz
+ijl: vcp huq
+soy: dsq
+qxb: huq urx vcp kin
+glw: out
+oye: dss rrp
+pve: rot urv uzo
+fcd: cvz kmn quo
+urx: fzb hdq yro zyt cqm quc olh gqm nuh sco lts izl hpc vdy
+soo: med qqr wnb mee
+xtn: mqi
+wpr: rlj enh
+zdm: mxy eyw
+kjc: drt wyg
+nvo: ojm gpg
+abd: mxy dzv
+dmy: yic zho
+spa: out
+wbz: yuc exc
+nnx: phf wbq vck
+wew: hut
+fwq: whe srr
+dur: kez esh cup lmw
+tge: cdp uzs rxe zjh
+sbg: urv uzo
+svr: bbm qiv izh fjk jus
+lmw: kin urx
+ghj: gzu rms
+kdf: rms gzu beg
+uii: out
+hrw: eav tca uoy
+ryt: pdl btm rud
+hhk: xwq
+ojm: jyv mqi
+qei: erd ple ovt
+hta: tcr lga
+glv: esf
+cxl: ryt jvs esf
+yin: ygf wew
+eyd: mqi jyv
+xsy: blf tge
+ipg: cbc
+qvs: lmw cup esh kez
+prm: iww opl
+zdz: dac qlx blx
+zpi: dzv
+hsd: dlb bmq nmj ytn
+qex: qwz rjb
+sgd: emx zdz ofp
+the: xwn cmp
+wlv: izu nto npc
+rxs: cuv xjo
+iqq: mqi jyv
+heu: nnx
+ily: jmr jct soo oif
+ttu: caa nhg uxj
+dsz: dzv
+eki: mxy eyw
+qql: tqm tpo
+vju: rkh rvh
+cbc: vcp urx kin eru huq
+eib: mxy
+qpy: ewb bok