From 791afead095bcc3cfd849774ae3415da7a502f15 Mon Sep 17 00:00:00 2001 From: kageru Date: Wed, 21 Dec 2022 13:32:51 +0100 Subject: [PATCH] Add 2022/21/1 --- 2022/inputs/day21 | 1901 +++++++++++++++++++++++++++++++++++++++++ 2022/src/bin/day21.rs | 93 ++ 2 files changed, 1994 insertions(+) create mode 100644 2022/inputs/day21 create mode 100644 2022/src/bin/day21.rs diff --git a/2022/inputs/day21 b/2022/inputs/day21 new file mode 100644 index 0000000..3814ef1 --- /dev/null +++ b/2022/inputs/day21 @@ -0,0 +1,1901 @@ +bwmv: 19 +dbdl: mjtf * zqpw +bznb: ntgb * rmvp +mdzc: jhmp / rsml +fgzd: 2 +fvng: bbmt + zqwq +pwjm: 2 +nzgc: crnw * vshp +wrdd: 5 +sdtq: 2 +zfcc: 3 +gzpv: 5 +bhbm: 7 +gcvp: 3 +fvtc: 2 +hzqb: 3 +srsm: djhv + ngdn +dvsh: cswn + rmgw +swlq: 5 +sfcf: hsfd * qhrz +bqpt: mzvw * fhnq +rjdp: 6 +nzqb: hnsg + ncdj +njzw: 1 +vrgp: prbv + mjfl +cjdb: 2 +hbrw: jtpw * nqcp +czcw: 1 +vwps: hfjl + cjmf +mpcs: mggp * hvhp +brtt: 2 +mcfl: pcfp + vsgw +tnqf: 2 +phnn: gdgz / mqfz +vzcv: 2 +fzdf: 5 +ldms: hvbd + srpj +wpwz: 4 +jjrn: 4 +rhqs: 3 +sjhz: 10 +bhmh: 2 +sgwj: zmts - lvhv +nmvz: 7 +hdnz: 3 +msfd: 5 +zmpc: 4 +zmdd: 8 +jbpn: 3 +qspm: qwpp * jhlw +mfgh: 4 +hcst: 5 +wqwm: bnrp + lgcm +nzfw: ntms + smzd +pwwg: jfpt + zgth +bnpq: jngz * nsph +smsl: 3 +hzsg: 2 +ntsw: dhdf * tvvw +pfgh: 3 +rgcs: ndtg + fclp +bjmc: vnqb + zjts +hdsf: pfsv + lrsr +dwcc: dpqc * fcvr +lcfl: 2 +cfgh: wphs + grrq +czgs: 6 +rwcv: shfq + hcsj +zwdg: fwgm * vmbl +vpcz: 5 +mjmt: nfdg / ntrt +dsss: fgzd * pntp +dtrg: 5 +pnbz: 3 +mjbs: fhlv - fljw +zhmd: 13 +znsb: bcwv - lftg +lntf: bmbp * dmsf +jznq: 2 +zqjm: 2 +mjnf: sbsn - vchq +hhwc: 2 +shrg: 3 +zljr: wfjm + czcw +qhfm: nmgr - qshc +zgtg: wqbz + nfqj +zpbz: lnpq * ppjh +rvqh: 1 +vrhq: pgjl + lzbr +mtth: ghmt * rrrz +qffq: qwrp + zpnq +prpq: vljj * wgwl +mqpl: qssr + wjwv +spbp: jvhh + ldms +zhrn: mcnf + swlc +mjhd: 16 +bpmg: 4 +hzrz: 4 +pntp: 3 +stmj: 2 +rdrs: 14 +ttvr: gfqw * znhz +gvzf: 4 +mlsp: 4 +mqjv: 4 +rgwv: 2 +sgbz: tvhj * lnwm +lqgf: 2 +fqws: 5 +ddvn: 5 +vqng: jvlh * ldvf +tzrc: 11 +cswn: rpjd * gczj +glgr: 3 +hspq: zlgs - cfgh +jjtd: 2 +vpgw: 2 +qggg: 5 +vvql: 2 +vcnq: 4 +dznt: 3 +hzjr: 5 +lglh: 1 +gchf: 2 +vzpf: zhdn + rnfb +nzqh: 5 +tdfl: wjsv * wrpz +bhpn: 11 +psfv: 2 +tvvw: 10 +glss: 3 +jcvg: 2 +phbr: 7 +bpwd: lggr - mcfl +pqtc: 5 +fhrj: 3 +mmhr: rplb + rfnv +lhqj: zrff - dgwl +vmtw: bdgr * glhq +wjsv: 3 +msjn: plbv + gsjn +jbmv: 3 +htfv: 2 +dlpj: 19 +szmf: dqzp + rrlm +sfmz: 3 +sdqb: hpll * fzwp +fvql: bfwm / jgnd +lcmg: dcff * rfdv +zbtq: svdq + snbf +sqds: 6 +tcvr: dqfv / szcj +dnrm: zqcl / bjzz +whmg: 2 +vfng: 3 +ptmg: cdmz + fqws +rrwc: 2 +mfnf: brtl * czzg +jbbn: 2 +ztjp: 15 +jcnm: 2 +bpdt: 9 +gtzt: chfw * pjtf +jgbq: zchp * rbht +bnrp: qbrm * wplv +fdfm: vqng * sfmb +qtjw: vzmq + qggg +crlq: nvhn + fqgq +wpwc: 4 +glsb: gghd + tnwj +bhzj: 18 +rdjw: dznt * wmpj +qdbl: qvmt + jtnm +tndm: bqws + gchf +gjlz: bvng * rdrg +jmtc: bslz + fmtr +pdgw: 3 +pgjl: dpvh * ttff +fsqh: 2 +tcrj: 5 +brtl: gvls + psnv +bvsd: 2 +zgqz: 20 +bqqt: 8 +gswt: vtqp * vmtl +chdn: fzpp - pcfq +dhjr: nhqs * nzjd +hhwj: fdbp / prnn +lznm: 5 +whnz: phnn * jvhv +nhhd: 3 +vltv: 1 +zlpr: qqrd - ggnr +dpnr: 4 +jvcz: cfdq + bdsl +vsnt: mtwc * zfdn +pzpn: vsmj * wnvf +hgcc: rhfp * gfvh +zghb: hcww + njrb +lgbl: jcmf + fhht +zfwr: rgjv + spbp +dlcq: nhbg * wmsh +szsm: 4 +nthw: 16 +dbzd: 5 +fvhd: lntf + mvgl +mcds: 11 +qztr: vczb / rmcs +rvwr: jtwj + mjhd +fhzn: 2 +pjtf: 19 +qvfm: cqst * qpmw +ddlj: 11 +qjqf: plhv + tldm +jfpt: 4 +qmcp: 6 +wgqw: 3 +svgw: 2 +jwsb: fvhw - mvzg +shfq: gspt * bzrs +hpbf: 1 +nfcg: bljl + vpfb +mqgg: lrdg + qvdm +jnfw: 2 +qjqt: 17 +sbnc: 5 +gnht: 5 +qqbd: 3 +nnsm: 2 +mrhv: fcct + jnmf +nmbc: hfbt / zcsf +bjwq: 3 +wrbj: 3 +fzpp: tfjm + wghw +hldn: wtpp + rnzj +dfvc: qnqn * dppz +dzhb: jwjp - cvmg +mjbh: jgrc * szmf +vljj: cpft + vftr +nlvv: vmcn * nqbh +gzjp: 19 +vcjt: 16 +lqbp: 1 +vvqj: bzjh * fhwl +zddr: 10 +sqrq: 3 +brwq: fnrs + trwn +zvbf: 5 +prqd: 4 +gmnb: mtdt * vsgp +tdcr: 2 +fvpr: jbzq * lbms +tfpl: 3 +flmh: 2 +fhht: tpvd * dhjh +dqrf: zhmb * ldlp +fhcr: hqpg + vztf +zjbq: 11 +wqct: wszs + lpsp +dwmn: 4 +sqhc: 6 +zjlw: 2 +lnft: csvn + qzfw +lrsr: 6 +wbtb: 4 +nqbm: 3 +mvzg: shrg * gsrm +mrpq: prch * ztsb +dgwl: cvhz * jcpf +swtw: 2 +rhgp: nwrg + rrwc +nhbg: 2 +qqtt: 7 +cpft: 16 +mtjz: 2 +znhp: lnft * vvql +tlvj: 1 +jhsv: lqcb / lznm +ggns: hzjr + nchv +dppz: 2 +jtnm: cflc * czgh +rfjh: zghb + jmcm +vfzz: 3 +cjmf: 3 +wzrc: glqg + zcjn +dpvh: cwtl + fnfj +vqvh: 2 +lqdl: nzfw + pdlp +bbsv: lclb * dfvc +jmtf: chvq + cvfc +btsq: qtjw * cdnd +czgh: 2 +zhcn: dsls * jjsd +hvjt: mwnb + ntzf +dqtl: 5 +djrh: tsdw * cbrd +zcsf: 3 +fdls: 13 +tlgd: bbpd * dnzh +nsdp: 2 +lggr: bpmg * plmh +trcq: tdbv * ggzp +vvfl: 3 +qrnp: 2 +rncb: 3 +pbnn: gjzv * fcpl +zlmn: pwnw * lpvz +bshs: rrtq * bfhf +spgv: dlsh - szmq +blhf: 2 +zjvq: 4 +wvzq: sgbf / jwtb +pvmj: 2 +gblc: bjzw * jvcz +hjbq: jznq * vcgh +qvdm: 19 +pmfp: 2 +zhfh: qvrw * lwqg +gbdl: 5 +mnct: 2 +wcwl: 2 +llvm: 13 +pbdb: qztr + ttqr +dhgn: lblh + qfls +bmnb: 3 +ntgn: 3 +hnfv: stpv + lwmh +cgmr: chtr + gnht +wgwl: 4 +qggj: mqjv * lmfc +djfn: hnfv + wclv +vczp: 2 +hfbq: 2 +bzrs: 3 +lbtl: 2 +dcvb: 16 +bbmt: hgmr + nvqm +vfbf: gnfs - mlsp +wnvf: 5 +rmvp: 18 +ffdl: cblg * nqbm +szmq: lqbw * zptz +jwjp: hgrl * zgzg +dmpc: zgtg + bpvp +vshp: 11 +qjdm: 4 +rfpz: 9 +lggh: mcln + mcth +prnn: 2 +vzgb: 2 +tsfr: 16 +vchq: rpgb * vwlf +mnqn: 7 +pzzz: wczt / vhdw +sjbm: 14 +qllr: qdjp + zdld +fdpt: qmcp * gqtl +bmwl: jppw * ldpd +znmb: nflm * jwqz +gcwj: 3 +wcqb: nwgz / smls +slwd: mdzc - hdng +rlzb: fvtc * cjtn +gwmp: 2 +dwzs: 3 +qzrc: 13 +cjsp: 5 +btsr: 13 +dqzp: ffwj * hcst +fcct: 4 +scsm: rqcr / ddgl +chtr: 2 +ztcm: 2 +tlvz: jbcs * sbfs +jvns: 18 +hrjv: dpzp + nsbl +ctwq: 2 +dvhq: shms / wssb +zhfm: 4 +bfhf: 4 +ppqf: 5 +bntm: 6 +bmns: mjfg * bgdj +trzs: 16 +fjjb: chsr * hzmp +tgwr: 3 +nfqj: 16 +hvhp: 2 +sdpv: cszr * wlss +hwhr: 2 +ndtg: 4 +gcnf: bqbc * mrfp +mbnp: hbdc + grgm +bldr: brwq / psfv +bjzz: 2 +wqcq: ljqb + mnjp +gpsj: qmnr / nprh +hgdr: fgth * crqr +tnvl: lmlp + sbtn +dfmj: 20 +bdgr: fjgn + vhlh +mvll: nhhd * pjqs +jvlh: 2 +jmsl: zmmz * bdrq +tczz: 4 +zqpw: 16 +qssr: 1 +phwl: 7 +jmlz: 3 +dtdl: 4 +gnbw: 2 +dmhs: 4 +lpbg: nrwb - zgqz +qcrq: 5 +hcsj: 2 +root: mrnz + jwrp +dchh: jzds * zfcc +vhbw: 2 +jrct: pclc + wwmh +jrnf: 3 +fswn: 2 +hdhm: znhp - tbqp +hzps: ttdd * wqsl +vvrp: 16 +cfdq: 4 +szzs: wvcs * mwjv +tzjf: 5 +lbmf: 5 +mnjp: jnvp * bmrc +hnsg: dngc + wsjn +hngp: lfpw * dfnw +qmdj: vlhz * vhth +wvrq: wqct + dsvz +svfc: 2 +hvmj: wgcs * bpwd +lzjs: dzhb * ppqf +prgf: 3 +lqqr: 3 +qcpp: 2 +jwdc: 2 +hsgc: vtrh + pmjn +tlsc: 5 +mdpl: svqw + pwhl +bzpt: 5 +fvhw: gchv + rnqz +mrnz: hncd / phsp +lnjg: mfqs + zfln +rthd: cpbd * gwqc +bzwc: 4 +btcd: bwst + nzmr +bfsh: 15 +bldp: 10 +vsgw: hldn + rzmp +tpvd: 4 +gqwv: tmgv / dqqp +ddtq: 3 +mpbq: 17 +qwqw: pvmj * hfvz +gfvh: mzrn - vghf +sjlq: fswn + vggq +cfgr: rhqs * dgtn +fszg: chzd + dwcc +jvhv: 2 +zlcl: glfw * zcnp +bcwv: gvqz * nzwg +gglj: 6 +wssb: 2 +dphd: 2 +chrg: thzp * gcwj +nbjj: 2 +nrlq: prpq - zvjw +vnqb: pjdf + zmls +mjrl: wgqw + zhfm +dzrs: rqts + vwdc +dnzh: 2 +tdtb: hggc + ztjp +fpnq: 2 +zqcl: rzpj * dbww +ftsc: fhzm * bhlz +rrgr: 3 +rbnj: ttfb * mdjl +spwn: 18 +zlht: 11 +zgth: swhc + jbbb +rdnq: hzrz + ngfn +pldw: rqbp * ftcw +drbn: 5 +twsw: bsmt * crzb +qvsj: jvmh * wqwm +dsfm: wdvv * gpbj +bprz: nfmb * pgrj +bfwm: tcjh * bhmh +wjwv: 12 +dggm: lgtb * mzlv +wdvz: bfrg + tmwj +wwmh: cnmc * hhwc +zqss: 2 +zzwh: zdfp * vjfv +crff: 3 +ctfz: 4 +jvmz: hpmf / mbbc +rsnh: 2 +gjzv: gwmp * btgm +qcqj: mwmw + cmhb +vvrf: 13 +tffp: pmfp * drhd +mzvm: 2 +lzsp: 2 +clsq: vqvh * gljs +qmnb: 5 +qznt: 3 +wdzq: qzhw + bhbm +mtcv: 8 +hmqd: 5 +plbh: wdlh / svfc +czmj: 4 +zpnq: 12 +zpcf: pqfm * qwrm +nflm: wwlm * dsfd +mcln: dtdl * zmpc +nstb: zqss * lvdw +wqpd: msrg * rbgq +jstq: dgdn + dcvb +hbvf: 2 +drrb: 1 +pcfq: 7 +smhn: 5 +lfpw: 2 +fnrs: jhgg + zvfs +fcsr: 1 +lcdv: smwh + vmhf +vvwt: vmtw / cccp +hfqr: 2 +jblj: dprq * phrn +mtmc: 5 +mmwj: tcsn * bwmv +zqmc: 2 +dsql: vmcf + zpcf +rfbr: 3 +ncss: 19 +psnv: srfz + pzfs +lgff: 8 +hwcl: 7 +fqjw: jqwh + mhqw +jdvg: 3 +qzpg: nhhv * lgjp +gggc: 2 +nlrs: 3 +vhlh: frph * ddnl +nwpl: 3 +zdfp: 5 +vpfb: prcl * jcnm +bljj: 3 +srnq: 2 +qwpp: 7 +ljqb: gswt + rzzt +lvhv: 1 +brlg: 10 +rlnn: 2 +jhlw: 2 +vzmn: 3 +hbls: hzps / gbhc +plvb: 11 +nfvl: 4 +sljl: plml + lzjv +szvf: 17 +rgvt: 4 +chzd: dbgr * mttq +rjrn: lmnw / ctpd +bbzc: 4 +cbps: zqfj + gtct +pcsf: bpnn * nhvj +cdcr: pbnn / wpwc +bjzw: 3 +phpl: 2 +dpqc: 3 +vqvq: trcq + vwps +fcfz: 6 +mpsq: qjqf * lhfm +vnmj: 3 +rqrd: rthd + gsgd +fcvr: 5 +lhch: hbjt + ljcq +hncd: zfgj + brbv +hvph: 9 +srfz: lhmg * nqsw +nrzb: qhfm * jnbm +wdlh: hhwl + rqzm +mstz: mbds + mmph +zqwv: 5 +nqsw: 3 +qpzm: dbnf * vqlt +ggzp: 8 +zfgj: mdmq * mpsq +qzhw: 1 +rppp: 16 +lhht: 2 +rfvv: 13 +rpsr: 5 +wbwf: 2 +cppz: bwtw * qppz +bpvp: dlcq * fzng +rbtw: 3 +wmsh: mpcq - dchh +lscm: 11 +bhlz: lhch / wdzq +sbcs: tfns + ddtv +rgjv: tsfr + qmdj +zbwg: 9 +pgrh: 15 +lrdg: 6 +dfst: 17 +wmvw: vsqr * hljl +gtrp: 2 +jlcj: zblj * wglg +wzrr: 16 +ggnr: 5 +zbfr: gdtz - fdqq +cnmc: gdwd * zjlw +tcjv: jjgj + lglh +rrpb: ltmf + mbfl +zchq: 5 +crdv: dvhq - lhmc +sgcm: 2 +dcml: bzwj * tbld +nrfw: 3 +fnfj: 19 +zgld: 5 +qbrm: 3 +crjf: 3 +dsvz: mmhr + nvqg +tljb: rfbl * fqjw +mflf: 4 +mtzf: 2 +zqfj: nbns + btcd +clrn: 3 +smls: 2 +tvhj: 6 +rvjc: dvsh * gggc +dzpc: qrnp * sjlq +wglg: rrpj + gmnz +thgz: 4 +njhc: dncj * mjnf +gfqw: 3 +jhjv: hcvc + ghsj +fzmr: 6 +chlt: nrfw * jzff +jwqz: rlnn * tcjv +bzjh: qspm + rncb +dfnw: 9 +pfnm: cnhz * hdsf +mzvw: 2 +mzqr: wcsd + jhsv +wjsh: scsm - rrpb +jbdr: 2 +vcbr: wdnj + lgbl +lpvz: qvdg * ljrn +dcnn: cjsp * lbhs +wghw: 10 +ndpw: 5 +vmcf: 2 +nzlh: 1 +lbms: qzcj + tzjm +vdgd: 18 +dnft: qrtv / vzgb +cccp: 2 +smzd: 7 +jqrr: pcpp * hvph +mdwj: mjdf * msfd +dncj: 4 +qfls: fcsr + hngp +dqdc: 2 +qvdg: 17 +cblg: 3 +ffwj: 13 +bzwj: qpbc * mrlh +mplz: 5 +vqdq: brlg - zpmq +ljpl: 7 +mtwc: 3 +qvmt: fqtb * vdlw +fljw: pggm + mmwj +ltmf: zjrj * ztjr +mjdf: 2 +zmmz: gtcd + tzpf +hhfr: 5 +zlqm: sfcf + frld +rzhq: 8 +rqts: 2 +jgrc: 13 +nzwg: qffq / qrjh +fmhf: fwrq * sjbm +mwwv: vmvq + hgcc +jqwh: tvvn + nmvz +snbf: pnqt * fhds +ljcq: zlmg + lsvh +qmcm: 2 +gghd: rjcv * hjsj +bwst: ztgn * bwlf +mnwp: vzcv + dcnn +djfq: 3 +rbdd: 20 +wlfb: pwcv * lmpt +wphb: wbrv + wcsf +zjrj: zzng * zsvv +vqsh: gbgn + vvgg +fjgn: lrcn * vrhq +sbtn: bqdh * stnp +njmg: bmns / gchz +nfft: qtcz + qhdd +nhjr: dqfp - mfdc +rbgq: 7 +lgtb: 3 +jzts: sdpv * hbls +gjqq: znsb * nbhz +vftr: wzsl + tjhh +tvtc: 13 +wbfs: pdgz * nfvl +fhlf: 6 +bswv: 15 +rghj: mrcn + sjsb +qsln: gzjp * zfwr +jppw: mtmc * rpsb +zwvq: 4 +wplf: pldw + tnvl +lcql: 12 +pncm: bprz / fzqm +fclr: 2 +szss: 4 +vhmc: 7 +lqww: ggns * wqls +phsp: 5 +dgdc: 2 +drpc: 20 +hbcz: hwmj * mqpl +pcfp: hrvz - vsnt +rgfj: bpls * mrhv +vmsw: 2 +brbp: qdwn + lscm +nphl: dcml - mzqr +dbnf: 3 +phzv: 7 +rtmp: tznf * nrzb +lsvh: wpzm * qwhb +wgcs: 2 +nwgz: mhsz + lbqr +rwgg: 14 +ggch: qvfm + gmnb +qlgd: nfdf * hddd +mfhn: fhrj * vqdq +jnbd: bgds + dghv +ndfh: rzbf * hfqq +hfcp: 2 +pwst: vhmc * dgwv +tzjm: 4 +tjns: 4 +bmbp: 2 +gbhc: 2 +wqsl: lvzs + nhtr +bpsv: 2 +mzrp: wqvz - vmsw +lbts: 17 +dbgr: 4 +pwnw: 2 +ftcw: gcvt + lwrb +tbrf: hdwd / jnnz +lqcb: sfdn + fwcv +gsjn: 4 +bgfq: cfgr * glsb +gchz: 2 +spbt: 2 +qtcz: pjgg * rzhq +swts: vjhg + dzzz +tzpg: hzsd * bljj +bgtc: ghtw * dhjr +cnpl: vfct + cdfg +ngcq: 18 +fpmj: qdmg + ttzc +tbjt: 2 +vztf: fzmm + jmmt +jjgj: qlgd + rppp +gtqw: mszj / jpgc +qcjv: cdcr + vdgd +vvgv: nzgc * dfst +wzzp: jcnb * lwrn +zrff: nhrd * tbzn +rdrg: 5 +plml: wlfb * bbzc +dsls: 12 +bpzs: lcmg + gtqw +zvqr: 3 +tsvw: 4 +jsrw: 4 +ldcs: 3 +tthz: chrg * qqtt +jdgh: rbjq * hpbs +zjnj: 2 +mpvz: qsch / bvsd +bgrw: qlzb + zmmg +bsvc: jwsb * sqrq +lwgg: 2 +fgrb: hfqr * wpwz +vdlw: 5 +zmbv: 3 +htls: 2 +csrv: vqvb * phpl +thls: ctzp - vfbf +qlmc: 1 +dfbs: 4 +hggq: vqvq + nhjr +qpmw: 11 +lrdb: mflv * zfcg +sqft: rmvc + nvzj +zfcg: 4 +gbnz: 6 +dsvb: 2 +vpmg: 3 +grhz: 2 +tvjr: mpzw + dgvp +swhc: 10 +djhv: 19 +gslh: 7 +ngfn: gjfn * cmmm +cdnd: hlbj / wfjv +fvjl: bpnw + swnr +scrq: 19 +ddjd: cjtt * tlvz +wlgd: 2 +vsgp: pttg * zcgl +wtqc: jhjv * hwpf +jhlz: wgdz + rwhs +mmph: 4 +ctzz: 2 +lnpq: 2 +rwgh: cgvl + hfcp +tsnd: 3 +vqvb: 3 +plbv: 3 +hvng: 18 +chsr: 2 +ntrt: 2 +qrmg: hdhm / hrrc +ttqr: ddjd - qzgj +dmbm: 3 +stpv: 3 +dvvw: ggcz - qlmc +vwdc: mbws / nnsm +qlzw: qmzj * tdcr +nsph: 2 +mrnj: 17 +jlbg: 2 +rtql: 7 +dhdf: 2 +szvm: 5 +pgrj: fmvr * gbtb +rrrz: mcqq + mdpl +dvvn: 3 +mhsz: ttpt + czgs +cwtl: jbzl * tvsh +bdsl: 3 +rqzm: rwgg + gwmb +mfqs: wdqs * qggt +ljjs: 4 +phds: 3 +jbcc: hblr + zbfn +vhdw: 3 +gbtb: 3 +gqbj: tzrc * jbmv +qppz: 3 +msmv: 2 +lmqb: ctzz * mpbq +fgnm: tbtl + rvqh +dsfd: 7 +jnvp: 10 +cdmz: mmwf * sqsj +qhnn: 2 +jlnl: ttmb + jjrn +trrs: rvhr * nrsc +svqw: 12 +wplv: qjdm + dtrs +fwcv: twsw * fqwf +pvgd: 2 +mpcq: pwst * mvqf +qjjq: 3 +cgvl: 5 +rdtm: 5 +msfl: 2 +ctzp: spwn + drpc +pzzj: 2 +ggcz: 8 +mhqw: jqbc * vpmg +vjgh: 5 +vpcm: 2 +hstl: dsfm + vbzn +shms: svgw * tqbv +gjfn: zvqr + wttr +zgpp: lhqj / vpgw +tvsh: hdnp + wrbj +rbmm: lmng + fnws +tcsn: zzww - nqzj +fhtm: 2 +fqwn: dnrm * fpmj +ttff: mnwp * zdcg +rmhb: 2 +jqwc: bfzr + tdnp +sdgc: 15 +ghtw: dwzs * rnnn +tldm: 1 +sfmr: 3 +dpnl: zgcn * hwhr +hgrl: sdqb * bjmc +vrbp: 4 +mwjj: 11 +hjlf: 2 +jcmf: 5 +mszj: btjn * dphd +mbds: 3 +lzbr: nzqb * tbnm +frph: qdbl * dmpc +jqbc: tzpg + jjtd +nrwb: bswv * rbld +tmgv: mjbs + nzgw +pbvh: 3 +rpgb: vgqm * msfl +qfjm: jmlz * cdhb +zhdn: 4 +nctm: 1 +bnfz: 3 +tsdw: 3 +pbnr: 3 +grrq: lscs + njzw +fnws: pvqs * fmgh +vlcb: 4 +nrsc: frnh * mzvm +jvmh: 9 +wnzg: rbdd + lzvf +bvng: flwg + dpnl +gtcd: 5 +bpls: 3 +qfcn: 3 +nvqm: zhcn + glqd +nbhz: 5 +qlzb: bfsh * ljgh +vlbp: hnjs + rfgp +ntgj: 20 +fqwf: 10 +jvvf: 1 +rbld: nfcc * qvgq +tnwj: gtrp * gstw +hvbd: ppns + lbts +wpqw: lrdb + lnjg +gdgz: vcjt * qmcm +mbpc: twmg * rmhb +cznr: dbzd * fgzc +jsvp: nbsl + lpbg +qbnr: mfdb + zcjz +lgcm: 2 +pwrd: qnhj - szvf +mqfz: 2 +wdzc: 2 +fjtd: 2 +qmnr: dsql + hzsg +nqzj: 2 +jmmt: 3 +dtqn: 8 +swlc: 2 +dhpt: mfnf + pwzf +wbrf: plbh * vzmn +jqjn: 7 +lgjp: 3 +brbv: pbdb + lzjs +mcth: qzrc * gdjw +nbns: dfbs + mtpc +fclp: rbnj * tbtr +gtct: sljl * hdcf +szqm: nhhh + nhgc +tbtr: 3 +pwvg: 1 +zcmf: qfjm + whrz +rnqz: fmhf * rwgh +zwlj: 3 +ntmg: 5 +tgvv: lqww * wpqw +twmg: tzjf * jtbf +lmjv: zphc + llvm +lrhn: nfft + vrgp +ctbv: gjlz / szvm +vdjr: hbdd * smtn +cvhz: blrn * ntmg +fqgq: zjbq * fbhf +zlgs: jbbn + ltmg +qmzj: fqwn + njmg +zzng: nnld - vfzv +lfnw: bdvl + dbqw +pggm: szsm * hjtg +wwlm: pnbz * sdtr +bdvl: 3 +vczb: lfnw * lwdq +prgs: zbfr + tbrf +fqtb: 5 +gstw: wcqb + mhfq +dgdn: 1 +flqb: tdts + thls +ltjl: btsr * fgrb +tbqp: fdpt * mfhn +ngqm: 2 +fgzc: 13 +czcb: tffp + jbcc +gdvn: ttqq + swts +hbzz: fdls + qwmm +lclb: sfmr * nbjj +prch: 2 +pjhq: 1 +vdch: sgbz + vdgw +rchm: mplz * dsvb +ghwr: sqds + hhfr +fvbt: 8 +wnbl: shcc + ngrj +czqg: tdjp * phds +vfzv: 8 +gczj: qznt + rnqv +mrlh: 2 +jcnb: 9 +plqs: 4 +hwtt: fbbp * vqsh +fzng: 3 +fmgh: 5 +cqss: 5 +ntms: 1 +vwlf: 7 +hswh: swlq * ndpw +bthv: pbnr * ffsn +mvff: pdnh * dnft +qwvq: sgbq + zwdg +wfjm: 5 +humn: 959 +nbvp: ffww * ddcf +wbrv: 3 +psdw: crlq * wlgd +mggp: njhc - czqg +grgm: fzmr * spgv +nlwb: glss * brbp +zdld: 15 +dnpb: hvjt * htls +jscw: 2 +zltp: 5 +rdvs: humn - wpmm +ddfl: mjvw + whwp +dzrh: 2 +ppns: fvpr + szzs +pwzf: bmwl + mfbh +bfbf: sbhh * mbfr +qrnv: ldbw * dfsp +tdbv: 5 +jnnw: 2 +tbvd: mpcs + djrh +jjsd: 11 +vfzd: chpt + ldzl +rfnv: nhng * nlrs +lblh: 2 +lwmh: hvdb * ntgn +dpzp: rpsr + mzsr +tnzw: jblj - mspv +tlnn: qgjl * zlwj +dqfp: cgmr + jtlb +hlrf: sbfj * jrct +lhmc: qzwc * wjql +wsjh: 4 +vvzd: fjjb - jgbq +jpqt: 17 +bljl: 3 +qdwn: 2 +mdth: jlbg * qrnv +jvpf: 2 +qggw: btbw + zqwv +sbfs: jzhg + tlsc +lwvz: zwlj * zhmd +pldg: csln / jcvg +qshc: nhvd * fcfz +cbhb: 4 +zlvr: mjmt * zmph +lwqg: znmb + vwrl +rdhv: smhn * scrc +bsmp: 11 +qrtv: chlt + cznr +tdnp: 6 +hpll: rrzp + fmvn +bwpn: 1 +ffpt: 13 +fbpl: 2 +vjhg: 2 +wrpz: gglj + jfcl +blbz: wplf * qhnn +gdwd: 17 +cqst: 3 +jfcl: rqnr + fmnm +mzlv: vmns + hrrf +vmvq: qhgr * pwrd +mspv: jzts + tdfl +ntgb: 3 +gvls: rfsj + qggw +fzjn: wqcq * tnqf +jvhh: 2 +sgbf: ndfh + vvgv +hbdd: jnfw * scjg +gttc: 11 +mflv: 3 +fmtr: hhdj + phzv +tfns: zlpr * bnpq +dbqw: 9 +jfbb: znmd * ntwd +dmsf: zpdc * zcgd +rrlm: 5 +lslm: hdnz * vnmj +pdps: 3 +sdtm: vvfl * qjns +hwmj: 2 +rwhs: rdhv + gfhn +nhvj: 2 +sddb: 5 +zpdc: 7 +hpbs: 3 +gcql: 2 +lbqr: 11 +gplv: 15 +cflc: dvvw + dscv +jmcm: cfrd * nzqh +hlcd: 3 +fwgm: 2 +glhq: 2 +wfmj: qwqw * pvgd +ddnl: mjbh + qvsj +szcj: 2 +nhqs: bqqt - jlrl +lnwm: sgvh * rgwv +tbtl: 18 +mdmq: 3 +rnfb: tvrb * ttsb +wjld: 5 +tvcq: wzcd - gcvp +ztjr: 6 +wgmf: 8 +hhwl: 15 +qjns: jtgb * clrn +pwfw: lqbp + pcjh +nfmh: zddr * ddvn +jlzq: 5 +ljgh: 3 +glfw: thgz * vqqm +lbhs: tcrj + hjlf +gdjw: ncsb + vltv +dlsh: zjwm * hspq +vmcn: phwl * gfrl +nhtr: qpdl + smjj +jtwj: 1 +pczh: hvfw * mjqz +lctm: nlvv - mbfg +pdlp: ptqt * hqcs +thzp: prgf * qsrr +bmzl: 2 +pgzs: hgcd * fbjr +nqbh: 2 +zjwm: 2 +mwqj: wrnh + jrnf +tjdc: ljjs + bfqp +rqlw: blbz - ncpz +tmwj: qggj + nzlh +bhwg: hzpl + mztj +ddgl: 2 +jsfv: ftnb + jqjn +zlwj: 2 +stbw: 5 +zssm: 19 +fhds: szrz + zzwh +qvgq: 3 +lhmg: 4 +rjdn: 1 +hbjt: gggn * svzg +jgnd: 2 +hjtg: 5 +zswz: hstl * scqj +zcnp: 2 +dhcd: ddlj + zncn +rmvc: 9 +ldpd: 3 +hgdg: 18 +zzww: wtls / hlsh +hptd: 2 +hfbt: hzqb * hsgc +wczt: qdlp * rfbr +bqwn: 2 +wpmm: jmtf + chdd +hcvc: 6 +mcqq: ttvr + vvqj +nhng: gzpv + bqwn +rfmg: 2 +wzsl: 1 +hcfj: 2 +whwp: tvtc * ttmh +lpsp: rfvv + wzrr +fzqm: 4 +lscs: pjhq + zhrn +ttqq: mtcv + rtmp +zjts: 5 +rjcv: 3 +qwmm: 4 +fmdn: fvng / dmbm +mpng: 2 +vmtl: 4 +wdlf: cctn + vqsn +dhjh: 5 +zsvv: 3 +nmjn: 2 +rfsj: wwvg * brwz +wzcd: cjtm * szss +hqpg: 9 +jhgg: 11 +jssr: 2 +zjvm: pfcb + dtrg +hjsj: gpsj + fftv +ngdn: mvll * hgdg +glqg: htfv * zcmf +gjlr: 3 +fmnm: tstl + pnwl +ntwd: rvjc - gsfh +jbcs: 2 +tbnm: 3 +pzfs: nljg + pfvf +dprq: 6 +cjtm: pdjl * prqd +bzww: tbvd / mrmv +vqlt: 8 +jhmp: qlzw - vhnq +gmnz: 14 +pmjn: wbrf + scfr +plhv: jssr * rfjh +mrts: tcnr * hrjv +cfqr: hwps * chzv +dtqc: cdsf * njww +prbv: nthm * dqdc +tjhh: bwpn + pwfw +hdnp: 3 +vsmj: lbmf * mslh +wdvv: 6 +gnwz: bhpn + mtjz +zgcn: 5 +mdnz: 3 +pcpp: 17 +jtbf: 5 +lmng: wrtv * pctw +sjrm: 20 +pttg: 13 +rpsb: 5 +bmrc: 9 +scrc: 14 +nhgc: 15 +hddd: grcs + dtrj +bslz: 15 +rmgw: fbhl + cppz +rnnn: pbzf + qsln +zchp: 2 +btbw: 1 +vfnb: phbr + jlnl +phrn: wvzq + pnjb +qsrr: 7 +lwrn: 4 +jtgb: 2 +vfzf: zswz + wjsh +qzfw: mwwv / pzzj +ctpd: 2 +fhzm: 2 +hlsh: 4 +csln: fpnq * fvql +lftg: 8 +cftr: 10 +tcjh: pbpt + gclq +jlrl: 2 +nvqg: 5 +zlmg: 17 +nvrh: jsvp * fqjm +fmvn: ftrh * wcwl +mbbc: 2 +wrnh: jjvw * bglg +pcjh: vsfb * hqph +zqwq: hlrf + rtql +jptg: wbtb * zwdj +ldlp: 4 +mjqz: 2 +pwcv: 3 +rrpj: tfpl * vfzz +qgjl: zqjm * mwjj +hcdh: hnws * jnnw +wwjd: wtbn * jrjn +rzpj: czhg + dfmj +qwrm: 4 +pbpt: 1 +btjn: jfdn - hwtt +mhfq: vlbp / fjtd +mttq: 2 +qqrd: bbsv / ldcs +gpbj: 3 +smtn: 2 +zdcg: 2 +hvfw: sdtm + djfq +vmhf: qpzm / vlcb +rbht: lctm - wfmj +hhdj: zfsh + dffw +vwrl: jmsl + zlnc +nqsl: 14 +fbhf: 4 +gcvt: bhwg / hgqh +hlbj: rrvm * dhcd +qdqg: qfcn * wvvd +tcvt: jqwc + tjqc +vcgh: mnql + srcd +gdbn: 12 +zfln: llst + dvhc +ldzl: 9 +gsfh: fszg + lgff +ppjh: dmfp + mdwj +nfdf: 2 +rrvm: 5 +hgqh: 2 +cvmg: wdlf / rsnh +pjqs: 3 +mwmw: 6 +hcww: 3 +dzzz: 5 +wqls: 2 +stnp: 2 +hnjs: stbw * bthv +fzwp: wnps - qwvq +fwqz: 6 +wszs: vgtg * gjlr +vggq: 11 +dgwv: 2 +hljl: 2 +nthm: srsm * vvrf +sdzf: 2 +zchv: whlm / ntld +wqvz: wtqc + mnqn +mjfl: tljb * wdzc +qgzj: 4 +drhd: dzpc + mqgg +rqbp: 10 +wphs: 4 +nphn: gdvn * bthb +nfmb: 15 +fbbp: 4 +ncpz: hptd * rgcs +whrz: mlbv + gslh +wtpp: rvwr * cbhb +ngbq: nlwb + rgfj +pdjl: 2 +nhhh: 10 +ttsb: gnhd + clsq +lmpt: 5 +wvvd: zbrb / jscw +chzv: 7 +jbzl: 4 +flwg: 1 +ttzc: rdvs / cbrl +zhmb: lrnq * sbcs +mvqf: 2 +lhjq: 15 +vhhm: ltdr + sdjj +qpdl: mpng * lcql +zmph: 5 +vsqr: 7 +pjds: nbhq * grhz +mslh: 5 +plmh: tthz + zgpp +sjzs: wvrq / sdzf +tznf: 2 +nvhn: bvfd - vmrb +lmnw: wtdl * gzmn +cbrd: mzrp + smsl +qhrz: jvpf * ttzn +pmtq: jpqt + gdbn +pvqs: 19 +vtqp: pjds / pqwz +sqsj: 3 +tdts: 13 +flnv: zlmn / zgjv +vhth: 15 +vqqm: 4 +hfqq: 2 +chvq: 20 +fqjm: 2 +nhrd: pfnm + zmfj +hsfd: wphb + gblc +rrzp: fscs / hgmm +ttzn: 3 +jsfw: djcs * bshs +lhhc: 5 +dnwb: mtth * vvrp +tbzn: 2 +jtlb: fwqz + mrnj +gspt: 3 +prcl: 5 +wnps: tqbm + bznb +rhfp: 3 +znhz: tndm + vdjr +cdsf: rrgr * dzrh +mlbv: 7 +crzb: qmnb * zdmv +cjhp: 2 +ttmh: 4 +mztj: ddfl * zwms +wvmj: 5 +wbjq: wgfv / bntm +lrcn: wjst * zlvr +rsdf: lslm * dzrs +dqqp: 3 +mfbh: 5 +pdnh: sscc - lgnp +sdjj: tjns * pldg +bwtw: cftr + mnbs +zmfj: slwd / mnct +mbfg: 3 +vjfv: wphq * trmf +dscv: 10 +tnnr: 11 +zcjn: 17 +jlss: 2 +dtqh: 3 +lmfc: pzww - rjdn +wphq: fvjl + ngcq +dffw: zltp + jvvf +czhg: 17 +jpgc: 2 +bglg: 2 +vmbl: 5 +jnbm: 2 +fwls: fzdf * wrdd +mdjl: 3 +gcsd: 13 +cjfg: 3 +bvfd: gqbj * wsjh +sfdn: 5 +gqtl: 6 +sbsn: mbnp / tbjt +pfsv: wllz - drrb +wvcs: bjwq * crff +ttdd: 2 +frld: rdjw + nthw +mzsr: wjld * cqss +sbfj: 2 +mnql: 6 +trwn: rchm + pdgw +ddtv: jsfw - rghj +pfdq: 2 +lvdw: zhfh - bgtc +jzff: 3 +ncmn: sqft * fgnm +zmts: lhlm * ljpl +nljg: 4 +rwnb: 2 +gdtz: zgld * wnbl +cjtn: 17 +nlzc: 2 +jcpf: 2 +bqdh: pcsf + vhhr +cmhb: 2 +srcd: 17 +pdfg: sddb + dtqn +qnqn: 7 +zgjv: 2 +cjtt: tlvj + csrv +svzg: 5 +tjqc: 1 +bpnw: nfcg * hmwb +btsz: vhhm + hcdh +zpmq: 3 +ffww: qcrq * rdtm +rpjd: 2 +tbld: dtqh * fpmv +trmf: 2 +jtpw: ctfz + bmnb +pclc: 15 +wwvg: 3 +hqsh: dhpt / jlss +mtdt: 2 +sjbp: 4 +hrvz: zrfc - rbsd +smjj: 3 +vzmq: 2 +dqfv: dqrf / gbnz +nzgw: mrts + qbnr +jzhg: jfmq * zjnj +hnws: nmbc + fzjn +jsdm: 2 +snpw: 2 +rfdv: zchv + lmqb +gljs: 4 +blrn: djqr + rdrs +zwdj: 4 +vmrb: gnbw + vzpf +cbrl: 2 +lmlp: djdl + nphl +znmd: 3 +vtrh: 10 +hbcr: 4 +cgvb: pczh / wlnp +zfdn: bldp + hgdr +qnhj: hbcr * lhjq +bqbc: zbtq * rdnq +ttfb: 3 +zlnc: jvmz + vccq +qcnz: 5 +nqcp: fbpl * wbjq +jzct: sdgc * hfbq +ftrh: fwls + hvng +cctn: dqtl * zlqm +ghmt: 4 +tqbv: bsmn + cfqr +frnh: 5 +ddcf: 4 +hggc: ltjl + hqsh +wsjn: rhps * sgsp +jnpg: rsdf / hgfq +jjvw: 7 +zwms: ldlg + pwvg +tcnr: 2 +bpcc: rhgp * vpcm +hzpl: bzww - wvgd +jgcg: jtmz * mwfh +gfhn: pwwg + nlzc +zcgd: 2 +qzwc: 4 +bfrg: rmtn * flnv +zmls: ffpt - ggjl +ldlg: 6 +mpzw: 6 +dghv: 8 +wlss: 2 +jfdn: bgfq * ptmg +ctdw: 3 +tfjm: 14 +jzds: 3 +dvhc: 4 +jszb: tscg * hcfj +nsbl: lcvc + mrpq +ncdj: pgzs * dhgn +dmfp: mcds * pbvh +bnrh: rbmm * whmg +vgtg: 5 +vccq: pncm * gjqq +nhhv: 11 +cfbt: bzpt * zchq +pjdf: 5 +vmns: 12 +lzvf: jszb * bbcc +tstl: 3 +nmgr: cjdb * zssm +fzmm: 4 +qhdd: cfbt * hswh +pdgz: 4 +sdtr: rjrn + fvbt +hgmm: 2 +htvs: 15 +hqph: 5 +zptz: 3 +vbqb: 6 +tqbm: pmcd * nqsl +hzmp: bsvc + gqwv +mfdc: hbvf * dpnr +gwmb: jvns / lzsp +cdfg: 3 +smwh: 1 +jngz: 5 +mnbl: zmbv * dvvn +zcgl: 2 +wpzm: 6 +dbww: 4 +djqr: 3 +nbsl: qllr + bgsh +ttpt: 5 +jwtb: 5 +gnhd: 3 +scqj: ffdl * mdnz +fhlv: hggq * htvs +njww: 2 +ntld: 2 +nbhq: zpvp / lqgf +rbsd: 8 +rplb: njmf * srnq +sgsp: lwtd * hlcd +tscg: 4 +vhhr: 3 +jwrp: bhnt * vfzd +mjtf: 4 +mbfr: 3 +sdcw: 2 +ddrh: 7 +lpfz: bhzj - zvbf +ptqt: 3 +wtdl: 2 +nnld: fvhd / ztcm +dngc: ggch + ngbq +lslc: 4 +msrg: 3 +prrc: bpsv * gvzf +jrjn: lbtl + sbnc +rwcf: wgmf * ctbv +gclq: 10 +lzgq: 11 +rhps: njgp * msmv +pzww: 8 +chpt: fsqh * lggh +zvjw: rwcv * pdps +trjv: 3 +rrtq: 4 +fgth: 3 +hvdb: ghwr + jsdm +hbdc: vvzd / vcnq +hgfq: 2 +lgnp: 5 +rnzj: vfng * bldr +pdfv: 2 +fhwl: 10 +bthb: nctm + fhlf +vngb: tgwr * dpbh +jfmq: 3 +hdcf: 2 +zdmv: 2 +vsfb: 2 +wtls: czcb / qgtp +gnfs: fmmf + hgtt +gsrm: 3 +mrcn: 1 +swdz: 5 +ghsj: 1 +qvrw: bpzs * scrq +rhwr: wcpr + hbzz +zrnq: qrmg - ncmn +ltdr: dggm * pgrh +gsgd: lmjv - wjpz +brwz: 2 +wtbn: mjrl * jzlt +sgvh: 3 +jvlw: hbrw + szqm +ljrn: 2 +tvrb: 3 +csvn: jhlz * nwpl +czzg: 2 +rfbl: 2 +zblj: 3 +wttr: nmjn * jsrw +zgzg: vvwt * hwcl +dtrs: 9 +vghf: nvrh - flqb +nprh: 2 +wsgm: 3 +crqr: 3 +srpj: ftsc + dbdl +ztgn: 5 +zrfc: zlht * chdn +bfzr: 18 +chfw: 3 +hfvz: 4 +bbcc: 12 +qpbc: qjsg / fhtm +fdqq: wzrc + crdv +shcc: 2 +dfsp: 2 +wqbz: 7 +lhfm: 2 +zcjz: vngb + hvmj +swnr: 3 +zmmg: jzct / swtw +pqfm: 13 +svdq: jdgh * tdtb +wlnp: 6 +ztsb: 5 +wjql: 2 +qzcj: 2 +jnmf: 7 +pwhl: hjbq * qqbd +mbws: qcqj * sgwj +vjhw: 2 +rnqv: 10 +hzsd: 3 +gzmn: gplv - tsvw +mwnb: vhbw * tvjr +bsmt: 2 +hbpt: 2 +cdhb: 5 +gchv: 4 +pnqt: ntgj + mpvz +pfcb: jmtc + rhwr +btgm: wzzp + hhwj +qsch: nsdp * tnnr +lvzs: 4 +wclv: dtqc + dlpj +djcs: wvmj * vpcz +zncn: bzwc * lqqr +lhlm: 2 +fdbp: nrlq + bsmp +cpbd: sdtq + lhhc +jppg: zjvm + wnzg +wcpr: 18 +pfvf: 3 +qdmg: pgwq * nfmh +ltmg: ncss * lqld +nhvd: 2 +hfjl: 9 +sbhh: cgvb + qcpp +pjgg: gtzt + tczz +nfcc: 2 +nbbp: wqqr + vcbr +wqqr: 8 +ngrj: qcnz * lpfz +lrnq: 3 +znnv: mbpc / lcfl +wmpj: 3 +chdd: tlgd * hbcz +zbrb: sdcw * msjn +wgfv: cgcr + mflf +nfgh: 2 +gvjv: qzpg * sjhz +bgsh: vtvm + cnpl +wgdz: mstz * mfgh +qzgj: mwqj * crjf +rvhr: 4 +tdjp: djfn * ctwq +wfjv: 5 +lqbw: 9 +fmmf: 13 +rmtn: 3 +nchv: 2 +qjsg: tvcq + jstq +bpnn: qjss + ncvv +qhgr: rfpz + ngqm +nwrg: 5 +hmch: 2 +cfrd: 2 +cnhz: 13 +pbzf: zjvq * prgs +hblr: lqdl * dsss +bbpd: 11 +njrb: 16 +nmch: 3 +grcs: 3 +fwrq: 2 +fcpl: 2 +hztd: 3 +cgcr: znnv * flmh +dtrj: sjbp * lcdv +ffsn: 7 +pctw: 10 +rsml: 5 +hwpf: vjgh + fhzn +dgsp: 2 +rrtg: 10 +pqwz: 2 +wdqs: 4 +mvgl: rwnb * pdfg +qrjh: 2 +gvqz: 3 +mnbs: 7 +pnjb: fdfm + nphn +dgvp: jgcg / czmj +fbhl: 20 +nzmr: jsfv * fclr +lzjv: pzpn + vbqb +gggn: 15 +jzlt: zqmc + gbtn +szrz: 9 +vqsn: gvjv + tnzw +ftnb: 6 +pgwq: 15 +nzjd: dnwb - lrhn +vlhz: 3 +fscs: zljr + wbfs +bgdj: rqrd + tgvv +jchq: hbpt * pmtq +ntzf: cjfg * vdch +tzvl: 2 +vgqm: ntsw + lwvz +mmwf: 2 +qggt: 4 +jtmz: 4 +bsmn: rqwd * dwmn +qwrp: nfgh * qjqt +zfsh: 1 +mrmv: 5 +gfrl: 5 +rzmp: tlnn * mtzf +mjfg: 2 +lwtd: 8 +bfqp: zbwg + wmvw +mcnf: 4 +tvvn: lhdf + trrs +bwlf: 3 +glqd: mdth - jnpg +vdgw: 5 +hpmf: lwgg * vfzf +wllz: pdfv * qgzj +wcsd: trzs + plvb +pmcd: 3 +lhdf: 3 +vbzn: rjdp * plqs +tzpf: pwsz * fhcr +llst: bnfz * rbtw +wdnj: 4 +wcsf: 5 +hqcs: 3 +hgcd: 2 +wjpz: 15 +jbbb: 15 +vfct: sgcm * vrbp +sgbq: dgdc + gbdl +pwsz: wsgm * cjhp +cvfc: trjv * jdvg +sscc: vjhw * jnbd +dgtn: 3 +lqld: 3 +vtvm: 12 +whlm: jbpn * zmdd +njgp: zwvq + hmch +lwrb: btsq * stmj +rqnr: 16 +rbjq: sjzs / pfdq +hrrf: 1 +vwzp: 3 +ggjl: 4 +dcff: 4 +zpvp: vczp * vfnb +dpbh: qcjv * pfgh +zvfs: 2 +qjss: 13 +qgtp: jbdr * nmch +zphc: sjrm * dgsp +mwjv: 3 +fftv: 3 +lwdq: rlzb + rgvt +wvgd: jfbb * spbt +cszr: 11 +wjst: 2 +jsrh: bqpt + bpcc +ncsb: snpw * ddtq +ldbw: wdvz + bgrw +pnwl: hpbf + qdqg +bgds: 3 +qdlp: dnpb / lhht +bqws: swdz + brtt +zbfn: dmhs * tjdc +hdng: hztd * jvlw +mfdb: rrtg * nbvp +mjvw: tcvt * sfmz +rfgp: hmqd + gcql +rqwd: 4 +qwhb: tzvl * gnwz +cbnf: drbn * jlzq +rzzt: zpbz / bmzl +gbgn: jptg * whnz +fmvr: 4 +ldvf: 8 +fhnq: 10 +wrtv: 2 +rmcs: 2 +jbzq: 3 +fbjr: vwzp * ctdw +jwgq: jchq * mvff +hgtt: 1 +lcvc: mnbl * tsnd +nfdg: rfmg * tcvr +gbtn: 5 +crnw: 3 +bdrq: jlcj + jsrh +rzbf: fmdn - wwjd +ncvv: 1 +qdjp: zlcl + bpdt +hwps: 3 +scfr: lslc * qjjq +rqcr: nbbp * bnrh +fpmv: 3 +sfmb: 9 +mwfh: pqtc + pwjm +mbfl: cbps + pzzz +mtpc: 8 +hrrc: 4 +fhgp: 2 +bhnt: gcnf + nstb +jnnz: 2 +cmmm: 3 +vhnq: jppg * glgr +njmf: 11 +djdl: jqrr + rwcf +gwqc: cbnf + sqhc +vvgg: bfbf * gttc +mzrn: rqlw / ddrh +hdwd: prrc * psdw +hgmr: zrnq * fhgp +sjsb: wqpd * blhf +hmwb: 2 +mrfp: btsz + jwgq +scjg: 13 +ttmb: wbwf * gcsd +nvzj: jwdc * lzgq diff --git a/2022/src/bin/day21.rs b/2022/src/bin/day21.rs new file mode 100644 index 0000000..3e21dc9 --- /dev/null +++ b/2022/src/bin/day21.rs @@ -0,0 +1,93 @@ +#![feature(test, try_blocks, hash_drain_filter)] +extern crate test; +use aoc2022::{boilerplate, common::*}; +use fnv::FnvHashMap as HashMap; + +const DAY: usize = 21; +type Parsed<'a> = HashMap<&'a [u8], Monkey<'a>>; + +#[derive(Clone, Copy)] +enum Monkey<'a> { + Number(isize), + Add(&'a [u8], &'a [u8]), + Sub(&'a [u8], &'a [u8]), + Mul(&'a [u8], &'a [u8]), + Div(&'a [u8], &'a [u8]), +} + +fn parse_input(raw: &str) -> Parsed { + raw.lines() + .map(|line| { + let key = &line.as_bytes()[0..4]; + let value = line[6..].as_bytes(); + + if value[0].is_ascii_digit() { + return (key, Monkey::Number(parse_num(&line[6..]))); + } + match value[5] { + b'+' => (key, Monkey::Add(&value[0..4], &value[7..])), + b'-' => (key, Monkey::Sub(&value[0..4], &value[7..])), + b'*' => (key, Monkey::Mul(&value[0..4], &value[7..])), + b'/' => (key, Monkey::Div(&value[0..4], &value[7..])), + _ => unreachable!(), + } + }) + .collect() +} + +fn part1(parsed: &Parsed) -> isize { + let mut missing = parsed.clone(); + let mut resolved = HashMap::<&[u8], isize>::default(); + // parsed.iter().filter_map(|(&k, m)| if let Monkey::Number(n) = m { Some((k, *n)) } else { None }).collect(); + while !missing.is_empty() { + missing + .drain_filter(|&k, v| { + let o: Option<()> = try { + resolved.insert( + k, + match v { + Monkey::Number(n) => *n, + Monkey::Add(a, b) => resolved.get(a)? + resolved.get(b)?, + Monkey::Sub(a, b) => resolved.get(a)? - resolved.get(b)?, + Monkey::Mul(a, b) => resolved.get(a)? * resolved.get(b)?, + Monkey::Div(a, b) => resolved.get(a)? / resolved.get(b)?, + }, + ); + }; + o.is_some() + }) + .last(); + } + let root: &[u8] = b"root"; + resolved[root] +} + +fn part2(parsed: &Parsed) -> usize { + unimplemented!() +} + +boilerplate! { + TEST_INPUT == "\ +root: pppw + sjmn +dbpl: 5 +cczh: sllz + lgvd +zczc: 2 +ptdq: humn - dvpt +dvpt: 3 +lfqf: 4 +humn: 5 +ljgn: 2 +sjmn: drzm * dbpl +sllz: 4 +pppw: cczh / lfqf +lgvd: ljgn * ptdq +drzm: hmdt - zczc +hmdt: 32", + tests: { + part1: { TEST_INPUT => 152 }, + part2: { TEST_INPUT => 301 }, + }, + bench1 == 66174565793494, + bench2 == 0, + bench_parse: HashMap::len => 1901, +}