day 11 part 1

This commit is contained in:
magical 2025-12-11 05:35:57 +00:00
parent deec2b4981
commit 1b9a66f49b
3 changed files with 648 additions and 0 deletions

602
day11/input Normal file
View File

@ -0,0 +1,602 @@
ojt: rum xgy guf mqs
srg: mqo ufz
lwb: sxb wsf
pkk: ium
evd: els stn oln
ukv: ocs vxd tfl
fyk: ikm fox nok
bfd: evd kjy smb
wqy: srg tgk
mix: cmj ufz mqo
rew: avm nrs vot mqv
tri: hex zvw yuq jeo
lbo: dgt ica yws pkk qwp
fcn: smr
msw: ssg qtf aem
zwf: zvl qfe
epg: xax pzu
mmw: dhg
hbd: cji vrr ysi bfd
czn: wld cgm gqw tbz
qdh: tvc
dwh: hux lkt lad
ayq: bzr van
lor: xrf jwh
gkc: pwk hgf cdw
jxm: ehg xet fqn
qft: qnl evl
pek: cvj flu
rmo: rxx hbd
nwe: out
liy: tcc rjb pda
xft: azu upo itg
ojy: cfp
nuq: cvj asi ufb flu
ogq: oov dtc ppz
rjb: cmj ufz mqo you
rdz: cvj ozn ufb asi flu
qoa: dgt yws pkk qwp
mbw: lik rmf nqr
yes: ccc
uit: ysj ngh rew
hfa: sum clx
jqd: ozn flu cvj
xfi: dyo zqy
lym: kht
sqm: rdc oao
jmw: nzq
sgq: bju lzc bwx
xjr: lcx kpp mvl fto
tdg: vds kuh
aww: der lwb ijy rjq mof obb fmi unx eqn vyj skb wqa aer tas stx vpf oas fzq gfy pua
rmb: euk xic
hwg: fto xmd kpp lcx
nce: mmd sum clx
ult: ufb ozn
fbj: lcx xmd fto mvl
tgk: you mqo cmj
ppz: nqr
vty: ppz lok mbw dtc oov
eit: xvj ccc
dtc: xvf nqr lik rmf
qso: out
tcc: ufz you
gwp: xur pto ayw rmb
ibm: bwe fuv zkc
onk: ibe gdf
jax: qnl evl nzq
vct: ozn flu asi ufb cvj
bju: sfu azu itg
amz: you mqo ufz
ozn: rqf jzc onk qoa jzs lbk tog fhz vkr hty pnw tej hmv erl mcm msw qky umv
eux: kuc xpq gxc
vmi: mqo you cmj
lft: sum clx fbs
lgv: ufz mqo
quc: npv
bzr: leu ehk
bwx: sfu upo azu
cnk: mmd fbs
xpq: qyh
zon: bwe npv zkc
pqe: mqo ufz you
rks: tje isv
hmv: gdf
evl: tbt ftw lco
vux: rxx zbg
yoa: trv
tpq: cvj
jws: tpq lyi jqd nuq rdz
qzs: clx fbs mmd
vds: amz pid xax
xfg: fof
xak: xjo gwd rcb wzr
erl: aem vux ssg qtf rmo
tzu: out
oht: xmd fto mvl kpp
ogz: ojy gdf
yly: czn fjq
nrs: you ufz mqo
rna: mvl
ins: fbs gyg sum
vwu: ilb wqy bud bba
nxi: npt kht
gfx: hfd sia
itg: cvj ufb asi ozn
nxy: fto xmd
zcq: yoa wvx
jok: rna msk sna
vqb: tdg shp gru
vep: ocg bvi znu
tqa: ame pfb eux
eer: out
lna: blf uph bzr
dyo: ypx kth wcn
ejr: vct tpt joe
vpk: jer fmw erg hwg
lkt: yrk
bok: xet
anx: tpt joe atl vct
yrk: mqs guf
vpd: zle tdg gru shp
htv: auw oyn pek ikf
icv: fto xmd lcx
wfb: you cmj
lrx: xet fqn tzu
wjh: clx gyg sum fbs
xet: out
hgf: fto
tvc: smr tyc irq
gra: cdw hgf rqb
brr: xft mbe
fui: cgm wld ahr gqw
kht: bqw fmu
asi: rqf jzc hmv pnw vkr umv jzs jtv erl msw
dxr: rjk rgc gfg
xic: nys xak xxh
smr: cmj you ufz mqo
bvi: xjr bgh igy oht bzh
fkj: bqr pto rmb
nnm: fbs gyg
zih: tzu fqn ehg xet
npb: thy zao
bhz: you
eny: lor
fqn: out
sna: lcx kpp xmd mvl fto
azu: ozn asi flu
ilh: acj vdg zpt zcq qwn qft aic fay fjj ycs wdh cyp ymi gfx tjs fug jmw abi nih
lad: ojt tqj yrk
abh: ikm nmg
mof: dxr yal
xtl: jar wsf
aem: rxx hbd qdy
clx: veu yes fej yfb zdm vwu vpd tcj imw bfo sak fpe vqb lwp apx uit ysq jsl tyr ahw wec rzx
leu: xjj tji qzs
zww: isz sgq brr
jvq: htl iao uix
cbk: nuq rdz lyi
qfe: out
bei: xxh nys
qsk: you ufz cmj
lik: jgk wce nwe
hfd: qnr ult
bqr: euk xic
fxy: nxi iyn
wvb: fof dzk
ill: weg vpk yqv toh
srl: gfg
svr: xzk ilh xkb gtf ebx
kko: eph czn fui
fay: wya wvx
ikm: qie
sju: lrx
lbk: gdf
fjg: hfn ibm
vso: jwh scd ins xrf
vsi: jxm zih
iao: lcx xmd mvl
ley: out
apx: ysj
pnw: hak hvg fft
fej: ngh ysj
xkz: wjb vso xxn aty
lok: rmf nqr xvf
tjs: nzq
gdf: yck eqp
ubl: gru shp
xdh: anb dzk fof
afd: teg
rbe: out
vdg: nzq evl
ejz: dgg
hux: ojt tqj bgr
xxn: scd
bgh: lcx kpp xmd mvl
wld: dep cnk nnm hfa
xgj: fxy ups tjo
guy: zgs qdh mmw oif
ocs: wjh nce lft
vot: mqo
kav: cny gjt aps
oov: rmf nqr
jwh: mmd fbs clx gyg
hfn: bwe fuv
cac: ocs dci
xjo: niz qso
yta: van
zpt: kfx mam cwc
ame: kuc lkx gxc
hvg: qxn
vdq: out
yal: rgc gfg
ssg: rxx
qbe: dhh oas vpf tas skb eqn unx xtl rjq ijy lwb blk der
joe: flu
ccc: dac liy lqv
pua: dxr sru
oas: nfc
lbv: ibm hfn quc zon vtx
wqa: tje zkz
oif: dhg
pnh: fui
mzt: ubm ame pfb oia
tbt: cvj ozn flu ufb asi
jtv: ojy ibe
izw: xix lvg
avm: cmj ufz mqo
gjt: paa
txn: guy
van: teg
vkn: mvl
qie: ibm hfn zon quc vtx
hsz: npt lwt
ayy: yuq jeo zvw
igy: fto xmd
ptz: vep rdc mhx
wqi: sgq
tjo: hsz sfy lym
epd: oln qbe els
tna: els stn aww
mhx: ocg cwu bvi
bfo: kvy
jsl: eqd wzw
hak: rms tna
akf: kpp mvl
sfu: ozn ufb asi
erg: lcx kpp xmd mvl
jar: uht gra
rum: els stn
anb: prd
tyr: guy
stn: vpf gfy ijy mof der skb rks obb xtl fmi unx
ayw: bei
mqo: kav thd alq qcs ckk fyk ojj mzt abh tqa
tje: akf icv
lzc: sfu azu
gtf: jmw fay jax val qwn zcq zpt mnc cyp wdh rkh
yck: stn els aww
kgq: wjb vso lor aty
fmu: sum clx gyg mmd
ubm: lkx
sia: gcn
huh: ntp vsi
jzc: ssg vux aem
yfb: bud
nih: mam
fto: xgj byk yta xkz pnh lna
zvl: out
qwn: hfd sia
dzk: qfe prd
jxj: eqd mzb
tas: sqm dgg ptz
rfz: ufz mqo cmj
ecn: rna sna oks
aer: yal srl
vpf: jar
ups: hsz sfy lym
bqw: sum clx fbs mmd
cdw: mvl xmd lcx
veu: wzw
ikh: brr
fzq: wsq dxr
irq: cmj
rmf: jgk nwe ykg wce mdv
dhe: zao
npv: gxk ezs
ehg: out
aiy: xur bqr rmb ayw
els: mof lwb rjq der ejz rks skb unx xtl fmi stx vpf tas aer dhh pua fzq gfy
nys: xjo wzr rcb
bba: nkp
mxd: anb zwf fof
gru: vds epg
ppa: fbs gyg
lwt: fmu hrc bqw
gqw: dep hfa
pwk: xmd kpp lcx
lwp: ilb
zvw: vty nbi ogq
guf: stn oln els aww
ocv: kzf huh
wsf: gkc uht
buy: vhu qdh oif
xvf: mdv wce nwe jgk
blf: leu ehk
zgs: tvc dhg fcn
fhd: aty vso xxn
fmi: dhe npb avc mvk bxo
fox: lbv fjg
iqo: msk ocd oks
ufb: fhz erl lbk ogz umv vkr pnw qoa onk tej rqf jzc hmv
sru: gfg
rcb: rbe
teg: tji keq ppa
ikf: ufb asi flu
bxo: thy nvf
weg: fmw
lkx: xfi
qky: xxs dwh wat
zqy: eer ypx
ckk: ocv gga xpa
qnl: ftw lco
tcj: hcg
rxx: dyl cji
sps: mqo
snz: fox nmg ikm
upo: asi ozn
kuc: qyh wot
znu: igy
niz: out
ocd: mvl fto xmd
zle: vds epg kuh
gga: spp kzf
tbz: gyk dep cnk hfa
zkc: ley
cqr: xfg mxd
ezs: out
cwc: cbk
nbi: ppz lok oov
wce: out
ntp: lrx bok
vyj: dgg ptz
atl: ozn
uph: leu ehk teg
mcm: rmo aem
skb: mvk
pzu: you
dgt: ium ykj
oyn: asi flu ufb
jeo: vty nbi
ehk: tji qzs keq ppa
ysj: nrs avm vot
pxi: stn oln
gxc: yed qyh wot
cwu: xjr igy oht
qez: ayw pto xur bqr
jgp: asi cvj
dep: clx gyg sum
ahw: bba bud ilb wqy
keq: clx gyg
tyc: ufz
wjb: scd
bns: kfx mam vjd
zkz: fbj icv
eph: tbz
xmd: fhd bwh cac pnh gmc izt kgq ayq yta xkz kko yly
ica: jzl ykj
asz: blf
oln: ijy lwb mof obb unx vyj ejz wqa aer tas vpf fzq gfy pua
iyn: kht lwt
alq: eux oia ubm
shp: epg
fft: rms qxn tna
ijy: jvq mms nfc
rjk: ecn
euz: anb dzk
euk: xak
fof: zvl
obb: isv tje
wot: zqy
eqn: mms nfc
yed: uef dyo
mnc: zqk lgu izw asb
tej: yws dgt ica
mrh: gyg mmd fbs
bgr: mqs epd
mvk: zao ill
gyk: fbs gyg
ebx: qft jax fjj fay rkh acj vdg zpt mnc zcq qwn val gfx fug jmw abi nih ycs wdh cyp ymi
wya: fio anx
qcs: bqr ayw
kth: out
kfx: jws yoz cbk
nqr: nwe ykg wce jgk
dci: ufh nce mrh
kjy: qbe els stn aww
xrb: cny aps
trv: vct atl joe
paa: wvb euz
zdm: ngh rew qnk
qnr: asi
ddh: gcn ult
wvx: anx ejr trv
vih: lrx jxm bok
xvj: lqv liy
xax: cmj you mqo
wzw: wfb mix rfz sps
mbe: azu upo itg
rdc: ocg
thy: weg toh
ibe: yck pxi cfp
eqd: sps wfb mix rfz qsk
qtf: zbg rxx hbd qdy
ymi: xer
lgu: kop xix lvg
xxs: hux tth
blk: wsf sxb
fbs: rzx uit wec vwu veu sak fpe apx
toh: jer hwg fmw
xkb: zpt zcq bns mnc gfx
rqf: xxs
stx: jar wsf
gmc: eph fjq
kuh: xax pzu pid amz
xix: ikf pek oyn
nkp: cmj you ufz
mqv: cmj
ufz: gwp kav thd ojj ayy fyk mzt tri snz csm tqa abh xrb alq qez qcs fkj lae aiy
tnv: asi cvj
auw: ozn
mms: htl vkn iao
gxf: kzf huh spp
yuq: vty
sxb: gkc
dgg: mhx rdc vep
dhg: irq pqe
isz: xft lzc bwx
xzm: you cmj
ngh: mqv vot lgv
fjq: tbz ahr gqw cgm
cyp: zqk
mam: qmc
byk: vxd dci
dyl: rzq
fpe: hcg ccc
mvl: xkz ayq kgq izt vkq lna pnh gmc yly byk bwh asz cew fhd xgj cac
vkq: vso wjb lor
sfy: npt kht
cew: czn eph fui
ftw: ufb ozn
smb: stn oln aww
tqj: xgy mqs rum epd
vrr: rzq smb
vxd: mrh ufh
mmd: tyr ubl fpe sak bfo veu lwp ysq rzx vpd eit tcj fej ahw txn yfb vwu
xur: xic bei
msk: lcx kpp mvl fto
umv: qwp pkk dgt
xgy: qbe oln aww
aps: cqr umy
cvj: qky ogz umv pnw tej lbk jzs tog fhz vkr hty lbo rqf jzc qoa onk
aic: kfx vjd mam
hcg: lqv liy
qnk: nrs avm mqv vot
yws: jzl
qmc: rdz jqd lyi tpq
nok: fjg lbv
jgk: out
thd: gga
gfg: jok ecn iqo
gfy: sqm
gcn: cvj flu ufb asi
dhh: avc
xer: gcn ult
uht: cdw
xjj: sum gyg
prd: out
asb: lvg htv kop
cmj: gwp kav thd ayy mzt snz csm tqa abh zce alq qcs qez lae
lae: aps gjt cny
hex: vty nbi ogq
ykj: oln stn qbe
zce: cny
kzf: ntp vsi vih
ojj: ocv gxf
yqv: hwg
zqk: lvg kop
aty: ins
npt: bqw fmu hrc
pid: cmj you ufz
wdh: wvx wya
sum: jxj tcj imw ysq jsl sak veu
fio: jgp tpt joe atl vct
nfc: uix nxy
mno: you
wec: mzb eqd
qyh: dyo zqy uef
pto: bei xic euk
spp: vsi sju ntp
der: bxo
vjd: cbk qmc jws yoz
cfp: oln stn els qbe aww
eqp: oln qbe stn els
csm: yuq jeo zvw
mdv: out
fmw: mvl
yoz: lyi
acj: zqk lgu izw
umy: wvb euz xdh
kop: tnv ikf oyn auw
ysq: ccc xvj
cny: umy paa
val: kfx vjd
ycs: ddh
jzl: els qbe
avc: thy nvf ill
rzx: qnk
bwh: afd blf van uph
qdy: cji bfd
flu: jzc qoa lbo qky umv hty jzs mcm
pgw: fmw erg jer
you: qcs ckk fkj xrb csm lae
jer: kpp
wsq: rgc
sak: guy kvy buy
rqb: mvl xmd
bud: mno xzm nkp
xrf: sum gyg
vkr: xxs wat dwh
gxk: out
nzq: lco
lcx: ukv yta eny vkq fhd gmc pnh uor cew
rjq: tje zkz
fhz: fft hak
xxh: xjo gwd
lvg: oyn
zbg: ysi
mqs: aww stn qbe els oln
uor: tjo ups
jzs: hvg fft
ufh: mmd sum
xpa: huh kzf spp
oia: lkx xpq
imw: kvy guy
tpt: ufb asi
mzb: wfb rfz sps
unx: sqm
ykg: out
rzq: els aww
hrc: fbs clx
tfl: lft nce ufh wjh
fuv: vdq gxk ezs
abi: wqi
ysi: kjy
rkh: zww wqi ikh
vtx: fuv npv zkc
wzr: niz rbe qso
wat: lkt hux tth lad
rgc: iqo jok
hty: vux rmo
ium: stn els oln aww
pfb: kuc
xzk: qft gfx fug fjj abi jmw fay ycs vdg mnc
uix: xmd fto
fug: ikh
qwp: ium ykj jzl
lco: asi cvj
cji: evd rzq kjy
scd: gyg clx sum mmd
isv: icv akf orc
pda: cmj
ypx: out
qxn: aww qbe oln stn els
gyg: apx lwp vqb yes fpe sak bfo jsl ysq jxj txn fej wec zdm rzx tcj eit
kvy: oif mmw vhu zgs
zao: toh pgw yqv
cgm: nnm gyk
uef: kth
wcn: out
lqv: vmi
nvf: yqv weg toh
nmg: lbv
htl: kpp lcx
oao: znu cwu
fjj: ikh wqi
orc: xmd mvl fto
tji: mmd fbs clx sum
gwd: qso niz
ilb: nkp xzm mno
ahr: dep
ocg: bgh xjr igy oht bzh
dac: pda vmi bhz rjb tcc
kpp: bwh xgj byk cew uor gmc
lyi: cvj ufb ozn
bzh: fto mvl lcx kpp
tog: qwp
izt: fxy
vhu: fcn
rms: els qbe oln
tth: yrk tqj ojt
bwe: vdq gxk ley
oks: mvl xmd kpp

10
day11/sample Normal file
View File

@ -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

36
day11/sol.py Normal file
View File

@ -0,0 +1,36 @@
import heapq
def solve(input):
G = {}
V = []
for line in open(input):
parts = line.split()
v = parts.pop(0).strip(':')
V.append(v)
G[v] = parts
extra = [e for edges in G.values() for e in edges if e not in V]
V += extra
for v in extra:
G[v] = []
Q = [(0,'you')]
dist = {}
paths = {v:0 for v in V}
paths['you'] = 1
while Q:
cost, v = heapq.heappop(Q)
if v in dist:
continue
dist[v] = cost
for e in G[v]:
if e not in dist:
heapq.heappush(Q, (cost+1, e))
paths[e] += paths[v]
print(paths)
print(paths['out'])
solve("sample")
solve("input")