diff --git a/src/days/day11.zig b/src/days/day11.zig index 5e7686a..d16d9d5 100644 --- a/src/days/day11.zig +++ b/src/days/day11.zig @@ -1,120 +1,7 @@ const std = @import("std"); -pub const title = "Day 11: Reactor"; +pub const title = "Day 11"; -pub fn run(allocator: std.mem.Allocator) !void { - const input = @embedFile("./input/day11.txt"); - //const input = - // \\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 - // ; - //const input = - // \\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 - // ; - - var lines = std.mem.tokenizeScalar(u8, input, '\n'); - - var devices: std.StringHashMap([][]const u8) = .init(allocator); - defer { - var outputs_iter = devices.valueIterator(); - while (outputs_iter.next()) |value| { - allocator.free(value.*); - } - devices.deinit(); - } - - while (lines.next()) |line| { - const device = line[0..3]; - std.debug.print("device = {s}\n", .{device}); - - var outputs: std.ArrayList([]const u8) = .empty; - defer outputs.deinit(allocator); - - var outputs_iter = std.mem.tokenizeScalar(u8, line[5..], ' '); - while (outputs_iter.next()) |output| { - try outputs.append(allocator, output); - } - - const outputs_slice = try outputs.toOwnedSlice(allocator); - errdefer allocator.free(outputs_slice); - - try devices.put(device, outputs_slice); - } - - var cache: std.StringHashMap(usize) = .init(allocator); - defer cache.deinit(); - try cache.ensureTotalCapacity(devices.count()); - - const dac_to_fft = try visitOutputs("dac", "fft", devices, &cache); - const svr_to_fft = try visitOutputs("svr", "fft", devices, &cache); - cache.clearRetainingCapacity(); - - const to_fft = if (dac_to_fft == 0) svr_to_fft else dac_to_fft; - - const dac_start = if (dac_to_fft == 0) "fft" else "svr"; - const end_start = if (dac_to_fft == 0) "dac" else "fft"; - - const to_dac = try visitOutputs(dac_start, "dac", devices, &cache); - cache.clearRetainingCapacity(); - - const to_end = try visitOutputs(end_start, "out", devices, &cache); - - const result = to_fft * to_dac * to_end; - - var buffer: [8]u8 = undefined; - var stdout_writer = std.fs.File.stdout().writer(&buffer); - const stdout = &stdout_writer.interface; - - try stdout.print("{d}\n", .{result}); - - try stdout.flush(); -} - -fn visitOutputs( - start: []const u8, - end: []const u8, - devices: std.StringHashMap([][]const u8), - cache: *std.StringHashMap(usize), -) !usize { - if (cache.get(start)) |result| { - return result; - } - - var paths: usize = 0; - const device = devices.get(start); - if (device) |outputs| { - for (outputs) |output| { - if (std.mem.eql(u8, output, end)) { - paths += 1; - } else { - paths += try visitOutputs(output, end, devices, cache); - } - } - try cache.put(start, paths); - return paths; - } else { - std.debug.print("device {s} not found\n", .{start}); - return 0; - } +pub fn run(_: std.mem.Allocator) !void { } diff --git a/src/days/input/day11.txt b/src/days/input/day11.txt deleted file mode 100755 index 1c6713e..0000000 --- a/src/days/input/day11.txt +++ /dev/null @@ -1,609 +0,0 @@ -smx: otc -mmh: gvp -gbo: hyf alz -laa: vky qjq -vrn: tbs tsr jix -xyl: xel eur wdj -sxm: out -wsd: kua hpv jep -qsj: ulu xel eur wdj -xwa: mtd xxf hnw -kai: ehr kaj -uuj: you -owb: ixr bps pim eez ejn syt qrx hxw vsy ghl gfu cgh mpk kfj -vky: owb wlw qic -ysd: mkp jbf btz xgg gbk tvg iju amm dws ykz azc blh xld rpr uek rcl zzy jhu -rbc: ski xyl sdx wpw -zmc: pal lwb rns hex -cuu: vyo -bqf: kmy exx ish -jbv: ysa -aog: ayv kwq -fcq: qic xss owb -hyg: out -xoz: llx kra cqn bzn swe tdo vnz zos duw -gnq: eya -qmk: fcq lyd -ggp: brz eya -oit: yyy quh brz -hjl: dtj lnc jps fyr -sqg: xbz upq -nil: diq -xqa: jei ipw tkt -ond: fft jko dqj pxe -and: ahn izm esa -cqf: xss -rqa: ryb rwu ono fyb -jps: byj fmv shn -ccg: ond afk tbu -dta: ctq jbw whr smq -ztx: hlm ctr vgo maf fkj -sdx: xel eur -xwb: dds -clh: ktb -rtn: quh eya -dac: nxc vug eou -nvh: kmf yga wtv -xgw: kep unr lju mtm -mdx: qmk fwk fbd -tbu: fft dqj pxe -vil: lyz aek -ona: zjk ovx dmv laa -bld: zbs -rms: vjs znm -oku: brz yyy -bzn: dmc fwa ykh vrn axj -uzl: ayv fuz qhs kwq -bhz: ggv -kfj: xqa ucr akl -koi: szi -mvo: dqp kjr rbc -rof: vgo hlm -ixt: jws nxc vug -ycf: out -dmc: tsr -nam: mvo -rkj: quh yyy eya brz -qxk: uty -lwb: phc esx -fqf: isr dax -eou: lqz ysd -lbb: out -hyf: fgh wem yen taw -dfv: nzl -pnh: lai -jon: eya -guf: shn -lmw: hlu mhq -jff: ngn gye -xxj: guf dtj lnc -fbd: fcq lyd -idw: cmg phc -zbs: hjl -lqz: blh ttg ykz jhu zzy uek rcl bld xgg gbk mkp amm iju tvg -shn: goi -hdc: wap pvr -odf: yey ggp jtc -rkk: zyi ubs -fyr: fmv vtv -pxe: ztx mmi -ntf: dds cst aff -lyz: gwp -pyt: zpv ias oiz -cqx: rod jnp -dtj: shn vtv -gfu: kai ctq -ycw: ryl ixt uut dac -yvb: jbv rms fez -lvx: tvz vyo -pvr: yat -oiz: zjk ovx dmv -biy: tdg -xbz: cqf -obk: jje -jcc: ssq daa -elu: ihl kep lju unr -jgf: qfx bhz -wbp: xxj cap hjl -nne: out -llx: axj ykh -kso: kuk ams -eod: nzl aap -ryl: nxc -epd: eou jws ats nxc vug -wqg: uzn yyf -qhh: lqz -fhu: hex idw pal -ipt: ema -vpo: cap xxj -thl: azd otc -ttg: vpo -uty: owb qic -brz: mdl eiw gam aog nam wqg jcc kgs nac bsk zpk kul snr uzl -faw: out -lzw: wlw xss owb qic -wap: iel yat qhh paa -ffr: vnn fiv -nug: sqg eyp sws eai dsh icy zrp mas dmf ccg hoq qze qde cqt zvl jrq gep -ygk: jon oit -eya: ppx nac mdl dej -lnc: byj fmv shn -nhq: kjv -biq: lav xhe vcg -hfn: pvr ydj -leg: oii zad jje -fft: rof taz -maf: qic -aap: rkj hrs svl -axv: esa -zou: ulu eur xel -jtc: yyy -pxc: gvr dyo omt -byj: nqz goi faw -ykh: jix tbs tsr -fai: cst nug aff -oty: nhq -cek: vvv ubs zyi -ufu: zen -xtk: kpg tap qzv -kil: dds aff -ojk: lqz -aly: qak lqz -xxf: aff cst dds -yua: oit ktb rwv -vlf: ujz -lbw: zyi uuj -zpk: nhp urn ctg -kuk: you ysd qak -tmy: esa -sqi: quh lvi -jrq: obk leg -yat: lqz -atl: zpv ias oiz ona obm -xhe: asz jbv -gdx: oii jje -ssq: fqf tap kpg qzv -quh: snr kul zpk bsk nac ufu yor dej ppx aog nam wqg eiw mdl -bvn: luk -zny: jon ktb rwv -jzw: aap plm -jqp: dac -mpk: euv llh -fpr: gwp zmc ulq fhu -ahn: qtl rtn -zyi: lqz ysd -ypn: mtd xxf -fgh: rkk -vgo: xss owb wlw -axj: jix tsr -kgv: kpg -gfa: ona obm zpv ias -eur: eij vil oxs xip hsd hdc gbo laz rnq lnj nuk xck twd jqp ycw btu abg koi cey hfn -bsk: oqd hmt kew -wrx: tas -jix: aff nug cst dds qvv -blc: yan -rwv: yyy quh eya brz -exx: blc dks -ujz: mwp -yyf: xya xmb fee -icq: mtm -hxw: viq eod -xii: fyb -lyb: drx mlf pkl -puw: ona ias -ilj: qfx xph -wlw: gfu ghl vlf cgh mpk yfx pbj qrx hxw jsq eez syt dta ejn bps hnj pim -icy: xbz -wdr: gbm kil -svl: lvi -dax: wdj eur -fwa: jix tsr -fyb: you ysd qak -whr: ehr kaj ogx nvh -agb: mag yan -duw: luk yzp nil -plg: yen taw fks wem fgh -zrp: pyt puw qyk gfa atl -phc: you qak lqz -aff: qze hoq qde mdx zvl jrq sqg dsh eai zrp icy mas dmf -ulu: lnj xck twd jqp btu ycw abg koi gqf hfn eij vil oxs xip nhi hsd hdc kku laz rnq -ezt: nug cst qvv dds -ccu: yyy brz eya -nuk: zpf -ubs: ysd -qyk: ona oiz -kua: wlw xss qic -ssa: kua -uds: ier vnn fiv -cbw: gvr -pln: wdj ulu -zos: htz ilj -viq: aap nzl -azd: jff -esa: rtn oku -rzd: eya brz -syt: euv cbo -drx: tdg -qjq: xss owb -jru: aat eoy dqu -vms: bzf gkm ffr uds -zen: vms zuv vci -qfx: wdr -amm: wbp vpo evr jmb zbs -hnj: sxp viq jzw -vtv: goi -kep: xnp yoh evy -evr: cap -gvp: yyy brz lvi eya -kxs: rod jru uvb -daa: jlo -fks: lbw cek -omt: dds -gtx: out -jws: lqz qak -eoy: out -qvv: fes dmf icy zrp eai dsh iyb sqg eyp sws gep jrq mdx zvl qfd qde qze hoq ccg -smq: kaj -kmy: agb -qde: atl -fez: znm mvj vjs -cey: wrx ryw lbx -ema: brz eya lvi quh yyy -zfg: cst nug aff qvv -pim: yip pxl ujz -zge: lzw -ykz: yrg bss smx -yyy: snr zpk uzl ufu bsk dej yte kgs gam eiw wqg -yor: kew -cmg: lqz qak ysd -xya: zou pln uaz -zpv: laa -yen: cek rkk fce iwk -boc: eay hlu -ygu: xya ofj -xnp: oic zfg eft xwb -nlb: izm -fmv: nqz -mag: aem wtx qrc pyc ipu -tdo: jgf -znm: sxm lbb -mtm: xnp -khk: ipt qvi -vyo: eur wdj -kye: out -uvb: dqu aat yvz -xck: lyz fpr aek arq -acb: wtv gts -gep: qxk upq -ihl: xnp yoh -eyp: qyk -lai: qsj -ipu: out -isr: ulu -qrc: out -jhu: bqf -eij: uut dac ryl epd -tvg: yrg thl mvu bss -pbj: ucr -cst: ccg sws hoq qze dsh qde cqt -yzp: xwa diq cft ypn -uut: eou ats -fee: zou -dqj: mmi taz rof ztx -rnq: arq aek -yfk: yvb zzh -lvi: jcc dej mdl gam aog nam zpk kul uzl ufu bsk nac -tap: sxw -jsq: dfv sxp viq jzw -tdg: aff nug cst dds -cgh: tmy oze nlb and -qzv: dax -jtn: xhe -kjr: ski wpw sdx xyl -ski: wdj xel -oqd: zuv -ppx: zen hmt kew -vcg: jbv -jbw: nvh -ctg: dqp -dcv: owb wlw qic -kzs: rxd lai cuu lvx -dws: bss yrg thl mvu -ara: dds qvv cst nug aff -ctr: owb wlw -ctq: ehr kaj acb -zpf: fgh fks -pyc: out -ras: gvr omt -iby: xxb rqa vlx -gam: mah ygu uzn -ulq: idw lwb pal -gkm: ier -cqn: pdv elu -tvz: ulu -obm: laa -btu: alz -wtx: out -xel: oty oxs vil eij hsd nhi hdc gbo kku lnj ycw btu jqp xck gqf hfn cey koi abg -uxa: lwb hex rns -yga: gnq -ppv: lav xhe vcg -upq: hzh cqf lzw uty -mvu: otc exw -yrg: otc azd -kul: qsu xtk ssq daa kgv -pif: mbd bzn mzo xhj wee jdf -xhy: wus khk mwp -ehr: wtv gts yga -fes: zge -rwu: you qak ysd lqz -hnw: cst -goi: out -hsd: alz zpf amk -hzh: wlw xss qic -lbs: vlx rqa -dds: mdx zvl qde qfd qze jrq zrp icy iyb dsh eyp sqg fes dmf mas -tsh: hpv kua -svr: xoz lak pif ryf dyv -gua: hlu -jei: jtc ggp -wpw: xel eur wdj ulu -jbf: biq jtn hut ppv yfk -hoq: qmk fwk cxr fbd -blh: evr vpo zbs jmb -mas: gdx -afk: jko pxe -zzy: lmw boc -vsy: tmy oze axv and -htz: xph qfx bhz -yte: mah ygu uzn rcr -zuv: bzf gkm ffr uds -yvz: out -ejn: dok llh euv -jlo: dax isr -qvi: gvp ema rzd -mdl: mah -wdj: hfn gqf cey koi jqp twd lnj rnq gbo kku hdc hsd oty vil eij abg ycw btu xck nuk nhi oxs -ias: dmv zjk ovx -laz: nhq -ish: blc -pkl: ezt ara -xhj: elu -tlp: ais -mux: zrm uvb -vci: bzf gkm uds -nie: wtx aem qrc -ike: wdj xel ulu -abg: pvr wap -ono: lqz -yip: khk -oze: ahn izm -lak: bvn mbd llx xhj lyb pxo -dmf: obk leg -wus: ipt qvi -oic: nug cst qvv dds -rpr: ifc fjg mfu -vvv: qak -qtl: lvi brz quh yyy -rqt: pdv icq -yoh: eft ntf oic -aby: nug dds -yfx: axv tmy -xmb: uaz pln -hrs: brz quh yyy -eez: llh cbo -lyd: qic owb xss wlw -dyo: dds qvv aff cst nug -evy: xwb eft ntf -plv: esz ktb jon -luk: xwa ypn -nqz: out -ier: wdj eur ulu -yey: quh eya lvi brz -otc: svv tlp jff -qze: leg gdx obk -aek: gwp ulq -mah: xmb fee xya -pxl: khk xux wus -wem: iwk cek lbw rkk -nhi: uut ryl epd -cui: out -qak: ykz xmj jbf rpr xgg blh -qwm: eya lvi brz quh -dsh: zge qxk upq xbz -hmt: zuv -bss: azd otc -rxd: vyo qsj -eay: uhs mux kxs -vnn: ulu wdj eur xel -iju: ckk lmw gua -fiv: wdj eur xel ulu -izm: rtn oku -xld: fjg mfu ifc -xph: ggv nqb -ija: rxd cuu -tsr: nug cst aff dds qvv -uaz: ulu wdj eur -ats: lqz you qak ysd -cft: xxf aby -taw: iwk cek lbw rkk -rns: ojk phc -qic: vlf eez cgh yfx dta syt bps hnj jsq -gqf: zpf amk plg hyf -ryb: qak -tbs: nug aff qvv dds -gbk: yfk -eiw: mvo ctg urn abp -kpg: sxw isr -pal: phc ojk esx -ais: nne hyg kye ycf -fjg: kmy -uzn: fee xmb -hpv: owb xss wlw qic -hlu: mux cqx -azc: ckk lmw boc -dqp: xyl ike -aat: out -fuz: srk pnh ija -ypw: jgf -pdv: kep -dmv: qjq vky -fya: llv iby lbs -plm: rkj -xux: ipt qvi mmh -gye: kye gme -zzh: fez asz rms -snr: ayv fuz qhs -ydj: qhh akg paa -rcr: ofj fee xmb xya -kaj: wtv kmf yga -lju: yoh evy -ebo: sqi jtc yey -vlx: rwu ryb ono -tas: xxb xii -wee: pdv xgw -fkj: owb wlw -xro: ilj htz jgf -hum: lqz ysd -kku: bsy aek lyz -euv: clh plv yua ygk -akl: ebo jei tkt odf -lnj: fya lbx -lbx: iby lbs -mhq: cqx uhs -hut: vcg zzh -szi: mnj ams -ysa: sxm rni lbb -vug: you -llh: ygk yua zny plv clh -nzl: hrs -uek: mvu -mmi: maf vgo hlm -eft: dds cst -dok: zny yua clh plv -kmf: npf lef nsp -mnj: you qak ysd lqz -paa: qak you -ghl: xhy -ggv: kil gbm fai lvh -jje: ssa -jko: mmi -srk: rxd -yan: ipu -nxc: lqz you qak -gts: qwm npf lef gnq -qrx: kai smq whr -ovx: oiw -unr: evy xnp -kew: vms vci -sxp: aap -oii: tsh wsd -cbo: ygk clh -xip: wrx lbx -sws: ond tbu -abp: rbc -tkt: ccu ggp -diq: xxf mtd hnw -gvr: nug cst -ipw: jtc ccu -arq: uxa gwp ulq -iwk: vvv uuj aly zyi -mfu: exx kmy -dks: nie mag -twd: fpr lyz arq bsy -fwk: lyd -jnp: eoy aat -nsp: brz eya yyy -xss: vsy bps ixr hxw syt pbj kfj gfu -nac: kgv xtk qsu -oiw: qic xss owb wlw -svv: ais gye -mtd: cst dds qvv -ixr: and nlb axv -jdf: pxc cbw -dyv: dea wnr xro ypw xlu -qfd: afk ond -wtv: qwm nsp -xxb: rwu ryb fyb ono -wnr: xgw elu -uhs: uvb zrm jnp rod jru -asz: mvj vjs -eai: gfa puw -ofj: uaz -vnz: pkl -kgs: mvo urn abp ctg -fce: ubs uuj vvv -pxo: vrn fwa dmc ykh -cxr: lyd fcq dcv -xgg: ifc -mzo: biy pkl mlf -gwp: pal idw rns hex -you: dws amm iju tvg bld xgg jbf btz mkp jhu uek blh xld ykz ttg azc -jep: wlw xss -nqb: lvh -zrm: yvz eoy aat cui -zmm: odf ipw jei -kjv: qak ysd -akg: you ysd lqz -lvh: qvv dds aff cst -ogx: gts yga -urn: kjr rbc -bsy: uxa fhu zmc gwp ulq -lav: asz fez -exw: svv -esz: lvi -sxw: eur xel -ams: lqz -qsu: fqf kpg tap -bps: akl zmm xqa -ayv: srk pnh ija kzs -gme: out -oxs: szi nhq kso -hex: esx hum ojk cmg phc -xlu: luk -aem: out -mlf: ara -kwq: srk pnh kzs -jmb: xxj cap -dqu: out -iel: ysd -ucr: ipw -cqt: fbd qmk fwk -nhp: dqp kjr -ifc: ish -llv: rqa xii xxb -dea: luk yzp nil -ngn: nne gme ycf hyg -ryf: xlu rqt swe bvn lyb duw cqn bzn jdf wnr wee ypw pxo vnz xhj zos -lef: brz quh -mbd: pxc -cap: dtj guf -rcl: wbp evr vpo jmb -zvl: fbd cxr fwk -btz: lmw gua -ktb: brz yyy -taz: ctr hlm vgo fkj -mkp: jtn hut yfk ppv -iyb: afk tbu -gbm: nug dds -swe: ras -ckk: hlu eay -rni: out -bzf: fiv -qhs: ija -rod: yvz -amk: yen taw -vjs: rni sxm -hlm: owb xss -zjk: oiw -mvj: gtx rni -ryw: iby llv -npf: quh brz lvi -zad: ssa tsh -esx: lqz ysd -mwp: mmh -alz: wem yen -kra: luk nil -xmj: smx -dej: kew