diff --git a/AdventOfCode.sln b/AdventOfCode.sln index bc57254..3218e0e 100644 --- a/AdventOfCode.sln +++ b/AdventOfCode.sln @@ -100,6 +100,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Day24_1", "Day24_1\Day24_1. EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Day24_2", "Day24_2\Day24_2.csproj", "{9EFF6200-BB72-4969-9612-3182A1E20A43}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Day25_1", "Day25_1\Day25_1.csproj", "{76D9EFBA-0FFA-4463-9249-93D2F6A5BC33}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -114,14 +116,6 @@ Global {7ED15525-D801-438E-9800-79C2251C53AE}.Debug|Any CPU.Build.0 = Debug|Any CPU {7ED15525-D801-438E-9800-79C2251C53AE}.Release|Any CPU.ActiveCfg = Release|Any CPU {7ED15525-D801-438E-9800-79C2251C53AE}.Release|Any CPU.Build.0 = Release|Any CPU - {9EFF6200-BB72-4969-9612-3182A1E20A43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9EFF6200-BB72-4969-9612-3182A1E20A43}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9EFF6200-BB72-4969-9612-3182A1E20A43}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9EFF6200-BB72-4969-9612-3182A1E20A43}.Release|Any CPU.Build.0 = Release|Any CPU - {C2B32C5F-0BA2-48C2-9538-81524D7C3D71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C2B32C5F-0BA2-48C2-9538-81524D7C3D71}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C2B32C5F-0BA2-48C2-9538-81524D7C3D71}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C2B32C5F-0BA2-48C2-9538-81524D7C3D71}.Release|Any CPU.Build.0 = Release|Any CPU {D5968FD4-5504-4B08-A64F-1BC7DE3BE7EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D5968FD4-5504-4B08-A64F-1BC7DE3BE7EC}.Debug|Any CPU.Build.0 = Debug|Any CPU {D5968FD4-5504-4B08-A64F-1BC7DE3BE7EC}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -302,6 +296,18 @@ Global {A092FFB8-D3D1-426A-87FC-CB317521F3F5}.Debug|Any CPU.Build.0 = Debug|Any CPU {A092FFB8-D3D1-426A-87FC-CB317521F3F5}.Release|Any CPU.ActiveCfg = Release|Any CPU {A092FFB8-D3D1-426A-87FC-CB317521F3F5}.Release|Any CPU.Build.0 = Release|Any CPU + {C2B32C5F-0BA2-48C2-9538-81524D7C3D71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2B32C5F-0BA2-48C2-9538-81524D7C3D71}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2B32C5F-0BA2-48C2-9538-81524D7C3D71}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2B32C5F-0BA2-48C2-9538-81524D7C3D71}.Release|Any CPU.Build.0 = Release|Any CPU + {9EFF6200-BB72-4969-9612-3182A1E20A43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9EFF6200-BB72-4969-9612-3182A1E20A43}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9EFF6200-BB72-4969-9612-3182A1E20A43}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9EFF6200-BB72-4969-9612-3182A1E20A43}.Release|Any CPU.Build.0 = Release|Any CPU + {76D9EFBA-0FFA-4463-9249-93D2F6A5BC33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76D9EFBA-0FFA-4463-9249-93D2F6A5BC33}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76D9EFBA-0FFA-4463-9249-93D2F6A5BC33}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76D9EFBA-0FFA-4463-9249-93D2F6A5BC33}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Day25_1/Day25_1.csproj b/Day25_1/Day25_1.csproj new file mode 100644 index 0000000..7a8e773 --- /dev/null +++ b/Day25_1/Day25_1.csproj @@ -0,0 +1,28 @@ + + + + Exe + net8.0 + enable + enable + + + + + + + + + PreserveNewest + + + + + + + + + + + + diff --git a/Day25_1/Program.cs b/Day25_1/Program.cs new file mode 100644 index 0000000..fc9abd7 --- /dev/null +++ b/Day25_1/Program.cs @@ -0,0 +1,127 @@ +var input = File.ReadAllLines("input.txt"); + +Dictionary vertices = new(); + +foreach (var line in input) +{ + var parts = line.Split(':'); + var name = parts[0].Trim(); + var connections = parts[1].Split(' ', StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToList(); + + if (!vertices.ContainsKey(name)) + { + vertices[name] = new Vertex(name); + } + + foreach (var connection in connections) + { + if (!vertices.ContainsKey(connection)) + { + vertices[connection] = new Vertex(connection); + } + + vertices[name].Connections.Add(vertices[connection]); + vertices[connection].Connections.Add(vertices[name]); + } +} + +var startVertex = vertices.Values.First(); +for (int i = 0; i < 3; i++) +{ + var (farthestVertex, path) = FindFarthest(startVertex); + + for (int j = 1; j < path.Length; j++) + { + var from = path[j - 1]; + var to = path[j]; + from.Connections.Remove(to); + to.Connections.Remove(from); + } + + startVertex = farthestVertex; +} + +var componentRepresentative = startVertex; +var componentSize = CalculateComponentSize(componentRepresentative); + +Console.WriteLine(componentSize * (vertices.Count - componentSize)); + +(Vertex farthest, Vertex[] path) FindFarthest(Vertex source) +{ + var queue = new Queue(); + queue.Enqueue(source); + var visited = new HashSet(); + var distances = new Dictionary(); + Vertex farthest = source; + Dictionary previous = new(); + previous[source] = null; + distances[source] = 0; + + while (queue.Count > 0) + { + var current = queue.Dequeue(); + + if (visited.Contains(current)) + { + continue; + } + + visited.Add(current); + + foreach (var connection in current.Connections) + { + if (visited.Contains(connection)) + { + continue; + } + + distances[connection] = distances[current] + 1; + previous[connection] = current; + queue.Enqueue(connection); + + if (distances[connection] > distances[farthest]) + { + farthest = connection; + } + } + } + + var path = new List(); + var pathVertex = farthest; + while (pathVertex != null) + { + path.Add(pathVertex); + pathVertex = previous[pathVertex]; + } + + return (farthest, path.ToArray()); +} + +int CalculateComponentSize(Vertex componentRepresentative) +{ + var visited = new HashSet(); + var queue = new Queue(); + queue.Enqueue(componentRepresentative); + visited.Add(componentRepresentative); + while (queue.Count > 0) + { + var current = queue.Dequeue(); + foreach (var connection in current.Connections) + { + if (visited.Contains(connection)) + { + continue; + } + + visited.Add(connection); + queue.Enqueue(connection); + } + } + + return visited.Count; +} + +public record Vertex(string Name) +{ + public List Connections = new(); +} \ No newline at end of file diff --git a/Day25_1/Properties/launchSettings.json b/Day25_1/Properties/launchSettings.json new file mode 100644 index 0000000..458e04e --- /dev/null +++ b/Day25_1/Properties/launchSettings.json @@ -0,0 +1,7 @@ +{ + "profiles": { + "Run": { + "commandName": "Project" + } + } +} \ No newline at end of file diff --git a/Day25_1/input.txt b/Day25_1/input.txt new file mode 100644 index 0000000..b37bf69 --- /dev/null +++ b/Day25_1/input.txt @@ -0,0 +1,1163 @@ +xqz: mvd jch lxn txj tns +qrt: spp mbz +slm: xdc +rnv: dmq +npx: llg szn mjz dhv ddr +shm: zrq jkq vgx +jfk: mmg trr +qbv: fbc zgt +crx: jtm rlg kdb kxg +jnn: hqt mcv +zvg: szx +xrt: sjs hnf nnn +fxj: nsf nln sjl +prh: tfc +kmg: gct jpl fgr jgm +cbs: trb +ldj: jsq bxs jbk +lkh: cfp dll +gdb: jmg bgr lkk nhd +jgq: qpm trb szg +cgd: jzh xsr +klk: smz +klc: mmg jsp zlf brx fqf +xsr: znq +ljh: sst +src: xmv +nhp: gxc src lzz +kbh: txj zsx +lrf: pkc +lrv: jzr pks +gzp: brx qcr +vfg: cmv +gtn: krd bsj jgt +rqx: rfv pnc +rzv: dmq +bjh: mvd +pxn: dhf +pgn: htz lpf tsx nfv bvb +qrb: dtt +mjk: tsd kpv +fbc: zcz hkj +jqr: pxz +bkl: zks kpg bmj vbf +nsk: dkl jzg +xrn: zdd hfx qvt +gtm: ccb sng vlx shr +mkr: thp mzj hfc lrp +htx: rfk +jxl: vkd grb mps lxr mlt +gmf: rdz jxq +crc: tvd qmt xxf dzs +tqt: gff +gvm: lvj ddk hvc hzc +gjv: rkm qsh nfl zhl +fpv: htm mdn +psl: qfq +vdm: pmv hhm +chv: dch bqv nsl qtg fsp +xlc: xqg hvc +llr: vkh fcb zcn +kpp: ghz bsq +czf: dfs cll qfq +pmg: pzc +jjg: jdb mlq mmj vsk +qkk: jch grf +gtd: ggb ftq +djr: zpr dgr +bpj: vzl lkb lrf +mfp: nhd qsl hnt nth +ngr: fhg jxn gsn +kvj: nfh qxl +pmv: mmx gbq lqx zqt +xdh: lzr tth gkv +fsg: znf gfh tvt +pln: rkz vgs +dhl: qrb zfq bjx +rrv: hqt nxh kvk +vgt: vnx +dcv: cmt ffx +tfc: nnh +mlg: cmc cmt sst nfp +rlg: dvh +htm: bmj +sls: vsm xks vds glp snr jdm +nrc: ztf tns tzk +fdm: klz hjx vzl rlr +pxl: zzf pps gtt rzv +fkr: hkp tsx +gsn: dkf +xqm: rrv +hlp: sxf cgt +nxg: rxf lcg +gzd: qdm qsd vrf hpd fsb +vkd: tvl kvt +cbb: gbm qrh fhg +vpf: kct xbp ggx dhj +lpk: gfv vcv jmk +qlv: zzn +fmg: vmj gbm kvt rjs +bmn: ngq gkx pks vcz +stm: pgc hlp lbx rrr +qkr: hlf cfm ctl kxv ggx vjm +gnl: kkj ltg bsl sfd +gdj: bzs ncn grb +rql: xnp rdf zzn qnq +lzz: qpd +pbf: hlv xgb +kgj: tkh +bxd: qrh ngm qks +svs: qkd +llg: zpl fqh jgf kdr +sbc: sft fcc lpk pjm trs qpz rnv +bzm: kck mdn svk zrb nnn +zdd: txj +qnh: ngm +jqh: jgt bsj nsk +drx: mpm fhh vvx +nvr: hrr mcv kfz +ddk: srp ctj sgx pgr +kxs: rvk jsq fnc +hpx: hlz qlv kqg +rgm: bkf jdm +dnf: gls +mcz: qld cjf +hcc: hlv vhc dpm +bgz: jnb bqk rvc klk +lhc: rgc psr tkf qmt +kds: vhc fdm llx mpx +sxc: fnc +vdq: rcg +jsf: kvk +pbm: mgk gzn mbq tph +thf: fqn qsh xsf kzb +rlz: hlp fbg qmt zrh +mns: rkn bkm lpc kqg +qlz: gnz njl trr nnj +rjc: vbf pmv bpj dqs +kfx: cgc zsx dgr +ngq: rpd pgp bqk dzs +sqz: nhd tnx pth mzq +dpm: ffx dmq +bfk: bmj +dzv: ffg +ncl: ckv vkx ntb zpr blm jmn qrb +dkq: lcj dnv kqg nxg +rzh: kss +lpc: pnc tlv zpb +jtm: tsx +fcn: rqx +mvd: xln +kzv: xkg pzc zdd +pvj: jcq pln ltg +dtn: rvc cgh rsf rzc +jhp: grb +spb: pxt +bsq: hlz rmk +kkj: smb tvq lss tgr +cdl: bkz +zmk: tlj pvs pvz src +cjs: gtd gsn zrq +mnt: gtt hgf mhz dqs +rrl: jnb +jbc: qrb tfg kfc +vsv: bxd bxq dtt +qks: zcf bfc +tth: vll sjl nxc +dgn: nfh svv slt +jhf: hxv rls +vcp: hhm +jcs: fcc vnq zbc +gjz: fsb tgr tmz hvt +mzf: psl zdz +cmd: hnf +tbm: rgt ktt msz htx +tpv: fvp sft rkn xlc +sxj: bnq str zrb +ssg: gjv lxn dhz +qkf: ctb hrg mdn +vch: zbz mzf dkk gtp +znf: gxc lrg cxm svm rkm +ltg: rvn +dhj: mhk qgt +lnr: lkj fsg zxj gzn +sxf: vrc +fvg: kck ppk dcl fvl +nvt: xsz lbz xrh +rgn: ngz +qsh: slt rtz +hdq: rbc fgr mnb hdj +zgp: ssm fvz bcm rcd tnl xxb +rrs: sbn dts glr zdd +bgj: hsr ppt chg hgd mvk +kvv: dnf jtk mbs rbh +hbd: cfp +blj: rrl +sbh: lxn rll cbs qtd +svd: zpl tzg prn krs +rqm: zgl jqr kbn vnq +hqn: btl dxm +rdd: gzq tmr vfg +fbx: vzl qcr +lpz: vrf nfl mks qnj lff ntb +lsd: ghz xdc +vkg: rlc xhb gdj pcj jjk qdm +qcs: jjv djr rnk cmv +shv: fqn rqf xrr txs +zzs: lbx btq nhl lrc +xhb: nzp lrr zpm +qbd: mmf hlz kpb hkp sxb +phf: fgp dkr hsq svc +xxb: svv +zhz: rvc nhl qbz +kbn: prn svx +qld: krs +sxl: mps bvh frd +clp: zqt bzn hnf jsh zpn +lhm: rbg dss lss grb bkp +qpb: mpm ktt bpl +pfh: jjp hmq mls gtv +mmj: kjs +flj: sjl vll +tlz: sxf rvn nfk +pgg: rkr rvx bzs hfx lck +dkk: lmn dkl +rdz: mst jhr +gfk: mbs klk +jtk: cdb +hvt: nzh hdv jbl +fsp: ttn +qjc: rnr pst +zrh: pqq fmn fpr +jrd: qxp svc jsl jsq +dxj: fcn hsq bjs vhc +bxx: qgs gds qdx smf bvl +rxk: xhv +xqn: hpd +zjf: bcc +tkk: pdt kgj xdr pxn ckd +fdf: dzx jpz xdr snr rqf kcs +txs: tdg zsx qkd +fkf: zjt hjm hpk +qsg: vcp mnl rdf +svj: qnf jxn vvv rrr +tnd: sjf xdq cgt rgc +cgt: nkc +bpp: mps pcf vgs jtq +lrr: ffg nhd +bdj: zpl gfv jpk zbc +krr: tzj flx smf +vpb: xts dnv +klq: xrh gmf zdz +bsf: bdr nrn jbc mrx +brb: lmt lzc szn scv +kmk: llq hmq hlp +dhv: rzm mcv zpl +rbk: rxk xqm dcl +bnj: mjf djz rll chc kzz +sht: zcn glr jpn dhf +ckd: lbg dtd +nnh: hnd +rkr: svj mrx +rvx: dhf +zlc: zpl bxs +cpd: jhg cmg mjb sbh bgs +mqv: qvb nrc fhg dts +bqp: jpt bbf cfq cpz +ccb: srp rxf sxc flk +tzg: spn ljl +rnk: smb zpr zbm +qdv: hjc gbb qvq pkg +tpb: vdk rgq zdm tmt +qjq: sdz lcg pzl qqt +vxx: jpn rpd tdg +pnx: lkq hzj btq klk +jpn: qzz +fph: tlk dhf fzt lxr +qdx: jdb xqn +cfz: ftq vnx vgt +gnn: dfs +pdt: jrn jjk xhn +sms: cdl qvc dld +kjs: dgx tmh jxn +fdq: jbk fcn bjs ppk fvl +llx: mgv blr kbc rqx +nxh: mzf +vcz: vpj bbm +pbx: djz ntb sjd knk +jkm: pth bfj +sjf: gps tqn +vhc: nhm jxq +dvg: xbc vrx shr bpj +xcb: qvc dzk qrx lkk +krd: kpv tsd +hzc: zgk mjz lcx kck +vjj: dkl +qnj: zcn mvk +cmg: slt mjb qsd +kpg: hbc ttj +zsf: pbq fkr +vbv: fdg lvn rvr jrn +tlp: ktt lbz fvp tbf xrb nnj +zvl: bkp zrp vxx ktc +gkx: ngx knq mks +nsl: vvv jhp +mbt: jdb srq kcs +zbm: ppt +spg: phf cqv pps vrx +gbb: cgg dzx tsn +vgq: mnl xdv +ndh: hdc rnv +xsh: dzs mvk +hzx: dhm hbq +srp: qmb +bxj: rgq sjd klb jpt khg +nkd: fqv +hjm: kqf zzn +vzp: pvh dll lkb rrv rkx +bhp: ntb vgt +hxv: czg hzm spb +lxz: gnz +hqm: xqj nfg hdc +xbx: zlp tzz xnp +pgp: blj zcz mbz +qvc: hjc vcz +mgj: fbx zzx njk jpf +qvt: xcc dst +jsl: hqm kbq +fls: mdz sqr +cpz: ggm +mqx: bph txn vdk +frn: dlx lrf jnn qkf +bnt: szx gdt nxq +dhz: nhp jpz hcg zcz +pqz: hjm gnn psf fgp +mgk: bkf kfx sqr +btp: ghz svx pxz +fbt: dvx mcv rlg xqs +nnj: pbq +hrg: xck +rth: dtt fls vrc nsn +ppn: hfj chc pqq lff +ncn: ffl +zbv: kgf lqx pxv zlp qsg +gdq: ddk xlc jsp rjf zbd vdq +ccx: nfg pnc mqz +ztf: dkf +mzq: sbn dtt +fxn: fgj zjf fpr lrr +hmq: ggm +jxq: vrx +bxr: ngz knf znq +mdd: vtx +khn: jdm +fvb: blj jch smf rnk gps +svm: vhg sxf +hdv: nhl cdl zgt jtl +fgt: svc cdj pxv +vrj: krs +plh: mmx rxb cjn lbz dcv +kvn: zbv vfm bfm jqh +mvs: qvb +kck: mpm vln lkh +lvn: drv jtq +ljg: jhr rdz nvt rgt cjn +cmv: mzd +nkt: tvm qsl qbz mpn +tkj: fsp jmd cgg tvl +zcl: qnq mcc jlh +ncp: kqg kpc +qtg: nfz vvb +zvn: dtt +dff: qbz bjh hdv slt +xrb: kcr dxm hbd +tqn: lrg srq qsl qrx +nkm: glp pcl hvk zmd +mqz: trd +nks: gtt xhv str dkk sxk +dbk: jtk zvc mbq +mdz: xkg rvc +ssc: tzz zzf sdz fbn +txf: dvb kxs cfm xck +mrz: fgp fxt qfm +pkc: hnf +jkq: jtl llh sqr +kdr: lcg jbk +vqx: jkq fml jtk kbh +thp: czf jzg stx dsq +ctj: str +lfb: mlq svs vcz +vkr: tnd zzs ltg xdq +ljk: qvb vvb bkz hxd qnf +dbd: smz grb xxf +qvq: kcs pxn gls +ndk: rxb +vmj: scd qbz mbz +fzg: fbc jbl zln +hqt: fnc +bfh: jdm xrn jdb ckd skm +lms: ldc nhl tgf tmt +kjp: scd src kmg +nnn: ttj szx +mrx: hfj +smb: xks llq +cll: mst +jrn: xxf +lvj: cmd +cfg: cdj tps xdc zqt +kqt: gbq qfq kpp qmb +sgx: bgv +nqh: jqr jlh rmz +vds: hks bhp lps cxm +lkz: bqv +pzl: xvs +kzz: hmq snr kfc +ppz: flk fqm sxb +lpg: hfc ngz lvj rgn jpf +mpn: rkq rnz qgs zrp +hbc: dmg lcx hbd +fqh: kbc rxb +rrc: zmd lpj vbx tnx +tns: vpj +blr: lkh tpg vcp +ndx: szn kpc ggx +vfp: gkl fpk jlh pps kpc +nfd: hnd +pnm: tzz jrl djm kbj zsf rkf +vkx: rjj zsk zpm +tzx: ppf +bcc: zsk tqh vfg +cpf: qbv bkp lrv djz hfx +hjf: brl jql zlc lmr ppz vdm +pvh: vrj +sjh: mcz bxs vzn pzl +hrc: pzx ngj xmn vll +ztj: zpl nnn +mjg: nrx mfj vnq +kts: xxb tzk zcz xhn +tmz: hks tvd +ffl: hlp grf dbg nfk +ctb: gbq fbn +gkv: mrq mdn kpg fzq +qkm: fqn pkg qjk zdm kzb rnb dqj +cqh: vrj pnc sdr mmx +dxq: qtd msp +lrg: vdk hnt +rxb: mhl +dch: xmv bsc +xvb: zln rsp kbh +bbp: bmf lzx dvr bvb xbc +jvq: qvt shm fqv qsl +gbq: rkx +mcc: kpv zlc +tzk: vsk ppt +tsj: qjc vpb xqm mrz +mdk: csr znq rzh +gqr: nfd fhh gtt dfs vbk vtl +lhk: rsf +xdm: mph bhh nrc +nlc: dqs jhr gzp +mnf: svs +xdc: hsx +mmt: qkk rhs dbk bqk +lzx: bfm +mks: vvv hdj zpm +gbl: cmv fzt bfj +lgs: slm vbf ptv kpc +qcx: hjd drv +gpj: mpr vrj prl prh +vdb: cdj vzn fqk kss mhl +gzl: ldh ljl qkf csg pbb +rxf: psl +cfq: msp jtl +tnn: mjk brx +hbq: mdd +htz: ldj vln +fvp: nsf mhk +msl: rbg jjp rzc dbd vzk +jfx: slg dlp jqh sxj +fzq: mmf +hlr: lzq pcf tmh rbh +btq: lzz dxq +lbg: rgq +nfz: flx +xdr: jvg +mzj: mgv bfm pkc +ffx: gnz +bbr: xtf xtz pst +hkm: jrl hzx rcg zsf +gzn: qrh +trd: ngz xdv qcr +shg: jbc jmd ssm ggb +dts: tzx vgs +jdb: trb psr ftq +tlj: snr jmm bhp +slp: rzv zhv nfg +qnq: fxc +ksc: fxc vln xsr +kdv: lhk djr hvk +vvx: mhk jzh str tfc jmk +jtq: hxd +qpp: ndk ktt ccb dmq +cvg: vrf kgj +bbj: pxd tnn nfp bxv mhk +gxn: nsm pcj zhl +xts: ksv +rzc: pbr hdg +hjc: lzq nkd +djm: nfd pkl jcs hjx rdc +hmc: bjx vdk +plq: pps gth rtm dsq hlf +kfc: pzc +fjf: rjd lkz ghk dgn +dcd: plp mvd tlz +ngp: tkf ffh xvb knk scd +xjt: bjh hvt qjk +dmz: gdg rvn gsn +hdc: nhm +mbq: pln tnl +cjn: mpx qld +bpl: rdz njl jzv +rtf: cpz kgj flq +stx: sdr vdq fxc +zrp: shq jxn +bph: vtb bvh jhp +kfm: mdp hnd +fdg: rkr zvn dff hks +rqc: jbk hzm qjq +gkg: mmg jlf grs dfs +shr: jzg jqr krs hqt +ghk: drv +fxt: rzh dbn +mgb: gkv qgt nln +dpr: ttn jnb +hjd: dgr mhf tlk tqn qrt +rsz: bxv mhl +cdj: pgr +jnf: mps kfc +zpq: xts fpv bkm +kbr: bqv +tsq: gfv vfb +fmr: tbv tgr tzj bqv rjv +ngj: rzv +lvd: vrj +rlh: jlf lrf mdd tsd ktt +lps: bjx +ltz: hkj cvg qgs +ptb: vtx szx bfm +pxv: gsp hrg +mkd: mcz ldj gmf jsq +vgx: kbh rkz vpj ttq +cbn: gzp zhv +frh: bxv fmd kcz gxz +ctl: nmn dhm +pzk: lsd sxj +nkc: gzq +cgh: lkk +tfr: zgt tdg hgs +rjs: flq qbv zvq +zbd: xbx krd spb +dzx: fqv zcn +qlq: skm bjx +mpg: ldh bzn lbz cqv +rqf: nfh +fcc: lpf qcr +lsb: ffx fhf bnq +fqf: sgx hbs +bzn: klz +nfl: tmr +rhs: snr bdr +rcv: bsq brm lkb +fxd: xts vrj rgn +lmn: scv gkq jhr +rdt: cfp tcj kvk slv +mmk: dtd lhk qcc flx +ldc: nkc cxm +zgk: njl grs +tjh: gkq pvh zdz qsx +sdx: nth rnk chc +tgr: ggm +pxt: cmd +qqn: jsf jhf pzl hcc +zrn: djz zms vnx lxr jvc +gjj: qhs fbx mmg ndk +hks: xks +tjx: khn qzz zbm +tvm: qnh +tkh: zln bbf mbq +vtl: dvh ccb kpp nkf +lkq: mnf lzq +tvq: xdr zvn xcc +xvx: dcv lcj xck kxv +xcc: kts +rrb: cgc nsl zbm qpr +hcg: vgt flq fgr ncn gzn rrl +tzl: mst +pvq: fnd bnq zlc +tfg: fml dgn trb +vxc: dqs cll fpk ffc +dvx: sng +rcd: nzh dpr vlt +tpg: dbn vln +jvl: lmv pvz rgm +jpf: bmf rnr +dbg: rrr +mnb: zvq svv bbf +fpt: fhh zqt ssl dlp sdr +rnz: nsm jtq +mtk: tmh pkg qcc +ddt: nfd clp nnj ctj vgq lxf +qqb: shq cvg dnf rvx +dvb: zpn rmk mqz kpb +rkm: lrv +zft: dhm rmk crx vrx +lrl: prn ctj jsl +txv: fqf gkq kqg pjm +glr: qmt jvg +pvd: ftq qdx cgc +rlc: gds ggb +mbz: qzz rsf +tzd: sbn txs bzs ktc +lff: jtl +mdb: pth jhk pcl dzv drv +jvg: ngm +rkx: xvs +jql: xqm bsq cbn +shq: qvq bkz vvv +qjs: llf tgf xsh lbx +rtm: rvk hlf fxc +pvs: nhl tsn +xfm: cfz vkh kvx +svk: kxv +lxj: kdv pgp smb bfj +gkq: dvh +drv: lrc +psf: thp jfk lzx +jgr: ndk gsp zbc nks prl +jpl: pmg hqx +gtj: btl fhf +ttq: bhh +fbg: mdz zjf gtd +qgs: xxf +fkx: hfj jmd mhf rfg jcq +rbp: vfm dkr xts gzp +dgm: kfm lvd znl hbs +zgl: bmf btl mpx hgg xls +lvs: hqx lfb shv qcx vtb +gdg: qnh jzr rtf xqn +tgf: mph +rvk: pgr +tmt: xln lbg txn +fdt: lvn hxd hgd +jmg: mpd tqh jrn +ctc: czg sst gfv vjj mjz +qnz: xtz grs +lkj: kvj rbc +pxd: bjs bfm slm ttj +fjj: qcg zfq ztf dss +gvt: scv dsq +dhm: nhm +fdp: lkj lzz bhh kts +hfc: hkp svk +xls: pps lpf qnq +slk: jvl qpm ffg +vzl: gff +fqv: lbg +xvj: cxm ssg +blg: zjf bxq gsn flx txj +hxh: zbm jfg rgm qtg +trs: bjs rkx +smp: csr ndh zcl +tvt: rvn mnf ncn hnt +bmh: hbq lsd vzn +hlz: mhl +jsh: vll +hsq: trr +qcg: hdj +szn: jzg +kgf: bpj nkf sdz +njk: dlx dhj fdm ptb +kcl: lff ttq jjv +fcb: ngx drd bgs +fgj: jpt qhv +kvt: rsf +jxz: fqf zvg ngz tlv +hld: fdm jgr vbk rgt +ffc: hbs cbn +cmc: jfk kfz zft kxs pbf +xsp: nlc nqm dll kvk +qfm: mhl rdf drx jhf +dst: tmh kbr +rgt: qsx jnn +rkn: zhv mmf +jzr: gbm xrr hpd ztf +ckv: fzg cmv gdg +ppf: dhf +vhg: dch rbc +jgx: rvk kxv fpv gjp +hnd: gxz gnn +lkg: vgq tzg lrp rnr +fzm: khn bsc pcf zcf +vvt: bxs qgt gxz +hpk: nfg xqs spn +pzc: qpd +zxj: xdm rsp nzp vfg +lcx: pbq +nrn: rqf tbv txn +rdf: jpk +kxg: xgb mdd +ljl: ncz vtx +cdb: lff pcj jcq +rfk: bgv +xqg: slg pbf gdt lzx +mrc: bfc ffh +qdh: gbz ncb cgg jnf +lzq: hgs +vvb: llf knk +zmd: zms rtz +pcf: bkp +pzx: xvs pkc rgn +csb: rkm llh xfm kcl +dgx: mvk +xkc: jsh kcr pxv nhm +scj: gjp fqk jpk gsp +mjb: zdd grf +xrh: dcl +lzc: fhh nxq bfk ctb +tpl: ksc kqf dkr +rbc: rkz +sfd: rkq +zbc: gdt +xnq: bkz jnf dkf dbg +zgm: jfg mrc xhn tjx lrr +sxk: kcr +hmr: fsb sfd kgs tvl zrq +gct: qzz +bbm: kbr hpd +tps: lmt flj hhm +mjh: rfv +zdm: mrc +kch: rkz vkh kvt +ppk: spb +tzj: gtj +rkf: bkm bxr bsj tsx +kct: mjh svc qjc rcg dxm +mjv: vdk zvq lbx drd +nfv: xqj bzn mhz +rxm: rlg bnt fnc jzv +hrt: qkd smf +mbs: ttn ngr +gth: mpx kbq hsx +bvh: rtz +scv: lrf tqt +bgk: frd xcc +pcl: vvk hgd +zpn: mcv bgv +kcb: zdz mdp +mrq: cmd mst sjl hlv +cqz: cgg plp zbl lkq kbh +nmn: lzr gdt +htq: mnf blm bjh qsd +zlf: svk sng +klz: hlv +vzk: jpn vgs tfr +qtt: cgh kts zms +vbk: gtj mjh +rnf: tbv dnf +jzv: xhv qvq +kqg: kbn +llf: ngm dst lkk +vqb: rrs hdg xks +jrz: djk nrx jgt zjt +zcf: ggm +lpn: hvc jlh jrl nfp +blm: jcq +hkj: bkz +dnv: fvl lrl +tbf: htm rcg ncz +hzm: jsh pgr ptb +vlx: tth frh hrr mgb kqd +zhv: rjf +brv: rlr xgb fqk jcs +kpv: kpc ddr +mjf: dzk bkp tkh +qnf: bfc +ncb: sfd vhg +dlp: pvh kfm prh lvd +vmx: kcb sgx tzz +xdq: dgn +jch: lkq +fpr: bvh rjv ldc +vbx: drv bsl +gbz: fph qgs +vfb: lcg vln klz +zmr: mnl slp kcz kbq +flk: znq +nlq: vqb xdq jpl fsb +xhv: qfq +nth: qrx qlq +xmn: mpm hqn xgb +dlx: hkp gnz spn +rjd: ttn +dvr: kts zvc shv xdq +qrh: qks +htr: rcv fcn gzp zgk +tsx: btl +qrd: cbs tns mtk kjp dhg tgf +nfp: djk +rfg: rsf sdx mjv +nbg: xqs rqx +rkq: kch hmc xkg +bpg: hbd fhf mhk qmb rbk +zxl: vmx rxb fqh nfv +glp: mzd mvs pks +dtz: hkj lps qpd ngx +jgf: qqt msz tsd +rnb: jkm sdt kkj +rvm: tnn vlh mdn cbl +qpz: mmx psl kbq +vrv: rjf zzf gff jsl +szg: nfl mrx jnb +dtd: sqr qrh +spp: rvr qrx +gtp: xbp kcb ksv +kqc: srq skm rdd nkd +qxn: fgt rxf tcj xsr +vnq: bfk vfb +kbc: xqj dll +qsp: flx rhs dtt +chg: bqk +nhd: jmm +vzn: jzh xqj +klp: mmf nqm hrq nln +xsf: dcd vbx gct +bzs: nsn jhg +dtt: nns +rgc: sbn sjf sbg +xln: tmh +lmt: prl bmf ppk +gtt: kcz +vjm: dkl vlh xnp +vpj: mzq +nsn: hgs +bgs: rjv +ggb: nns fgj +pbq: klz +tml: lsb njl qnz znl +brm: rfk mgv tcj +rls: jmj hfc tfc +jrs: zvq jjk qsp lck vlt +fpk: gtn bfk +gqt: sxf vkd qxl bkf +klb: spp rnf jhg ltz +qdm: rjj bsc +mpr: bmf hbq cgd +vkh: mzd +pkl: jtm trs +jhk: mvs tmr ngr lkz pgg +kmc: pvq klq fpk qlv lcx djk dsh +vcv: gxz nxh +nsm: vrc +ltq: tvm llr vsv shm +znl: dmg lzr ddr +trb: lkz +pjm: bbr jpk mjg +bvl: hgs cmv +lmv: dch +tdg: dpr +zvc: tph +zlp: rnr +klf: vmx fbx hgf +qcc: nfk xxb +hnt: qvb bfc mmj rll +ffh: vpj jmm +ktc: rnz dhg +fhx: zlf dkr jpf +mxr: mzq rhs dqj rnf +bbf: dgn pvk +hjr: kdb zvg ngj +pqf: hdj ngm vsx gfk +bsj: fqm ksv +jpt: fqn +scc: zlc cfp hpx qpb +knq: tdj +prl: nxh zjt +sgq: fbc sfv jvc ztf +qrp: fls knq tsn sfv +pbr: qpm chg rjj +ggx: nmc fzq +hfx: vvk +spn: dkr +ltp: ncp lrs pkl bmj +qns: rtz cvg tdg rtk +jsp: dsq xtz ndh +qdp: mqz mdp bzm psl +srq: jtq gtv +pgh: gkl xdv tth jlf +fml: vgx hdv +kkf: fzg dss ngx lmv +zfq: zcf +ssp: nnh nbg bsq +jjk: tpb qnf +vsk: zcf bbm +bsl: svs lps +dsq: hhm +xhr: pxn hvk dmz qkk +hdg: gds zcf +czg: hgg hrr cgd +lxf: brm fmd nfv +dfn: dzk xjt chc lrc +dfs: pxt +sjn: bmj xtf mjh rxk +jpz: cpz qpd +hqx: llq +hpp: rdf brl ldh dpm +jgm: rgq bqk qhv +ngn: pzc tbv plp mms +sdz: dvx +cbl: qnz ztj ngj +gbm: rjd +zsc: tph nkd dzv +rdc: hsx prh +drd: rtk csh xcc mrc +kdj: hbq vrj +hgg: bkm +jhg: frd +mxf: tsq lxz nxc kct +jmk: hdc +nqm: jmk hsq +rvr: lhk +nkf: kss fnd +mpd: nfk mvd rvr +jfg: nkd tdj +csh: mph tmr +bqk: ttq xmv +lcj: brl +kgs: zvc hfj hqx jvc +dsk: kss sxc dvx qmb fhx +jkj: tpl rzh srp nxg znq +bgr: vvv tmz jmm +jbl: bsc +hrq: flk jsf tzl +rbg: kvj zdm mzd +bdr: cbs gds +rpd: xkg +pvz: dzs +sbg: mbt zsk dxq +tlk: ppt qlq +gjp: qld +ffg: zcf +tqh: xrr pvk +bkf: qsd +nmc: ghz zlp mfj sst +hzj: hmc gls sjf +vsm: gbm +qkv: mdk pxz kqd rqc +zjt: fnd +vjq: hlf mdp nxc trr +zrq: vrc +nnr: tvm dhl txs cgc +jjv: hgd lps +cqv: vjj sxj +dqj: fhg bkf +knf: xtz ksv +tnl: zgt +gcz: pxz dcl mgb rnv jtm +jjp: dcd hmc +ccg: dvh zzf vdq ngj +sst: tlv kcr +hqv: rtk fqn nfh skm +jrq: llh nns vsm tdj +vrc: cdl +jzt: gxn nfz bxq dff +qjd: vdm dgm ssp nvr +sfv: chc +btt: tsq csr vhc fdm +fmd: dqs tbf +zhl: zbm cfq +qkt: dcv qcn smp kdr +vlh: lzr +vpt: brx mdd rmz xdv +csg: nhm nxc rzm +sjs: ljl vzn xbc +qjk: tmh mpd +dss: knk +qcn: fnc kck tsd +dmg: zrb +xbc: tlv zvg +ptv: nsf vtx dbn prn qqt +tnx: rvx mhf +thx: htx kpb jxq vdb +bsv: mlt nnr cpf qxl hrt +lck: zfq tzx +khg: nfz bxd pvs +lpj: hvk fzt +mls: rrr zvq cgg qsd +mjz: lxz +kcz: fqk +qpr: ncb fbg mqx src +dbn: pgr +xck: zbc +zpb: scv qxp +zms: hpd ngm +vzh: kqf xqj pzk hpk +ngx: jhp gbl bhp jvl zvn +pks: cbb +skb: vbk kfz nqh jrl +vfm: xvs +lqx: jlf rmk +hsr: jnb vsm xrr qrh nns +vbc: qpm fzj rnf klk +mms: bbm +qkx: vzp ljh zzx fkf +tdj: nsm cfq gbm +cbj: gbm tmh qtg frd gfk +slv: rxk sft ncp +kzb: sqr rtf +tng: rdz gvt rdc dkr +rlr: fqm sxk +mlq: cgh ghk grf +cxm: rbh vrf gls +fkh: jmd lpj jhp ppf +qhv: bhh +qxt: flj gkl cmt +gkl: dxm +fmn: qsl gzq pvj +grb: qmt +gfh: rjj mzd vbx tzx +nct: kmk qcx dgx psr +blt: zhz knq dhg qcg +mfj: svx ghz +ldh: cjf csr +qmt: dkf +rsp: qnh bgs +dgr: dbg blm kbr +fzt: blm +lxr: mms +gtv: pcj grb +xqs: svx +flq: mrx +qjx: hzc ndx ncz vvt kdj slm +vqm: lmr smp ssc ljh +sdt: vsx dld cgg +tnt: nrx bzm vvt brl +spc: mph bvl svm qmt +sqv: gjp fxt xtf xdh fzq +pvk: pmg rrl +brl: rzh +nzh: pvz hsr +vsx: nfl jvc mms +vtb: chc dqj tnl +xnz: ctl sxk fkr +nrx: dfs bnq ksv +bsc: ttn +pkg: zln grf +tvc: tcj hrr ccx lcj vjj +cfm: nxq htm fqm +fzj: krr sfd plp +msz: jgt mcv +ssm: dzk lrc cgt +smf: svv jpn +qsx: cjf hrg +kll: htz tpg pxt hjx vdq +rjv: khn +kbj: fkr dpm zzx +dkc: hdj qnj xhn txn +gps: tzx mmj zpm +qgt: lkb +cpv: sxl qmt jrn lmv nkc +jmj: jbk btl gff +dzs: qrx +zbz: mkr dmg hjx +ppr: cmt xnp vrj mcz sdr +rnr: lpf +ssl: mcc fnd phf +lsp: csh tvl fqn xcb xvj +rtk: qtd +zpr: zsx +kvx: cvg thf jbl mvs +tvd: xqn rll +plr: xln qrh bgk crc ngx +gpv: cll vbf ljh +ghj: lbz kpb lvd +kfz: rfk bxv +dsh: qsx vcv htx +qxp: fgp +fhh: bgv vbf +jlh: hjm +grf: grb +llh: qrt msp hjc +fbn: jzh rdz +fgr: qhv +sft: hnd +fvz: jgq blj pmg +zbl: qtd gct ppf +mzh: fxd gvt lxz grs +lss: kcs xnq sfv +tkf: psr xsh +mhz: nln zpb nqm +bxq: vvk +psr: fsp +xsz: rdf ffc tzl +djk: qfq +nxq: xrh mnl +bvb: lpk kqf mjk fvl +xqj: mst +zks: hpk bmh kxg +hls: tqt jsf kbc rsz +rfv: qfq knf +pbb: ttj xsr xvs +lrp: vcp fqh tsx +vvk: tmh fqv +ktt: sxc kdj kpv +vxj: drv bfj khn xvj hgd +mlt: lkz cjs +rbh: jkm +lrs: tqt zpq grs +nzp: qcg jvg +msp: ghk +bcm: psr xkg rjd +gsp: sxb +dld: tph slk fdt +pth: mhf +gvd: hrt zsc gbz bgk bxj +rmz: nfv vfm +tvl: khn +scr: gtj hbs fxj nsk +pst: klz nmn +fnj: trs xqg qqt +gpp: ncz lvj gnn +brj: vpb fnj tfc dxm hbs +rhz: rlc rzc vgs ttq +slg: btp gpp nxg lsd +vlt: dzv qkd +zsk: qxl +kdb: ddr tzl +ctx: hzx xnz bjs kxv +kqd: ghj ppz +zzf: hqn +nsf: sxb +bkr: lxn pvd zsk scd dhg +qhs: xqs hgg dlp +zzx: dvx +cbp: tqn jvc xmv qcg +lmr: ztj pzk gpv qlv +dhg: dhf kzv +hgf: zrb qgt +qjl: spc tmt sdx sms +pqq: tsn dgx +smz: hrt tzj +rzm: cjf vlh +jmn: vnx chg nsn rpd +fqj: lpg jsf nbg rjf mgv klf +pgc: llq klb vpj +xbp: xqj hsx +hvc: zzn +xtf: xhv +sng: sxc zqt +szq: nnh fhf ksc vrj +pgq: rsz qxp vxc vzp xrt +cgn: bsq hjr bbr cbn qxt +gzq: gsn +gxc: qtt bfc +sjd: hxd rnf \ No newline at end of file diff --git a/Day25_1/output.txt b/Day25_1/output.txt new file mode 100644 index 0000000..e69de29