feat: Add day 11 (without definitiv solution for part 2)
This commit is contained in:
parent
df5de863e8
commit
6868341bc4
6 changed files with 714 additions and 4 deletions
559
AdventOfCode2025/Inputs/Day11_1.txt
Normal file
559
AdventOfCode2025/Inputs/Day11_1.txt
Normal file
|
|
@ -0,0 +1,559 @@
|
|||
gfw: pfg lik
|
||||
bzp: nky
|
||||
hzi: ewh wpa qla
|
||||
cee: zmj her
|
||||
qas: alt cvb hor uwp
|
||||
ycy: brw ryu
|
||||
pqz: uty tvj
|
||||
wmg: lmz jcz kbm cpo
|
||||
rxa: poy kmc
|
||||
sft: lmi kid usa
|
||||
nrf: out
|
||||
tje: vth woa xek lec
|
||||
nim: vox ysr mpg ilk
|
||||
qok: bkh
|
||||
jsi: gzs bkh jis
|
||||
vwt: pzv
|
||||
dek: yrv pxh
|
||||
uco: ukv dqz
|
||||
any: oyb won frr qir
|
||||
fdx: goj
|
||||
xea: vpy
|
||||
gie: out
|
||||
wcm: ctd ooe pcf
|
||||
ncl: raz xlp ttr olc uxy voc
|
||||
zvh: sze ncg
|
||||
ptz: ibk gbd
|
||||
tzb: ilk edy mpg ysr
|
||||
syy: cdu vjy ycy
|
||||
gfk: vpy mzs gri
|
||||
khz: out
|
||||
nxt: her idf nvp
|
||||
syw: lmz
|
||||
lry: sxr omu syw wmg
|
||||
lik: zkt ckl
|
||||
uxy: usb trt
|
||||
xig: out
|
||||
pca: aos lmm
|
||||
qzg: epb coi cly
|
||||
uot: rrb dmb
|
||||
zxb: ncg jsi sze
|
||||
ank: dhj
|
||||
mfq: rxq kmc gkx poy
|
||||
fdh: yfp llu
|
||||
jzy: euw dar
|
||||
jcz: sxm
|
||||
fan: hke uot qnr
|
||||
jpj: tca
|
||||
dar: xek qgt woa
|
||||
ypp: srd xrd
|
||||
jqv: ztl nrf tca
|
||||
cdu: rgu ryu
|
||||
ucf: dzf fkr qzg nrc
|
||||
nnz: igg cei frj
|
||||
trg: ifw xyl hmy xxg
|
||||
uhq: ekd diz bgr
|
||||
cja: xgm nfj
|
||||
edy: sok gjl
|
||||
ilk: bhp jmf qas sok gjl
|
||||
ldv: stl zbr
|
||||
usa: dya ctd ooe pcf
|
||||
szm: tfu woi dyi
|
||||
igf: xrd
|
||||
fgg: sxr kxu wmg syw omu
|
||||
nrn: aes
|
||||
tre: zpn oct grs
|
||||
ctj: qow puu kzu
|
||||
xet: cmx
|
||||
qxf: aqq yxa nrn plz chi
|
||||
dnb: zvh dtc jdb
|
||||
wsw: bkh jis
|
||||
hzt: vjy trn cdu
|
||||
mxk: rkf
|
||||
pez: cjk zzy yqx
|
||||
hmy: fwj
|
||||
vjy: rgu ryu
|
||||
hus: xxo gsy jpy vhp
|
||||
pzr: pca kng wno
|
||||
mzr: dqz
|
||||
mpg: jmf qas
|
||||
qow: ktu zog bke
|
||||
bag: goj
|
||||
woi: udj
|
||||
her: rwv eof lun
|
||||
nlo: kcx
|
||||
hor: zvk mum ngp vgp lil rrk wpm zmr qxf goa hek mll aqf
|
||||
ksg: crd hzt syy hfb
|
||||
hzj: tkr zkt
|
||||
uln: hmi ctd pcf dya
|
||||
fuk: swo
|
||||
mum: yxa chi plz nrn
|
||||
ugx: icr wui nnz
|
||||
lqg: abd ceu jak
|
||||
jpc: omu wmg syw
|
||||
omu: juh cpo kbm
|
||||
vox: bhp qas gjl sok
|
||||
sxr: kbm
|
||||
efa: xvl sue xwl
|
||||
lle: cwj mfq rxa
|
||||
bwo: trt fwm
|
||||
ybp: cvb alt uwp vsq
|
||||
sze: jis gzs
|
||||
rrb: woi rxm
|
||||
srd: ddh
|
||||
rjp: xiq sps
|
||||
uwp: mll aqf tmk qxf cja fuk lle wpm ngp vgp mum zvk fhb goa hek ies zmr goe gfw rrk lil kbc hqs eax qxn
|
||||
hub: nwk
|
||||
jis: any yzd fwk trg ykn cts qxc jpr
|
||||
xyl: fwj
|
||||
xoj: ino dwm mim
|
||||
bke: hor vsq uwp alt cvb
|
||||
wwk: ksg bdt
|
||||
tvj: ewh
|
||||
pxy: vhx
|
||||
diz: xhd qok fyt abm
|
||||
ajl: gzs
|
||||
abm: bkh gzs
|
||||
zvg: ctj dwm
|
||||
iec: tvj tqf uty hzi
|
||||
bdt: bni crd syy hfb
|
||||
wpl: dya
|
||||
lkt: spo muw
|
||||
dhj: hzt crd
|
||||
bgr: xhd qok
|
||||
vip: kcx
|
||||
ebw: ceu
|
||||
rrk: ymm qgn
|
||||
wxu: vop fxl
|
||||
qet: vip
|
||||
lyp: tfu rxm dyi
|
||||
kbc: rxa mfq
|
||||
dtv: pcf
|
||||
cjk: yfo tds
|
||||
ttr: yfp llu tqt
|
||||
sxm: out
|
||||
eof: bkh
|
||||
kng: dks tkw dcr aos
|
||||
zeh: fmh
|
||||
fwk: oyb mas qir frr
|
||||
zmj: lun eof
|
||||
roi: aby fft
|
||||
jcy: xrd
|
||||
tro: out
|
||||
foi: ekd lwb bgr
|
||||
fkr: cly ajl coi
|
||||
yqx: yfo tds
|
||||
qpl: out
|
||||
vop: out
|
||||
cmx: sze
|
||||
jak: you yfo
|
||||
mla: oom ppl awl
|
||||
kdd: owy
|
||||
xna: jnh dsd
|
||||
xhd: bkh gzs
|
||||
cei: usa dtv
|
||||
qgt: vsq uwp
|
||||
xtb: fxl vop
|
||||
gzs: rdd cts qxc aij tbu wid wzp ugx yzd nzw trg ykn fwk nyn yco any awq
|
||||
rwq: ajc
|
||||
mks: efa
|
||||
lmi: hmi ooe
|
||||
xvw: xig
|
||||
ias: pzv kcx
|
||||
flv: dyi tfu
|
||||
gos: dcr tkw lmm dks
|
||||
qxc: pkp jmi xar
|
||||
sdu: wly sps
|
||||
hgm: qgn
|
||||
uis: out
|
||||
cwj: poy ias
|
||||
wzp: cmc bhl iqx znd
|
||||
ibk: xvl xwl
|
||||
frj: ezr lmi
|
||||
aqq: aes tet
|
||||
ppl: uby
|
||||
owy: osv lji
|
||||
ngp: mfq rxa cwj
|
||||
ckl: kcx
|
||||
ejt: kcx pzv ddh
|
||||
pzv: sdp zlk dvf arm xna vtq ucf dek rwq ycc dnb lkf qti znr
|
||||
lmz: tjx pbs sxm
|
||||
yaa: cxo
|
||||
yzd: iqx znd
|
||||
mas: wpl pmh uln
|
||||
chi: qet
|
||||
lkf: qzg dzf
|
||||
kid: dya ctd ooe pcf
|
||||
spo: kcj
|
||||
hrg: edz ztl
|
||||
olc: usb trt
|
||||
aqf: hzj lik
|
||||
xxo: jpc lry awh
|
||||
tkw: rxp hrg jqv
|
||||
qdr: qnr uot sva
|
||||
xws: ddh
|
||||
ztl: out
|
||||
rgu: tds you
|
||||
suw: uby jns wah wze
|
||||
dso: voc ijf uxy pym jro nim xoj fdh jzy bwo tzb mzj
|
||||
brw: yfo
|
||||
uty: ewh wpa
|
||||
jka: izz
|
||||
oyb: uln pno
|
||||
mdi: pzr oct qrt
|
||||
blt: lel
|
||||
kkj: out
|
||||
vpy: you yfo
|
||||
ekd: abm qok fyt
|
||||
nvp: eof rwv
|
||||
kmc: ddh kcx pzv
|
||||
xqt: xxo
|
||||
dya: vqo ccl ebj reh ght ank uou mzr bag hff vpl wwk yya tjh afd fdx
|
||||
lel: kpc qpl cqf
|
||||
zpn: wno kng gos
|
||||
xgf: owy yns
|
||||
yqy: fam
|
||||
yco: frr qir oyb won
|
||||
zgx: tje euw vbw
|
||||
tzm: fsj ucs wib
|
||||
igy: nlo
|
||||
lpf: hmi ctd pcf dya
|
||||
sdp: zvh
|
||||
hjt: eqr sbg
|
||||
uou: jaw dqz
|
||||
prf: zri
|
||||
xiq: jvl beg hmg
|
||||
yfo: xqt hus hdk srn tal fpm tre whm qdr ipe yqy mdi nwm pqz iec tfn
|
||||
jmf: cvb alt vsq hor
|
||||
plz: aes
|
||||
yrv: rjx cee
|
||||
wid: xyl hmy ifw xxg
|
||||
hek: aqq chi nrn plz
|
||||
nrc: coi ofp
|
||||
cvb: hgm hqs qxn eax zvk lle zmr goe wpm rrk ngp lil vgp kbc ies fuk tmk goa hek qxf
|
||||
lsq: mpg
|
||||
swo: paa vai kea hki prf
|
||||
tds: ipe mdi hus fan xqt nwm srn hdk tal fpm qdr
|
||||
beg: uwp vsq hor
|
||||
dmb: tfu rxm
|
||||
whm: nba fam
|
||||
vbw: vth woa qgt lec
|
||||
tqf: qla ewh
|
||||
clg: vbw tje
|
||||
wib: wxu xvw
|
||||
wly: uws jvl beg
|
||||
trt: lre jry kqx
|
||||
ies: swo xgm
|
||||
dps: ysr mpg vox edy ilk
|
||||
ipe: oct
|
||||
tjx: out
|
||||
ymm: eqr
|
||||
tno: nlo ecr ltp
|
||||
bhp: hor uwp cvb
|
||||
goa: lik
|
||||
dyi: bpq udj qsj
|
||||
iqh: kcx
|
||||
fpm: tqf uty tvj
|
||||
puu: ktu zog
|
||||
epb: bkh
|
||||
tmk: aqq yxa chi nrn
|
||||
rxp: nrf tro
|
||||
jdb: jsi
|
||||
lnk: brw ryu
|
||||
gel: xar
|
||||
crd: lnk
|
||||
wno: dks tkw
|
||||
dac: muw fue
|
||||
xqo: qzg nti dzf
|
||||
trn: ryu
|
||||
ecn: zou ekd bgr lwb
|
||||
nba: tzm ahp rfs
|
||||
ecr: kcx
|
||||
dtc: jsi ncg
|
||||
mzj: izz nvr pnr pxy
|
||||
osv: bkh jis gzs
|
||||
fwj: dya ooe hmi ctd
|
||||
bpq: jtp gie kkj
|
||||
dqz: dac
|
||||
ght: oii put
|
||||
ucs: fpv glz xtb
|
||||
wkz: ktu zog bke
|
||||
vth: hor
|
||||
put: rkf vcv
|
||||
wpa: vvh tbp
|
||||
tjh: dhj bdt
|
||||
mtq: ryo
|
||||
bkh: rdd cts aij jpr wid tbu wzp yzd gel trg mnq awq
|
||||
nti: epb coi cly ofp
|
||||
lil: xgm nfj
|
||||
pbs: out
|
||||
hmg: hor uwp alt cvb
|
||||
wpm: ymm
|
||||
ukv: xsz lkt
|
||||
fhb: hzj lik
|
||||
vqo: xea
|
||||
fam: wkk ahp jjl tzm
|
||||
tbp: fmh
|
||||
oct: pca kng wno
|
||||
you: mdi tfn iec nfc fan tre fpm
|
||||
fuh: nwk xrd
|
||||
nvr: sdu vhx
|
||||
alt: rrk mll zmr gfw goe cja ies
|
||||
dks: hrg
|
||||
arm: cmx dtc jdb zxb
|
||||
izz: sdu rjp vhx
|
||||
tbu: yaa wui
|
||||
yjj: pcf
|
||||
tkr: pzv ddh
|
||||
ycc: jnh yrv dsd
|
||||
zok: ceu jak
|
||||
zri: nlo ltp iso
|
||||
fue: kcj azf csv
|
||||
hmi: ljz vpl yya mzr fdx ebj uou
|
||||
sbg: xws kgk ztw
|
||||
wkk: ucs
|
||||
tfn: gsy
|
||||
vcv: gca ebw wnd
|
||||
azf: tds
|
||||
rxq: pzv ddh
|
||||
ryo: igf
|
||||
cpo: tjx
|
||||
udj: uis
|
||||
xgm: hki prf vai paa kea
|
||||
san: una vcv
|
||||
gsy: xwt awh fgg jpc
|
||||
jro: tqt
|
||||
duc: lel zie fmh
|
||||
lji: bkh gzs
|
||||
nfj: paa prf
|
||||
xwl: hor uwp vsq cvb alt
|
||||
vvh: fmh
|
||||
uws: alt hor vsq
|
||||
vpl: oii put fnb mxk
|
||||
cly: gzs
|
||||
igg: ezr lmi kid dtv
|
||||
muw: csv azf kcj
|
||||
znd: yjj stl wcm zbr
|
||||
xvl: cvb alt hor vsq
|
||||
bni: ycy cdu trn
|
||||
cvc: fyq yns owy
|
||||
etg: kdd ajc
|
||||
iqx: wcm
|
||||
ztw: kcx pzv ddh
|
||||
lun: jis bkh
|
||||
ozq: gbd ubd
|
||||
llu: ozq ptz pzc dze
|
||||
jry: vsq uwp hor alt
|
||||
rfs: wib
|
||||
uby: pcf ooe hmi ctd dya
|
||||
fmh: qpl cqf
|
||||
mim: wkz jbs qow kzu
|
||||
ljz: har
|
||||
cmc: zbr wcm stl
|
||||
qic: dya ctd hmi
|
||||
wah: hmi ctd ooe pcf dya
|
||||
yis: qic fwj
|
||||
zog: hor alt
|
||||
kcx: qti znr ucf vtq dek rwq ycc bzp dnb lkf dvf arm xna etg iuh xet xqo sdp zlk cnt
|
||||
znr: fkr nrc
|
||||
kzu: ktu zog
|
||||
hff: bdt ksg
|
||||
mll: mtq tnh lem
|
||||
vgp: roi lem
|
||||
hdk: tqf tvj
|
||||
euw: lec xek woa
|
||||
won: wpl pmh
|
||||
qcz: fwm trt usb
|
||||
xlp: trt
|
||||
kgk: kcx
|
||||
ccl: mxk put fnb
|
||||
afd: san
|
||||
fwm: lre ybp wfh
|
||||
wze: dya ctd hmi ooe
|
||||
fxl: out
|
||||
paa: zri
|
||||
pkp: oom ppl awl suw
|
||||
xrd: ddh pzv kcx
|
||||
rwv: bkh gzs
|
||||
ddh: dnb vtq bzp ycc rwq dek znr sdp zlk xet xqo xna etg
|
||||
mzs: you
|
||||
dvf: nky ecn
|
||||
tjq: bdt ksg
|
||||
wnd: jak abd ceu
|
||||
una: lqg zok
|
||||
voc: dar vbw euw
|
||||
reh: pez
|
||||
svr: avs dso stu gmu ncl
|
||||
zlk: jdb zxb
|
||||
plx: iqh ztw
|
||||
juh: tjx
|
||||
ncg: jis gzs
|
||||
gmu: qcz raz voc gir ijf dps lsq pym tzb xoj eaa
|
||||
ryu: you yfo tds
|
||||
pnr: rjp
|
||||
gjl: vsq uwp hor cvb
|
||||
awq: xar jmi mla pkp
|
||||
ahp: wib fsj
|
||||
wfh: alt hor
|
||||
icr: cei frj igg cxo
|
||||
ysr: qas bhp jmf
|
||||
xwt: sxr
|
||||
usb: ybp lre
|
||||
ndb: dya pcf ctd ooe
|
||||
cnt: ecn uhq nky
|
||||
bhl: zbr wcm stl yjj
|
||||
ooe: vpl hff ljz uco wwk yya afd fdx tjh ccl tjq xyx reh mzr ght ank uou
|
||||
xvk: yqx zzy yeu cjk
|
||||
kcj: you tds
|
||||
qla: vvh duc tbp blt zeh
|
||||
gca: jak ceu
|
||||
vsq: hek goa ies zmr gfw goe rrk lil kbc hgm hqs qxn eax mll tmk aqf qxf cja fuk lle wpm vgp mum zvk fhb
|
||||
ubd: xvl xwl
|
||||
jtp: out
|
||||
abd: you yfo tds
|
||||
gkx: ddh kcx
|
||||
dzf: cly ajl
|
||||
vhx: xiq wly sps
|
||||
nky: zou
|
||||
ezr: hmi ctd pcf dya
|
||||
edz: out
|
||||
tet: ltf
|
||||
kxu: kbm lmz cpo juh
|
||||
kea: igy
|
||||
gir: pxy nvr izz
|
||||
aby: ypp fuh hub
|
||||
yfp: ozq ptz pzc dze mks
|
||||
pxh: nxt cee rjx
|
||||
tfu: bpq qsj adw
|
||||
tnh: ryo fft
|
||||
fnb: una rkf
|
||||
qrt: gos kng
|
||||
lem: uqj
|
||||
raz: mim ino
|
||||
pcf: ebj reh vqo tjq ank uou ght uco vpl hff tjh fdx afd wwk
|
||||
nzw: jmi
|
||||
nfc: vhp jpy xxo
|
||||
grs: wno
|
||||
hqs: chi aqq
|
||||
rkf: wnd gca zok
|
||||
lmm: rxp
|
||||
jpr: xyl yis ifw
|
||||
nyn: qir
|
||||
jaw: lkt dac xsz
|
||||
iso: kcx pzv ddh
|
||||
pzc: ibk
|
||||
oii: rkf
|
||||
ewh: tbp duc zeh blt
|
||||
har: zzy yqx yeu cjk
|
||||
yns: wsw lji
|
||||
oqe: wkk rfs jjl ahp
|
||||
poy: pzv
|
||||
lec: hor uwp vsq alt
|
||||
eax: mtq tnh
|
||||
hki: igy
|
||||
ktu: vsq uwp alt cvb
|
||||
pym: llu yfp
|
||||
awh: kxu omu
|
||||
hke: dmb szm
|
||||
stl: ooe ctd hmi dya
|
||||
jpy: jpc
|
||||
goj: gri vpy mzs
|
||||
xsz: fue muw
|
||||
jnh: nxt
|
||||
rdd: mas
|
||||
yxa: ods aes tet qet
|
||||
sps: beg jvl uws
|
||||
xxg: lpf
|
||||
tca: out
|
||||
xek: cvb
|
||||
ctd: mzr fdx bag ght ccl hff vqo ebj reh
|
||||
vtq: nky foi
|
||||
fyq: lji
|
||||
zzy: you
|
||||
vhp: xwt awh
|
||||
ofp: jis gzs
|
||||
tal: grs pzr zpn oct qrt
|
||||
zie: khz cqf kpc
|
||||
cts: znd iqx ldv cmc
|
||||
qnr: rrb flv lyp
|
||||
jbs: ktu
|
||||
fyt: jis
|
||||
zvk: xgm
|
||||
frr: uln pmh ndb pno
|
||||
ifw: lpf fwj
|
||||
aes: ejt vip
|
||||
ltp: pzv
|
||||
eqr: vwt iqh ztw xws
|
||||
glz: fxl xig
|
||||
sue: cvb hor uwp
|
||||
zou: qok abm
|
||||
mnq: jmi pkp
|
||||
rxm: adw
|
||||
eaa: yfp
|
||||
tqt: ptz pzc dze mks
|
||||
idf: rwv lun
|
||||
dcr: jpj
|
||||
qti: foi
|
||||
ceu: yfo tds you
|
||||
sok: vsq cvb alt
|
||||
woa: uwp vsq cvb alt
|
||||
fft: jcy igf ypp fuh hub
|
||||
pno: pcf ctd
|
||||
ajc: fyq
|
||||
jvl: hor uwp vsq cvb
|
||||
jns: pcf ooe hmi ctd
|
||||
lre: hor
|
||||
ykn: yaa icr
|
||||
pfg: ckl
|
||||
cxo: dtv kid lmi ezr
|
||||
zbr: ooe dya
|
||||
aos: hrg jpj jqv
|
||||
wui: sft cei cxo
|
||||
ods: ltf
|
||||
ijf: pxy
|
||||
zkt: ddh kcx pzv
|
||||
gri: you tds yfo
|
||||
zmr: ymm hjt qgn
|
||||
yeu: tds
|
||||
goe: ymm hjt
|
||||
rjx: her zmj idf nvp
|
||||
kbm: pbs
|
||||
jjl: ucs
|
||||
xar: oom awl
|
||||
dsd: rjx nxt
|
||||
jmi: oom
|
||||
ltf: pzv ddh
|
||||
qsj: kkj
|
||||
nwk: ddh kcx
|
||||
sva: dmb flv szm lyp
|
||||
avs: jzy raz ttr qcz olc gir ijf dps bwo zvg tzb xoj jro pym voc uxy
|
||||
fpv: vop fxl
|
||||
hfb: cdu lnk vjy trn
|
||||
uqj: fuh
|
||||
pmh: ooe hmi ctd dya
|
||||
vai: zri tno igy
|
||||
oom: uby wze wah jns
|
||||
iuh: kdd cvc xgf ajc
|
||||
yya: goj xea gfk
|
||||
ebj: ukv
|
||||
cqf: out
|
||||
aij: bhl znd ldv iqx
|
||||
dze: ubd gbd
|
||||
csv: yfo you
|
||||
adw: uis gie kkj
|
||||
kqx: uwp vsq hor cvb alt
|
||||
coi: gzs bkh
|
||||
fsj: fpv xvw xtb glz wxu
|
||||
srn: fam oqe
|
||||
qxn: hzj
|
||||
xyx: har xvk pez
|
||||
stu: mzj eaa xoj jka jro clg voc uxy xlp ttr zgx dps lsq
|
||||
kpc: out
|
||||
qgn: plx
|
||||
dwm: wkz qow
|
||||
qir: uln
|
||||
lwb: abm qok xhd
|
||||
ino: puu qow jbs wkz
|
||||
nwm: uot hke
|
||||
gbd: xwl sue
|
||||
awl: uby jns wah
|
||||
10
AdventOfCode2025/Inputs/Day11_ex1.txt
Normal file
10
AdventOfCode2025/Inputs/Day11_ex1.txt
Normal 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
|
||||
13
AdventOfCode2025/Inputs/Day11_ex2.txt
Normal file
13
AdventOfCode2025/Inputs/Day11_ex2.txt
Normal file
|
|
@ -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
|
||||
|
|
@ -1,8 +1,9 @@
|
|||
namespace AdventOfCode2025.Inputs;
|
||||
|
||||
public sealed record Input(int Day, int PartNumber = 1)
|
||||
public sealed record Input(int Day, string Tag = "1")
|
||||
{
|
||||
private const string BasePath = "../../../Inputs/";
|
||||
private string ToPath() => BasePath + $"Day{Day}_{PartNumber}.txt";
|
||||
private string ToPath() => BasePath + $"Day{Day}_{Tag}.txt";
|
||||
public List<string> Lines => field ??= File.ReadAllLines(ToPath()).ToList();
|
||||
public string AllText => field ??= File.ReadAllText(ToPath());
|
||||
}
|
||||
126
AdventOfCode2025/Solutions/Day11.cs
Normal file
126
AdventOfCode2025/Solutions/Day11.cs
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
using System.Text.RegularExpressions;
|
||||
using AdventOfCode2025.Inputs;
|
||||
|
||||
namespace AdventOfCode2025.Solutions;
|
||||
|
||||
public class Day11() : Solution(11, "ex2")
|
||||
{
|
||||
public override string SolvePart1()
|
||||
{
|
||||
const string StartVertexName = "you";
|
||||
const string EndVertexName = "out";
|
||||
Dictionary<string, Vertex> vertices = GetParsedInput(new Input(Day).Lines);
|
||||
return GetAllPaths(vertices[StartVertexName], vertices[EndVertexName])
|
||||
.ToList()
|
||||
.Count
|
||||
.ToString();
|
||||
}
|
||||
|
||||
public override string SolvePart2()
|
||||
{
|
||||
const string StartVertexName = "svr";
|
||||
const string EndVertexName = "out";
|
||||
Dictionary<string, Vertex> vertices = GetParsedInput(new Input(Day).Lines);
|
||||
return CountAllPathsPart2(vertices[StartVertexName], vertices[EndVertexName]).ToString();
|
||||
}
|
||||
|
||||
private static Dictionary<string, Vertex> GetParsedInput(List<string> inputLines)
|
||||
{
|
||||
var regex = new Regex(@"^(?<vertex>\w{3})|(?<to>\w{3})");
|
||||
Dictionary<string, Vertex> vertices = new();
|
||||
|
||||
foreach (var matches in inputLines.Select(line => regex.Matches(line)))
|
||||
{
|
||||
var firstMatch = matches.First().Value;
|
||||
vertices.TryGetValue(firstMatch, out var lineVertex);
|
||||
if (lineVertex is null)
|
||||
{
|
||||
lineVertex = new Vertex(firstMatch);
|
||||
vertices[lineVertex.Name] = lineVertex;
|
||||
}
|
||||
|
||||
foreach (var match in matches.ToList()[1..])
|
||||
{
|
||||
if (!vertices.TryGetValue(match.Value, out var toVertex))
|
||||
{
|
||||
toVertex = new Vertex(match.Value);
|
||||
vertices[toVertex.Name] = toVertex;
|
||||
}
|
||||
|
||||
lineVertex.To.Add(toVertex);
|
||||
}
|
||||
}
|
||||
|
||||
return vertices;
|
||||
}
|
||||
|
||||
// Assume no cycles
|
||||
private static long CountAllPathsPart2(Vertex from, Vertex to)
|
||||
{
|
||||
const string DacKey = "dac";
|
||||
const string FftKey = "fft";
|
||||
Queue<(Vertex Vertex, bool DacVisited, bool FftVisited)> queue = new();
|
||||
queue.Enqueue((from, false, false));
|
||||
long counter = 0;
|
||||
while (queue.Count > 0)
|
||||
{
|
||||
var current = queue.Dequeue();
|
||||
if (current.Vertex == to && current is { DacVisited: true, FftVisited: true })
|
||||
{
|
||||
counter++;
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach (var next in current.Vertex.To)
|
||||
{
|
||||
var nextVertex = next;
|
||||
while (nextVertex.To.Count == 1 && nextVertex.To[0] != to)
|
||||
{
|
||||
nextVertex = nextVertex.To[0];
|
||||
}
|
||||
|
||||
queue.Enqueue(
|
||||
(
|
||||
nextVertex,
|
||||
current.DacVisited || nextVertex.Name == DacKey,
|
||||
current.FftVisited || nextVertex.Name == FftKey
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
return counter;
|
||||
}
|
||||
|
||||
private static IEnumerable<List<Vertex>> GetAllPaths(Vertex from, Vertex to)
|
||||
{
|
||||
Queue<List<Vertex>> queue = new();
|
||||
queue.Enqueue([from]);
|
||||
while (queue.Count > 0)
|
||||
{
|
||||
List<Vertex> currentPath = queue.Dequeue();
|
||||
var lastVertex = currentPath.Last();
|
||||
if (lastVertex == to)
|
||||
{
|
||||
yield return currentPath;
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach (var next in lastVertex.To)
|
||||
{
|
||||
if (currentPath.Contains(next))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var newPath = new List<Vertex>(currentPath) { next };
|
||||
queue.Enqueue(newPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private sealed record Vertex(string Name)
|
||||
{
|
||||
public List<Vertex> To { get; } = [];
|
||||
public override int GetHashCode() => Name.GetHashCode();
|
||||
}
|
||||
}
|
||||
|
|
@ -2,9 +2,10 @@ using AdventOfCode2025.Inputs;
|
|||
|
||||
namespace AdventOfCode2025.Solutions;
|
||||
|
||||
public abstract class Solution(int day, int part = 1)
|
||||
public abstract class Solution(int day, string tag = "1")
|
||||
{
|
||||
protected readonly Input Input = new(day, part);
|
||||
protected readonly int Day = day;
|
||||
protected readonly Input Input = new(day, tag);
|
||||
public virtual string SolvePart1() => "Part1 is not solved";
|
||||
public virtual string SolvePart2() => "Part2 is not solved";
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue