aoc

Advent of Code
git clone https://git.pngu.org/aoc
Log | Files | Refs | README

commit f5bc3fa2ec514da83506533cacab2b06a1e55937
parent 664fab995228eaaa0789807419567c09a15fa2bb
Author: Jack Sangdahl <jack@pngu.org>
Date:   Thu, 11 Dec 2025 16:10:49 -0700

Day 11 2025

Diffstat:
A2025/11_2025.py | 35+++++++++++++++++++++++++++++++++++
Adata/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