- commit
- c056f4c1ed14a1751e8021a6e8cfd7a14af92c94
- parent
- 716016d1ee8a2e937fe7bdc70f4fa013e10235e1
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2022-12-22 07:59
2022-12-21
Diffstat
A | 2022/21/input.txt | 1897 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | 2022/21/solution.rs | 179 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | 2022/21/test.txt | 15 | +++++++++++++++ |
3 files changed, 2091 insertions, 0 deletions
diff --git a/2022/21/input.txt b/2022/21/input.txt
@@ -0,0 +1,1897 @@ -1 1 vgmc: vvwl * snqc -1 2 tbfj: 5 -1 3 svsf: fgcj + tgzh -1 4 blzm: tffz * wfct -1 5 cgbg: 3 -1 6 nzgg: blcv + whnm -1 7 rpdc: 8 -1 8 hvpf: tdmn + qtqw -1 9 svtv: 2 -1 10 jjbl: bbjp + djjz -1 11 bgqn: btjr * lgnw -1 12 pjgv: 3 -1 13 pcfq: 8 -1 14 pmqd: 7 -1 15 lflj: gsjg * bqcr -1 16 zltm: 1 -1 17 gqrj: 2 -1 18 dvsf: blrt * qcgw -1 19 hwsl: 3 -1 20 rbzb: fbtr / hrpw -1 21 mwql: nmnt + lbbq -1 22 fnwt: 2 -1 23 wjvt: dhnj / hjbh -1 24 csjn: 2 -1 25 vzph: 6 -1 26 vttn: 3 -1 27 dtzq: 3 -1 28 csqw: dsfr + crqs -1 29 bbjr: 3 -1 30 cvbt: 2 -1 31 jntd: hzvb + jvpw -1 32 rlrl: lcgp * gfgz -1 33 szlq: 3 -1 34 mpsv: rjjc * tffm -1 35 rfbj: pwhl + bqdc -1 36 mzdc: 5 -1 37 fqgt: 5 -1 38 dffb: 16 -1 39 gtfl: nncb / lvtt -1 40 drpb: ffsf + lqgf -1 41 chdn: 2 -1 42 nhpd: 3 -1 43 tntq: qcwm + lvhd -1 44 qtcp: 8 -1 45 stqg: crwf + rjwn -1 46 jhbz: 5 -1 47 tqzg: spzp * nwnm -1 48 zvlq: 3 -1 49 qztm: 2 -1 50 bhvv: hzlz + blsf -1 51 pzsf: qlpb * tbld -1 52 rllq: jmgp + fcbd -1 53 vnrd: fnhf * lwfg -1 54 wvbj: bgvw * lzjd -1 55 stdg: tpsg + bzlc -1 56 rzfg: jhhl * clhq -1 57 hshw: rcpq + jjcv -1 58 cljz: ljzq * zwds -1 59 vjnc: qcwp / bmpt -1 60 mnqt: fjch * mrmw -1 61 rbft: mrqd + lbfw -1 62 hrrz: wvlf - wpgm -1 63 gcsg: 2 -1 64 tzjd: dcgh + hrdt -1 65 wclq: sgzq + fmzs -1 66 rpft: hplb + htmr -1 67 plbb: 2 -1 68 gzbs: 2 -1 69 mfzt: glsl - qtfz -1 70 cclq: wlqz + mbhp -1 71 dljw: tzts + frlv -1 72 jrdt: 2 -1 73 rglh: 13 -1 74 sjzg: 9 -1 75 ggsq: vgqt + bwgr -1 76 rcqp: 2 -1 77 ppfn: djmf * gnwg -1 78 mglr: 3 -1 79 mqtz: wmcl * sfhh -1 80 fhdg: zgdt * jtbb -1 81 vpbf: tpcs - ncvc -1 82 cbpz: wjvt - thdz -1 83 vmfc: 10 -1 84 lqwp: 7 -1 85 jdlq: mftb * tdtw -1 86 cmnq: 4 -1 87 mhhv: 2 -1 88 lhvd: 3 -1 89 lpzd: 2 -1 90 dfmf: qwws / lthv -1 91 ffrj: mcmc * wrqn -1 92 fbfn: fgdc - zrlp -1 93 shlb: fhqf * mdqj -1 94 wtnl: 3 -1 95 qnhs: dbrp / qfgw -1 96 gbpl: 4 -1 97 vghh: zvlw + wvzf -1 98 rgts: pvfl * lsmj -1 99 wjqh: 17 -1 100 dbfz: zsmv * qhjp -1 101 ntbt: 4 -1 102 dmlp: 16 -1 103 gpwh: chdn + dbws -1 104 wgpd: 4 -1 105 bgvd: 12 -1 106 vhzg: 3 -1 107 qdts: bhsf + fqjm -1 108 wdbn: 3 -1 109 sggv: 15 -1 110 wldz: lgnc * qfmb -1 111 lmgq: 7 -1 112 vpth: 4 -1 113 crfw: 5 -1 114 vrcf: 3 -1 115 qcwp: dfbv * pwcq -1 116 vtrd: 2 -1 117 gczn: dsdh + vfds -1 118 wcfl: lbtn + stgz -1 119 fpmb: hwgt * hcjc -1 120 jtqg: hwqh * brwq -1 121 bchf: 4 -1 122 tblh: 2 -1 123 zchv: 2 -1 124 mfvb: 4 -1 125 mrqd: wcfl * bwtd -1 126 rmgn: 3 -1 127 fwsh: nfch - mtbf -1 128 lvtt: nlfc + pccv -1 129 qscb: 7 -1 130 mdds: bvbh - qqpg -1 131 drzq: wtlh * ntgs -1 132 gnwg: 3 -1 133 wsrr: drcd - jpfv -1 134 gmrv: qnvv + qmbv -1 135 dbrp: gvhw * rjsc -1 136 fvpg: 3 -1 137 tlmm: dppd / cdjz -1 138 thrv: 4 -1 139 vlth: ppbm * sfbv -1 140 pfjz: 3 -1 141 cqfb: qgrr + rljc -1 142 mmwr: vmnh * lbhp -1 143 zmwm: njsb * mjjb -1 144 vrpl: csjn + hrrz -1 145 tmff: 1 -1 146 tnvm: zwnb * lhsp -1 147 pwcq: 3 -1 148 wppw: 8 -1 149 pvnw: gbrj + hptp -1 150 rmbj: wbvh + sggv -1 151 fjtj: lnhw + nhms -1 152 pnsb: fqww + lpcl -1 153 ffqp: 2 -1 154 pglh: rgtm / wpjb -1 155 dwbc: 2 -1 156 twcj: vlrr * swch -1 157 wlnp: 4 -1 158 ntqw: jntd + mpsv -1 159 prpc: mhjv * dljw -1 160 dbhs: mvfz + rlrz -1 161 fmgp: fwsh * wcqd -1 162 pltm: 3 -1 163 wlqz: 5 -1 164 gnzt: tpcn + cqfn -1 165 qqmt: 2 -1 166 dmfq: rbtr * rhnb -1 167 nwzp: 2 -1 168 sjth: psbp + humn -1 169 lzdc: 4 -1 170 pflw: crbm * dzvf -1 171 tgcj: 6 -1 172 lsmf: tbhl * svtv -1 173 vbzg: lmnn + bjqz -1 174 bhsf: 11 -1 175 bchh: 4 -1 176 brhd: hgmq * pmqh -1 177 tpzr: rbcr / svzn -1 178 nmbm: 2 -1 179 ggpj: qhnt * glmb -1 180 nfgs: ppph + psrn -1 181 dsfs: 5 -1 182 mftb: flsv + jmtg -1 183 vltz: nzvz * rwlz -1 184 lvhd: czrq * fzrw -1 185 cspg: wpmg - tzln -1 186 fgvp: 3 -1 187 jbjv: 7 -1 188 wqln: mhbq - tfgm -1 189 rtjp: 8 -1 190 wdhr: 2 -1 191 qtsv: 13 -1 192 qchl: cdjp * mbzc -1 193 lnsr: tlrt + dpdg -1 194 jbnb: 2 -1 195 csbd: rwls * fwgr -1 196 ftrp: rlwt * bqqf -1 197 rtwh: dnvr + rzcg -1 198 fvzl: zmch * fwnz -1 199 btwf: 16 -1 200 nnqs: dltm + fpvv -1 201 chdb: mwvj * qlqz -1 202 ffzz: vgpj * bzbh -1 203 hjfw: plgj * fzvs -1 204 rdcg: tzsb + jqvb -1 205 dhnj: mcsb + flvt -1 206 rgrz: 7 -1 207 cjmg: 4 -1 208 qqpg: zspw * qdts -1 209 sfnf: 3 -1 210 pgpf: lfnz + mrzd -1 211 zcfq: 2 -1 212 tvvw: jvnn * snsr -1 213 hrlr: cssz - grbq -1 214 flsv: tlzb + lprs -1 215 chgt: thmf * vdnn -1 216 bjpl: gmtv * wgdl -1 217 qbgj: tzdv * mrzj -1 218 scjm: hfjb + twcj -1 219 jfpz: wvnb + ghfl -1 220 jdrp: 2 -1 221 brjf: 2 -1 222 cdbq: pcfq - lqcb -1 223 wwqv: 7 -1 224 chcm: 3 -1 225 blth: 3 -1 226 vmgn: 3 -1 227 dlcm: mnbn * nbsq -1 228 pbwl: 3 -1 229 hmlz: mlss - npth -1 230 szzf: 3 -1 231 jwrs: 5 -1 232 mhbq: qsjv * vqmw -1 233 lqts: 16 -1 234 hlqd: 2 -1 235 qtzh: 9 -1 236 fqmd: 15 -1 237 pfjc: gqrf * brhd -1 238 ntgs: 5 -1 239 lfld: 2 -1 240 wstc: wgwn * btwf -1 241 vcdb: 8 -1 242 vhcb: zqnd + wlhj -1 243 jncw: njdw - lvqr -1 244 lnqf: rjhw / nljm -1 245 bqzs: rcrs * fhwt -1 246 jhnd: bmtf * nllw -1 247 csbl: qjhb + lphl -1 248 qdgg: 3 -1 249 qbqw: gtnb + gpwh -1 250 pnwf: pvjh + vdcn -1 251 cwnf: 2 -1 252 wwwn: wzcr - hjjr -1 253 tvbj: lfms * plbb -1 254 zwlb: 10 -1 255 fmjj: znqn * jrdt -1 256 tnpb: 12 -1 257 qghg: 5 -1 258 nqbp: 15 -1 259 hfnz: 2 -1 260 lhlm: 7 -1 261 jgwq: 3 -1 262 svsz: spnp * hdnt -1 263 ffll: jfpz - bddb -1 264 bzlc: 7 -1 265 mpcn: 4 -1 266 gtjs: drlj + vlth -1 267 pmqh: rmjd * csjf -1 268 hlcz: 4 -1 269 lmms: hjsm * rgnq -1 270 qjlt: hwvg + sqlm -1 271 jtbb: 4 -1 272 dbjc: 4 -1 273 wbgd: 2 -1 274 nncb: chgt * tsgb -1 275 cnwf: 2 -1 276 dgcb: bdjr + brqg -1 277 wfct: 2 -1 278 fwhd: dqfv * vnzn -1 279 cqrt: sfnf * vtfp -1 280 zhft: spph + vcdb -1 281 rswd: 8 -1 282 zwvp: 2 -1 283 qhbw: 4 -1 284 fqjm: phnq / crqr -1 285 rhqf: qdvp + wrtc -1 286 vztg: 2 -1 287 vszt: 2 -1 288 mnhl: 3 -1 289 dlzr: 10 -1 290 jcvp: 8 -1 291 zzqt: qvmg * jbmg -1 292 qmfh: hvwl * dzcg -1 293 rnhr: 8 -1 294 fhdf: 2 -1 295 fmhp: 3 -1 296 lgnc: zltm + lfpg -1 297 zjqb: bbqs * lgzl -1 298 dsvc: ppwr - rsgs -1 299 wrdt: mjpr * wbsd -1 300 nlfc: 5 -1 301 nfrh: 3 -1 302 dhjg: htng + sfzw -1 303 pqvc: 2 -1 304 rmwf: rcgr * fhqr -1 305 jfls: glpd * jbnb -1 306 zpsz: 2 -1 307 tbct: dvqf - rzth -1 308 htmr: pqjc * lzjm -1 309 gpgw: 2 -1 310 pdnv: 5 -1 311 pqjc: 5 -1 312 brjv: 2 -1 313 pndh: zsgn * vmgn -1 314 dbws: pjjt + zbql -1 315 sqbq: dtmc * wwwn -1 316 znth: lvws * pzgs -1 317 wtvw: sjjd * jfls -1 318 lphl: ttpq + ffll -1 319 lbgt: 2 -1 320 cjjt: fhhn - fpsz -1 321 wpjb: 2 -1 322 zlfn: dhjg + stvr -1 323 wplp: 1 -1 324 fmrd: vpbf + zsvz -1 325 cjfp: snqv * drgc -1 326 nfpq: vqhs / hlcz -1 327 bbqs: 2 -1 328 jgvf: 3 -1 329 cmgj: pqvc * lczt -1 330 hpws: 5 -1 331 rvls: zqnb / ncvp -1 332 cltb: nhpd * lpzd -1 333 dztf: lvqg * bbtv -1 334 fqbh: qrlt - pzqc -1 335 dnvr: 12 -1 336 bbwt: 2 -1 337 brgq: dmfq + mmtl -1 338 ghrf: 3 -1 339 tpsg: 6 -1 340 dfwc: 2 -1 341 qgmq: 5 -1 342 bhdw: pspd * jwcm -1 343 mwvj: 2 -1 344 wwls: 4 -1 345 gdzg: 5 -1 346 srsw: 2 -1 347 vtfp: 3 -1 348 ftbz: vbbw + bqww -1 349 qrls: 3 -1 350 qcgw: 3 -1 351 pfgs: 3 -1 352 lqvh: hsgt + twwc -1 353 hlnd: blbm * dffb -1 354 mhcj: stdg * gtvm -1 355 bnjn: 7 -1 356 nbsq: 3 -1 357 jpfv: 6 -1 358 thmf: 8 -1 359 hclb: 3 -1 360 qhpj: pfts * bbdc -1 361 rcrs: 15 -1 362 pnvr: 2 -1 363 nzfs: 2 -1 364 gptp: 2 -1 365 ncvc: rtzz * wmfh -1 366 vdbj: 8 -1 367 plgj: 5 -1 368 wpnj: crcm + lhpz -1 369 qbjb: czmw + bfsg -1 370 jmwp: 5 -1 371 zwtd: 12 -1 372 vgwf: 5 -1 373 fjrr: lvgb + ggsq -1 374 qhbl: gljm + grnj -1 375 dtdb: 3 -1 376 bhfp: hcdt * rgrz -1 377 qddh: jdlq + qbgj -1 378 ltdb: rmps + chwm -1 379 hrgp: jsrw - phcm -1 380 rwgz: 3 -1 381 jmzv: 20 -1 382 vdfp: 5 -1 383 glfl: 9 -1 384 prsf: 4 -1 385 tffz: zjqb + vhzq -1 386 ztlm: fmgp + vrwd -1 387 fvgb: mlfw - qdvm -1 388 dvqf: nmbm * rbft -1 389 jzsc: mwlt + rrcv -1 390 tcnm: htqq * mczd -1 391 rqbh: 2 -1 392 mlfz: dbhs + wppw -1 393 fjlp: 2 -1 394 vpmc: rtbv * scqn -1 395 plmh: 3 -1 396 dqtf: swrm * ltfp -1 397 hmcp: 4 -1 398 nwzv: pmlc - wpnj -1 399 rddw: jjrt + scjm -1 400 rwbp: 2 -1 401 wmfh: chhh + mmjw -1 402 hrnm: lqts * cvlp -1 403 mnlt: wctt + fgvp -1 404 dlbn: vnrd * bmcm -1 405 pmcw: 4 -1 406 zrlp: 2 -1 407 dzvf: 2 -1 408 gshb: 2 -1 409 wzcr: zplj * vdbj -1 410 cbmp: cpjq - drzq -1 411 rjzc: fzwh + zvpv -1 412 cprw: 2 -1 413 rhdq: 12 -1 414 gtbq: rttq + wlnp -1 415 qrlr: psqj + stgq -1 416 mszn: mscd + dztf -1 417 slvn: cqfb + qjvt -1 418 qcwm: cbmp * dltw -1 419 rzbj: 16 -1 420 dqdh: wmbw + hjdc -1 421 sqlm: bszt * wmbl -1 422 lmgz: hclb * wncr -1 423 qtfz: gfdq * qljp -1 424 ncvp: 6 -1 425 zctp: bszf - gfwn -1 426 ppph: bplt + hnwz -1 427 wqtr: hpws + ddnp -1 428 mrlq: 4 -1 429 hvvj: mttd + wqln -1 430 rrcv: fjtj * bcgn -1 431 svpv: vdgd * lfnr -1 432 mdvl: qtdh * gtjs -1 433 pnft: fpvz * rrgq -1 434 hqnr: 4 -1 435 zqjj: 4 -1 436 mfpr: cngq / nzfs -1 437 hmbl: 2 -1 438 hlpz: mnqt - fgzr -1 439 ndfl: 9 -1 440 qnmc: mnqj * ctcg -1 441 gzgs: rsjz + hqpn -1 442 blbm: 9 -1 443 gsjg: 3 -1 444 snzd: mwvt * slnj -1 445 mwgd: gmrv + vrgz -1 446 mrzj: 3 -1 447 rtbv: wvlp * wdhr -1 448 qmdq: rbzb + mqtz -1 449 hgmq: tvbj * lnqf -1 450 pvbm: lmgz + jmpw -1 451 rsgs: hlhd + vcsv -1 452 fhqf: 3 -1 453 flzl: jppc * mgvt -1 454 rgjn: 16 -1 455 wvlp: 7 -1 456 hjjd: dqtf + cpnl -1 457 qnzr: 12 -1 458 fzrw: mbww - zglr -1 459 bmjj: jjtt + mjfv -1 460 rgtm: rmhf * plnj -1 461 lscb: 3 -1 462 lqgf: 1 -1 463 frlv: 6 -1 464 zmch: csbl + qbjb -1 465 wlwz: 2 -1 466 phnq: tnvs * jdrp -1 467 sjss: fmhp * gmrf -1 468 dnwh: 5 -1 469 gjjf: 12 -1 470 tpcs: slcc + chdb -1 471 pqnj: 4 -1 472 mdlq: 2 -1 473 jnqm: drpb * mzdc -1 474 ffwb: tnmp * hrqc -1 475 zchm: wwqv * cclq -1 476 mfph: sczb + tvhn -1 477 mrbg: mmgt * vnnn -1 478 djmf: fzbm + nsns -1 479 vblp: 14 -1 480 wrjn: zljb * hgjc -1 481 lsrt: lbcf * wstc -1 482 tfgm: fmcr + vrgf -1 483 qdfm: 5 -1 484 chwm: pqnj * shtt -1 485 dhdg: 2 -1 486 tvhn: 1 -1 487 httb: pbwl * nmgd -1 488 lzjd: sqrz + qbqj -1 489 nshq: nqqr * vztg -1 490 mwsd: 13 -1 491 hfjb: dfhm + npvz -1 492 lbfw: gpgw * nmhm -1 493 qnjm: qfbs + qnmc -1 494 jhrz: 7 -1 495 fhqr: 5 -1 496 zplj: 3 -1 497 nzjv: 3 -1 498 bmdz: 7 -1 499 blrt: 6 -1 500 znst: 3 -1 501 ztnw: 3 -1 502 tchr: gmtd + zzvr -1 503 rjhw: smgt + cftb -1 504 vqmw: hdwn + hcsc -1 505 vnzn: nqjc + wsmv -1 506 gjrd: lgzz * hllf -1 507 cbsc: vtzj + tjtp -1 508 cfbb: 3 -1 509 vbsz: bhpg * qwlm -1 510 wjmb: jcwf / lrbl -1 511 djjz: 1 -1 512 jqgn: cjwb + thrv -1 513 vtwb: 18 -1 514 rtth: 2 -1 515 bzqc: 7 -1 516 fnqh: 8 -1 517 lnqs: 7 -1 518 zsmr: lqvd + dbfz -1 519 snsr: 3 -1 520 lfnr: 5 -1 521 hgjc: 2 -1 522 qtfg: hrgp + mtgb -1 523 bjts: fwsm + bgqn -1 524 npth: wqtr * wcgq -1 525 hwnw: cgbg * vdvz -1 526 lbcf: 6 -1 527 lcbj: 1 -1 528 sdcc: 5 -1 529 hplc: 2 -1 530 nqgp: qnzr * pttq -1 531 jvdj: pnfg * shlb -1 532 nlrm: vcmb + hcsb -1 533 qlcw: fvgc + zpjj -1 534 gnhp: qlbq * tzhb -1 535 jmrn: 14 -1 536 rcgv: 3 -1 537 vdvz: 2 -1 538 pccf: 19 -1 539 stsg: 4 -1 540 zngc: rmwf + nppb -1 541 vgpj: 8 -1 542 rszj: 2 -1 543 nwlg: pgns + vgjv -1 544 cggv: zmtj * qmdq -1 545 jmzc: mptm + hzzh -1 546 shzr: 2 -1 547 pblc: 2 -1 548 ctcg: ftrp - rznq -1 549 rnfv: 2 -1 550 fldd: 5 -1 551 lgzz: 11 -1 552 sqcd: vccr + dcgr -1 553 qrqz: ggpj + pccf -1 554 ldqd: qmzp + pjqb -1 555 gshv: cnnh * ljdh -1 556 wcdn: 1 -1 557 nrmt: 1 -1 558 qlbq: 5 -1 559 ppsj: mqnh / nwbf -1 560 rcgp: vpmc + zsmr -1 561 fchp: 4 -1 562 vwcj: lqvh * hndc -1 563 fzbm: 2 -1 564 qrnw: qrls * ffjb -1 565 jdqw: prsf * ljwr -1 566 bwgr: 2 -1 567 qmqj: 3 -1 568 cdhz: 4 -1 569 vrnr: pltm + bvcz -1 570 dfnr: gffh + sfvb -1 571 hpwj: dlzr * tlvt -1 572 mvfz: 6 -1 573 stgq: hqnr * zzpn -1 574 qrrh: hlfr + gslz -1 575 ptdc: 6 -1 576 jtjw: nhvr + qchl -1 577 nwbf: 3 -1 578 crbm: 3 -1 579 qvdd: pmms * hpbq -1 580 bgdg: rfbj * gwqr -1 581 ghfl: sjcv * lvlj -1 582 bqhh: jbsb * jjfm -1 583 fhhn: pgph / rsth -1 584 jlhg: 5 -1 585 zbbb: nfmd * rwbb -1 586 zspw: 2 -1 587 jmgp: 1 -1 588 jnvp: qghg * qtsv -1 589 mpqr: vqcp * dtlp -1 590 jspt: 4 -1 591 srhw: 2 -1 592 mlfw: jljb / bzvr -1 593 bqqf: sfht - rgts -1 594 zlhj: tzpg + vpth -1 595 hcsb: cfbb * mmwd -1 596 mglb: qqjn + ffvw -1 597 flzc: vhcb + wwjb -1 598 grcr: dldp + dsvc -1 599 hdnt: gtbq + htjg -1 600 cnlb: pdjn * vhpg -1 601 ghth: hcrf + lqmb -1 602 ztrg: 3 -1 603 mjjs: 2 -1 604 zbcv: 3 -1 605 jltg: ztnw + wwls -1 606 tzdv: 14 -1 607 bqsf: 9 -1 608 lfnz: prpc + bmpq -1 609 lbhf: 2 -1 610 mpbh: pnsb + mszn -1 611 jdzg: 4 -1 612 dtlp: 3 -1 613 qnph: 3 -1 614 zgdt: nfgs + rzjr -1 615 cvlp: 6 -1 616 mcsb: rfvt * gdzg -1 617 wwjb: tntq * jzsc -1 618 jffr: brlb - vpjf -1 619 pgzq: szzf * qbrp -1 620 mlss: ztlm / dzmb -1 621 wcgq: tchr * hgpv -1 622 rmps: pglm + jrgp -1 623 gqrf: twqg * tqzg -1 624 ffsf: 16 -1 625 jhhl: ffrj * zchv -1 626 ssnm: 7 -1 627 glfb: 3 -1 628 vlqf: 3 -1 629 nmgd: tmtt + mfpr -1 630 dcgr: ndbd + zqjm -1 631 jjrr: 2 -1 632 dlth: 3 -1 633 qzdb: 2 -1 634 flfw: 8 -1 635 cpnn: 13 -1 636 glmb: 2 -1 637 qrzp: 17 -1 638 hldq: 6 -1 639 tlpp: 2 -1 640 dnbd: 2 -1 641 bfsg: bchf + fwmm -1 642 fwns: 2 -1 643 jmfr: mlnm * brgz -1 644 jcdn: qhbl * cphj -1 645 hcsc: rtqd + wbnb -1 646 mcdq: 13 -1 647 gslz: dggd + qgzn -1 648 sdqv: plvj + jqgn -1 649 zlcd: 11 -1 650 swpt: lsrt + fhdg -1 651 jthf: pggf * ctjw -1 652 pppm: 3 -1 653 ppwr: gjjf * ppfn -1 654 hbjd: 6 -1 655 vzhs: ltdb - gqfn -1 656 rsph: 2 -1 657 tmvf: 2 -1 658 sppf: 1 -1 659 thjw: 2 -1 660 zzpn: 5 -1 661 jjrt: nfsb + nhlc -1 662 hngp: wflp * vdsv -1 663 zcgs: 6 -1 664 mjvq: qvdd + snzd -1 665 blvm: 7 -1 666 rjzj: flzn * scmv -1 667 dsch: 3 -1 668 rsqn: ctjp * fgnp -1 669 tbld: 5 -1 670 jbsb: hmbf * zwvp -1 671 ntsq: 3 -1 672 lctf: wldz + cjjt -1 673 ntnv: 16 -1 674 blsf: nmgw + ssnm -1 675 qmbv: npgz * vwmd -1 676 gtnb: pgmj / pzlz -1 677 mchb: qgmq * vtcp -1 678 lqln: mglb * gfwg -1 679 nmrp: vtwb - vbzm -1 680 mwlt: ttnp * bcrw -1 681 zncv: 2 -1 682 lmnp: zslj * tzjd -1 683 snqv: 5 -1 684 cvwh: 3 -1 685 thdz: 4 -1 686 lntl: hrsm * shsj -1 687 dsfr: qmss + hlnd -1 688 ggnm: sltj - tjwg -1 689 fcqj: mphl * spvs -1 690 mscd: cgvn - zsdz -1 691 bhzn: 3 -1 692 wctt: rsqn * ppsj -1 693 ncdz: 7 -1 694 gqfn: tcbp + vqtp -1 695 qnzb: 2 -1 696 hhdz: 3 -1 697 fcbd: vfcb * lhvd -1 698 rbvs: 5 -1 699 nzvz: hvpf - bqsf -1 700 jtpb: rlrl * fdbl -1 701 bzbh: 2 -1 702 hvwl: 5 -1 703 qrfc: 4 -1 704 vwpb: cdhz + gnwj -1 705 sjpg: 15 -1 706 fwgr: mdvl + rpjs -1 707 grnj: bhfp / jbjv -1 708 pglm: nvlq * nqlj -1 709 mphl: 13 -1 710 sqrz: 3 -1 711 bmpt: 3 -1 712 fqwm: vmfc * whth -1 713 ffjb: 9 -1 714 nfsb: jcfb - vthl -1 715 qtlz: lqln + lrmr -1 716 mvhl: 10 -1 717 lhpz: vcgb * vqtg -1 718 jjjz: 3 -1 719 qsfw: 5 -1 720 wlfg: 2 -1 721 wmbl: 2 -1 722 hwlq: wbgd * mhnq -1 723 qchc: vvqp * qfzj -1 724 tjgb: 3 -1 725 lqmb: 12 -1 726 vbtp: zpsz * qlcw -1 727 mmbb: lpss * mpcn -1 728 hqqj: trzg * nssm -1 729 lhhj: smhj / dbjc -1 730 shlh: 10 -1 731 pqgs: svpv * svsf -1 732 vdnn: 3 -1 733 psqj: 3 -1 734 fzvs: 7 -1 735 pqjw: 11 -1 736 gzrt: 2 -1 737 gmtd: 13 -1 738 bnjf: dgdm * cddz -1 739 cpjq: zsmc * jcvp -1 740 dnld: twlf * ntbt -1 741 blmg: 9 -1 742 glwp: 2 -1 743 ngvh: mrbg + fjrr -1 744 pbml: 3 -1 745 plwg: 9 -1 746 lvqr: jmwp + zwtd -1 747 rhnb: 3 -1 748 pspj: 2 -1 749 spph: 19 -1 750 rmjd: 2 -1 751 zhzg: qtsn + sdqv -1 752 mmwd: 3 -1 753 ltgj: pnvm + jjfd -1 754 flvt: chdw + tjgb -1 755 mczd: gzlz * dgcb -1 756 qmvp: 5 -1 757 fcrz: 2 -1 758 mbzc: 3 -1 759 jvbp: 3 -1 760 wvzf: 5 -1 761 bjwn: 7 -1 762 pnld: 3 -1 763 dmwh: fzwg + qhrn -1 764 vhqv: 3 -1 765 hlhd: srdb * qbzc -1 766 jjlw: 11 -1 767 fmzs: 9 -1 768 jfgd: rcgp * mbbr -1 769 nmpq: 5 -1 770 vclc: dhjc * ngvr -1 771 jhzb: hwnw * glfl -1 772 npgz: cpqf * rnfv -1 773 qwlm: 5 -1 774 fjlc: qhrc * nsbj -1 775 mqgc: phwr / dftp -1 776 lttc: fhdf * mblz -1 777 vwmd: 3 -1 778 ddtr: qmfh * wmpt -1 779 swch: 2 -1 780 rwbb: plgz + fmrd -1 781 mbtf: jhrz * gmvl -1 782 qqbf: 17 -1 783 ljdr: 14 -1 784 wvlf: czqc * vscz -1 785 slnj: 14 -1 786 chhh: 1 -1 787 hlfr: bhdw * bjwn -1 788 rjsc: htgn + dhnw -1 789 hcsd: fvzl * flzc -1 790 fwnz: bvfj * gnjf -1 791 nrvp: bhvv + rrrv -1 792 jnlt: jmzv - pppm -1 793 cbcm: 4 -1 794 tgfr: 2 -1 795 zsvz: wbnr * rpft -1 796 nmgw: jjlw * zbdj -1 797 lczt: vblr + cbpz -1 798 bhpg: 10 -1 799 bwtd: 2 -1 800 wflp: 3 -1 801 rzjr: dqbc + wjmb -1 802 pzjd: 14 -1 803 pmlc: mfzt / cvwh -1 804 tgzh: 6 -1 805 srdb: dhvm - pvnw -1 806 lhsp: 5 -1 807 hrqc: 10 -1 808 fzmf: sqfl + hsps -1 809 jbpz: pszb - wplp -1 810 fvgz: 2 -1 811 qfrn: 11 -1 812 vfsj: qdgg * wrjn -1 813 bblh: 6 -1 814 hrpw: 2 -1 815 bvbh: fwzl * grzn -1 816 cqfl: tqvq * lgfv -1 817 htsg: dlbn - cwml -1 818 zjlt: 3 -1 819 jqvb: nnfg * tsbw -1 820 hpbq: 4 -1 821 dtmc: 5 -1 822 bgwh: 3 -1 823 psrn: mhhv * rbql -1 824 mhnq: hhwf - dnbd -1 825 mttd: dhlh * vghh -1 826 rmtc: wcdn + zlhj -1 827 sczb: tbfj + jdph -1 828 vgqt: qzvv * vbzg -1 829 htqq: 2 -1 830 vblr: 8 -1 831 czqv: 1 -1 832 jvpw: 19 -1 833 rrrv: 12 -1 834 gnjf: httb + grcr -1 835 dwzj: 2 -1 836 csjf: sjss + wmjh -1 837 nssm: wmps + zgzn -1 838 qprd: gzhg - tqsh -1 839 mqhf: 4 -1 840 qqjn: brjf * pcnn -1 841 fgpf: fmhl / shpn -1 842 sltj: cbsc * mprw -1 843 cghj: 12 -1 844 mvts: phft + pdnv -1 845 tlwh: qnjm / wjrw -1 846 lfns: 3 -1 847 nmnt: 8 -1 848 pgcj: qqbf + lsmf -1 849 mmts: 3 -1 850 bqdc: 3 -1 851 dsjj: hvdn * whnn -1 852 nhlc: ffwb * hmts -1 853 nqqr: dmlp / pspj -1 854 dcgh: 2 -1 855 bmgz: hmlz / vrnr -1 856 rlrz: 11 -1 857 pcnn: 4 -1 858 jmch: wcbb + bzlq -1 859 wrqn: 2 -1 860 qwfb: rqbh + plwg -1 861 lcgp: 2 -1 862 wgwn: 2 -1 863 nrwh: rdcg / zcfq -1 864 ssbp: hzvv * jtqg -1 865 nwnm: 2 -1 866 tdsq: 14 -1 867 bwbm: 3 -1 868 pbrf: vscs + bmzl -1 869 wqqf: 3 -1 870 jpmm: 13 -1 871 rrgq: 2 -1 872 qmjg: 4 -1 873 hrbw: dtzq * pbml -1 874 dnwn: 5 -1 875 zwnb: bjpl + zlfn -1 876 wvnb: cqfg * lntl -1 877 wmps: cdwq + jbtl -1 878 vlrr: 4 -1 879 gqcn: 5 -1 880 jmtg: 3 -1 881 czmw: 4 -1 882 qqrt: clrb * wnrq -1 883 gstj: 4 -1 884 spzp: cbdr + znth -1 885 mgwn: 7 -1 886 pzlz: qztz + mzpr -1 887 zqjm: psgw * gbpb -1 888 drlj: nwzv / fbcs -1 889 ltjs: lbhf * jnvp -1 890 gbtd: dwhj + pblc -1 891 qrdh: lfwd + jmzc -1 892 mnqj: 2 -1 893 grzn: 11 -1 894 bfgf: 3 -1 895 cpnl: hfnz * lhnd -1 896 vpjf: gnpm + wfwt -1 897 rvvd: pnld * gshv -1 898 frwl: 3 -1 899 rtfs: 19 -1 900 qmbf: 3 -1 901 pttt: 2 -1 902 hcjc: 2 -1 903 fbcs: 3 -1 904 zgzn: 1 -1 905 djln: bjpw * gpnj -1 906 wzfr: 5 -1 907 tdmn: wsrr * wnrj -1 908 nppb: 4 -1 909 wmcl: 2 -1 910 zcfs: 11 -1 911 dfqf: 5 -1 912 sgmb: 9 -1 913 wztf: sjpg - qjlz -1 914 nhdv: 3 -1 915 sfhh: 5 -1 916 wdjg: gshb * cnlb -1 917 spnp: qhhf * dwns -1 918 vvqd: 3 -1 919 fgdc: lcml + jdqw -1 920 vcmb: gptp * dnmt -1 921 fvfh: jnqm + znlz -1 922 jrzm: 2 -1 923 gmrf: rfpw * glwp -1 924 tzsb: tldl * wztf -1 925 srnm: wwzt * hjqd -1 926 lbtn: wzmf * twgf -1 927 rsvw: fqmd * vlln -1 928 mnbn: dpfh * vvqd -1 929 wtmf: cstd * grcq -1 930 rtzz: 4 -1 931 mtvg: rszj + rcdf -1 932 spnq: 3 -1 933 glsl: sqvt * qztm -1 934 rzdc: 3 -1 935 wpgm: 11 -1 936 nnmw: 2 -1 937 plnj: 7 -1 938 bmtf: qnph + znwd -1 939 brqg: 1 -1 940 wgzj: jmdg * bmjj -1 941 lgzl: wgpd + sjzg -1 942 pdjn: gtfl + nbqq -1 943 lzjm: bffv + mshb -1 944 wbnr: 5 -1 945 cdjp: zrqg + ztht -1 946 czqc: 7 -1 947 mczp: vszc + nhdv -1 948 ghtf: 9 -1 949 qwws: 18 -1 950 swrm: slbc / rwbp -1 951 tlzb: 4 -1 952 mwvt: 3 -1 953 nsbj: hhdz * twgp -1 954 zsgn: 2 -1 955 nsns: 9 -1 956 tzln: lqpn * mrlq -1 957 stzn: 7 -1 958 brwq: 4 -1 959 wlhj: qprd * jhpc -1 960 mgdm: lzvf * wwpt -1 961 rwlz: 2 -1 962 rmhf: 2 -1 963 nbtt: 5 -1 964 whnm: qzfd * ggmv -1 965 cvng: ghtf * dfnr -1 966 bmcm: 12 -1 967 cftb: 5 -1 968 snll: 3 -1 969 gpnj: 2 -1 970 lgts: 5 -1 971 lmnn: 10 -1 972 jnfl: zngc * gnhp -1 973 rwls: 2 -1 974 sfbv: 2 -1 975 zljb: 5 -1 976 vcgb: dfmf + hpwj -1 977 plgz: wwpl * rjzc -1 978 wsqq: fqgt * rcgv -1 979 brvq: 3 -1 980 tcbp: mgbs * bgwh -1 981 vdqd: dcwb / rcqp -1 982 cfdj: 4 -1 983 tpfc: 2 -1 984 bdjr: thjw * vclc -1 985 qhmv: pvbm * zdft -1 986 dnmt: 4 -1 987 shgb: 5 -1 988 sfht: dtsm / znst -1 989 shjq: 5 -1 990 tdfd: tcpr / cwnf -1 991 twdh: rhqf * rtth -1 992 rmgz: 16 -1 993 qlpb: 3 -1 994 wgdl: mwsd + vbcp -1 995 btjr: 2 -1 996 lznj: 1 -1 997 glpd: 3 -1 998 mgvt: fwns + ljzd -1 999 srdm: pfgs + gjdg -1 1000 rnlc: gzsh + ffzz -1 1001 jzlj: 2 -1 1002 qmgs: 10 -1 1003 cqct: tpcz * ztrg -1 1004 wpmg: wtnl * qrqz -1 1005 rzzm: qtgh + fqjt -1 1006 fwmm: 3 -1 1007 pzqc: 3 -1 1008 sgzq: 4 -1 1009 rnml: 2 -1 1010 pjbc: 3 -1 1011 fvrv: fqdr * rwvd -1 1012 gnwj: bwbm * hldq -1 1013 vqhs: rtlg * cmqp -1 1014 wrtc: fpfh * dwzj -1 1015 lvlj: 2 -1 1016 hjrq: bjts / pgrq -1 1017 zfvb: 2 -1 1018 qvmg: jrzm * nzjv -1 1019 hmlp: 3 -1 1020 rvbd: mqgc - ffdl -1 1021 qmvc: 3 -1 1022 svvn: 2 -1 1023 mfnr: lnhl + shlh -1 1024 gfwg: 6 -1 1025 lbnt: 3 -1 1026 ctjp: fthl + dnqg -1 1027 mjqm: pzrh * jgbp -1 1028 znzt: mczp * dhcq -1 1029 hndc: 2 -1 1030 pcmw: 2 -1 1031 tffp: 2 -1 1032 chdw: mdlq * nbtt -1 1033 dwbv: 2 -1 1034 phwr: bsrd + lnsr -1 1035 zqnj: 7 -1 1036 wnrq: 5 -1 1037 thjj: 9 -1 1038 mmdd: hvfn - rlmv -1 1039 gzsh: 1 -1 1040 qjhb: hlpz + dvsf -1 1041 ljzq: lfqs / rrrr -1 1042 rrrr: 3 -1 1043 dvwg: 2 -1 1044 cdrh: 5 -1 1045 ltfp: 3 -1 1046 blfg: 4 -1 1047 hjjr: 1 -1 1048 zbcf: pnft * csjm -1 1049 lprs: 2 -1 1050 zwds: 2 -1 1051 bhcf: 11 -1 1052 cbmr: tpzr - nqgp -1 1053 qlqz: 9 -1 1054 npmv: zbcf + rllq -1 1055 mjjb: 2 -1 1056 wmbw: fvgb + tmff -1 1057 vmnh: 5 -1 1058 lpcl: dzmq / rswd -1 1059 fqjt: nfcj + jthf -1 1060 zttc: jpmm + ndfl -1 1061 sccs: 13 -1 1062 mqjq: crfw * lnpf -1 1063 zlwq: 5 -1 1064 vrwd: rqsj + qrlr -1 1065 pqmd: 5 -1 1066 bgvw: 2 -1 1067 dvts: qmqj + mjcr -1 1068 cphj: 2 -1 1069 hfsp: 2 -1 1070 tnmp: 2 -1 1071 ncdm: gjrd / dvwg -1 1072 hmts: lmgq * vtml -1 1073 tnnq: 2 -1 1074 ggmv: 11 -1 1075 qzfd: 2 -1 1076 nfqr: mwqv - lzvs -1 1077 qvrb: 3 -1 1078 twgp: 4 -1 1079 sfch: 5 -1 1080 wqtc: 14 -1 1081 gwmj: plmh * jhzb -1 1082 zncr: 20 -1 1083 sqvt: grhf + trnq -1 1084 dsdh: mnhl * hvpq -1 1085 gvsl: 5 -1 1086 dwns: 2 -1 1087 psbp: jtjw + fcqj -1 1088 brlb: mwgd + htsg -1 1089 cngq: sqbq - ntqw -1 1090 ffdl: gzvg * hrlr -1 1091 lcml: grqq * szzs -1 1092 fvms: 12 -1 1093 gnqq: 3 -1 1094 hqpn: fcjq - bmdz -1 1095 qbrp: sppf + zhzg -1 1096 bzvr: 3 -1 1097 vtlb: bnjf - wqfg -1 1098 gpjb: rtwh + gvsl -1 1099 nvlq: nrhj + tspt -1 1100 slbc: qcnj + jlhg -1 1101 ctcf: pvqr / jbpq -1 1102 qmzp: jgwq * rwqb -1 1103 twlf: 2 -1 1104 drrh: 11 -1 1105 hjdc: rmbj + gwnb -1 1106 dzcd: qscb * wzfr -1 1107 srdj: 2 -1 1108 bvfj: srnm - zlcd -1 1109 lbbq: dljs * fhwq -1 1110 qfzj: 19 -1 1111 bcgn: 3 -1 1112 bqww: 11 -1 1113 fhwt: 2 -1 1114 qbqj: cprw * mnts -1 1115 fqdr: 2 -1 1116 jjzf: 2 -1 1117 zsmv: 2 -1 1118 rdrh: 19 -1 1119 mjcr: 4 -1 1120 jprv: 15 -1 1121 hwmd: 3 -1 1122 mdqj: hmtp + qgzm -1 1123 snqc: 13 -1 1124 hsps: qsfw + mwrr -1 1125 bvjw: 4 -1 1126 rcvp: zflf + cjfp -1 1127 fmcr: qhmv / mtqt -1 1128 vpdp: vjnc * cmnq -1 1129 cnnh: 3 -1 1130 jhpc: ztdm * pgbp -1 1131 tqvq: 3 -1 1132 ntft: 2 -1 1133 bhfr: 8 -1 1134 vwbm: ghrf * mjvq -1 1135 vrgz: wclq * tchn -1 1136 rttq: 3 -1 1137 zvzr: 4 -1 1138 zjcz: vdqd * hmbl -1 1139 sqfl: 5 -1 1140 sqlw: hwnt * vhzg -1 1141 fmhl: mdds * rzsd -1 1142 jwcm: 9 -1 1143 fdbl: 2 -1 1144 mmjw: zrvh * chcm -1 1145 drmd: wlpv * jdlg -1 1146 zslb: 1 -1 1147 jmzn: 6 -1 1148 vdsv: bblh + zslb -1 1149 vlln: 2 -1 1150 dlfb: 2 -1 1151 qjvt: pttt * sbhw -1 1152 nqjh: fjlp * nrvp -1 1153 wjrw: 5 -1 1154 gvhw: 2 -1 1155 ffvq: lflj + flwq -1 1156 whth: 5 -1 1157 vsln: 3 -1 1158 dwhj: 5 -1 1159 pvqr: qbwf * nmsl -1 1160 lbhp: 3 -1 1161 bmzl: 3 -1 1162 cstd: fzmf + hptn -1 1163 qrlt: 10 -1 1164 cfdh: zbbh * lscb -1 1165 wsbq: 5 -1 1166 dhnw: mchb / phrl -1 1167 csgq: jtlf + jfsj -1 1168 vtcp: jjjz * vfgs -1 1169 pgns: ddtr + snmg -1 1170 zcws: 7 -1 1171 tzpg: 2 -1 1172 wnpm: cljz / pnmr -1 1173 szzs: 5 -1 1174 nzdr: dgcg + nfqr -1 1175 wsmv: 4 -1 1176 mjpr: 4 -1 1177 bplt: hmhj * pvfb -1 1178 lsmj: jltg * ncdz -1 1179 vscs: 15 -1 1180 flwq: rcvp - zbmg -1 1181 gvdw: 2 -1 1182 pbnz: gzrt * qnhs -1 1183 lpss: dnwn * ghtw -1 1184 qbwf: jffr + rsvw -1 1185 crvc: zvzr * vjbt -1 1186 rsjz: hjfw - dnld -1 1187 plvj: mhsj * cnwf -1 1188 sfvb: wlbw + fqvj -1 1189 jsrw: zpcr * fzjm -1 1190 vqtp: 2 -1 1191 jswg: 2 -1 1192 vfgs: 7 -1 1193 tchn: 2 -1 1194 lpvq: 2 -1 1195 fnhf: 3 -1 1196 svst: 6 -1 1197 czrq: vbzj - fnsj -1 1198 gldv: nnmw + mqhf -1 1199 qdvp: pzjd + sgrd -1 1200 ztht: 14 -1 1201 zflf: dtdb * ntnv -1 1202 rpfs: 13 -1 1203 pgrq: 3 -1 1204 rqqg: 3 -1 1205 bsrd: zjcz * bhfr -1 1206 zvlw: cltb + ptnc -1 1207 hjsm: 2 -1 1208 jcwf: hmcp * wprd -1 1209 btwh: fmjj / ldml -1 1210 rcqs: hngp * vsmh -1 1211 qsfm: qtzh + lznj -1 1212 mlnm: 5 -1 1213 szhb: 2 -1 1214 mblz: hcsd - nrwh -1 1215 dzcg: 5 -1 1216 ldml: 2 -1 1217 cdwq: dsfs + lwdh -1 1218 wwpt: lnth + fnqh -1 1219 twqn: dcwg * vzcs -1 1220 bqcr: lnph + zfmh -1 1221 twqg: 2 -1 1222 pgbp: qrfc * cpwj -1 1223 tpcn: svst * szhb -1 1224 vlsb: cmgj + rhdq -1 1225 pgmj: jfrh * rgjn -1 1226 dgcg: vzzd * ncdm -1 1227 dftp: 3 -1 1228 zmtj: 2 -1 1229 qgzn: ltjs / rnml -1 1230 gbpb: 17 -1 1231 vbhr: 6 -1 1232 dggd: hplc * nmnd -1 1233 twgf: 7 -1 1234 vmvv: 4 -1 1235 lnph: shjq * chsm -1 1236 dtsm: qqrt + mpbh -1 1237 hrdt: nmpq * mlfz -1 1238 flfc: lmnp + pqgs -1 1239 pjjt: srdj + gzwz -1 1240 rtlg: wcvr * szld -1 1241 tzhb: 2 -1 1242 whnn: 4 -1 1243 lttq: vwcj - sctc -1 1244 wbsd: lmms + jncw -1 1245 hstg: 1 -1 1246 jhbm: 11 -1 1247 pggf: wlfg * vtlb -1 1248 pzrh: lgts + spfn -1 1249 cwml: fwhd + fjlc -1 1250 rwmn: pzsf * bhzn -1 1251 qjlz: 4 -1 1252 crqs: vbtp + vzhs -1 1253 vbzb: mrtg * zlwq -1 1254 grbq: wtvw + gtcp -1 1255 jgbp: qnzb + pqmd -1 1256 ngvr: 2 -1 1257 gbbm: fqbh * ffnd -1 1258 cwdh: 2 -1 1259 rbnf: 2 -1 1260 rjqf: 3 -1 1261 jmcp: 3 -1 1262 rzsd: 2 -1 1263 lpsw: 2 -1 1264 crwf: gzgs - lfns -1 1265 jzgp: 2 -1 1266 jjtt: pgzq * cpgg -1 1267 qnvv: hsrv / fhlg -1 1268 lnth: 4 -1 1269 fvgc: qddh - rdcl -1 1270 sjht: flfc + cvng -1 1271 pmms: 13 -1 1272 mmgt: crvh + ccqw -1 1273 vvwl: 6 -1 1274 pfms: 3 -1 1275 smgt: pqjw * vrjp -1 1276 lvws: zbbb + mmdt -1 1277 mvbd: 5 -1 1278 hcdt: 11 -1 1279 fzwg: 6 -1 1280 rzhr: 2 -1 1281 zdft: tvzq * hwsl -1 1282 vqcp: 2 -1 1283 mtps: ljdr + nggh -1 1284 gtvm: 4 -1 1285 nqjc: 2 -1 1286 fbtr: qtlz * jjzf -1 1287 gbds: 2 -1 1288 tffm: 2 -1 1289 zsdz: znzt - rzzm -1 1290 dhsf: 4 -1 1291 vvqp: bzqc + qsfm -1 1292 bbdc: 9 -1 1293 fpsz: 5 -1 1294 cpwj: 2 -1 1295 wnrj: 2 -1 1296 llzb: 2 -1 1297 nbcz: nfpq - rcqs -1 1298 jrgp: zwlb * vpdp -1 1299 lfms: htbj - wsgs -1 1300 tnvs: 17 -1 1301 nrnm: 2 -1 1302 brgz: 2 -1 1303 crqr: 2 -1 1304 rqsj: 5 -1 1305 lzvs: qgqf * srls -1 1306 hwjj: tgfr * jmch -1 1307 dldp: sccs + vfdc -1 1308 fhwq: 3 -1 1309 pjmz: vgmc / cdbq -1 1310 tjnp: jggb * tlpp -1 1311 rmhl: 3 -1 1312 root: lttc + pfjc -1 1313 cbdr: sqrp * twqn -1 1314 tdlt: rfnd + rbvs -1 1315 lbmt: 2 -1 1316 nllw: ndpm + czqv -1 1317 tlvt: 5 -1 1318 cqfn: 11 -1 1319 qnwt: dbdt + vhgv -1 1320 mcmc: 3 -1 1321 nljm: 2 -1 1322 jvnn: cggv / zncv -1 1323 lqcb: 2 -1 1324 fthl: 2 -1 1325 pfts: 6 -1 1326 pnfg: 3 -1 1327 nfch: tbct / wlwz -1 1328 dhcq: 11 -1 1329 hrsm: 3 -1 1330 rcdf: vsln * mcqs -1 1331 lzbz: rvnt / pbsw -1 1332 zslj: 2 -1 1333 wwzt: hmlp * zctp -1 1334 fqqv: lcbj + tcsz -1 1335 rlmv: qrdh - qvgl -1 1336 cngm: 3 -1 1337 tbhl: 12 -1 1338 htgn: gcsg * ltgj -1 1339 ctjf: 2 -1 1340 bzlq: qvnj * pgpf -1 1341 pvjh: 10 -1 1342 fvtn: mrcj + rnlc -1 1343 vfdc: hwlq * blmg -1 1344 mwrr: 2 -1 1345 svgj: 3 -1 1346 sjjd: 2 -1 1347 jjcv: rmgn * jsrv -1 1348 cgvn: mtps * pbrf -1 1349 njdw: sqlw * lpsw -1 1350 chsm: 2 -1 1351 qtsn: jspt + dsch -1 1352 lgfv: tgcj + vsbr -1 1353 czvs: 3 -1 1354 nfmd: swpt + csgq -1 1355 rqfn: 2 -1 1356 mbhp: sqvz * mpqr -1 1357 fcml: 18 -1 1358 svzn: 4 -1 1359 hdwn: rddw / shzr -1 1360 qtdh: 11 -1 1361 mpng: vmzj + wrdt -1 1362 wfwt: czvs * gbpl -1 1363 vbzm: 5 -1 1364 sfzw: 16 -1 1365 zvcq: 3 -1 1366 hmct: cbmg + nlrm -1 1367 wtlh: 5 -1 1368 mrzd: zbcv * nnqs -1 1369 bgpc: 3 -1 1370 fpfh: wfwd + fvjj -1 1371 nltf: blfg + fmgt -1 1372 qhrn: 1 -1 1373 qtdw: 2 -1 1374 ptnc: 11 -1 1375 vnnn: 7 -1 1376 wsgs: 5 -1 1377 pvfb: 2 -1 1378 snmg: qrrh * bchh -1 1379 jdph: 1 -1 1380 hwgt: 3 -1 1381 fzwh: wsbq * mlqq -1 1382 njsb: vhqv + zqjj -1 1383 dgzv: vprd * jvbp -1 1384 zvpv: zvlq + wqtc -1 1385 ztdm: cwdh * nzdr -1 1386 tdtw: 8 -1 1387 rjwn: zzqt * lrpc -1 1388 mqnh: rbnf + twfg -1 1389 tspt: gvdw * mcdq -1 1390 pccv: 1 -1 1391 qbzc: 5 -1 1392 hzvv: 4 -1 1393 fvjj: cjmg * qfvm -1 1394 mqqq: 6 -1 1395 dltw: 4 -1 1396 rfgw: 4 -1 1397 spvs: hrbw + zttc -1 1398 hmhj: 3 -1 1399 dppd: vljf * dqdh -1 1400 cjwb: zjlt * spnq -1 1401 jhrj: pwtd + lctf -1 1402 ggwd: 5 -1 1403 bjqz: 9 -1 1404 wjjp: 2 -1 1405 slcc: ftbz * lbgt -1 1406 rwvd: nqdv * vlqf -1 1407 jmpw: mjhf * shpt -1 1408 wbnb: bhcf * blzm -1 1409 rcgr: 4 -1 1410 wclf: mmbb - thjj -1 1411 dqbc: 5 -1 1412 nvdv: mhcj * jzgp -1 1413 qzvv: 3 -1 1414 wcbb: vmgz * wlfj -1 1415 dhvm: sdvh + hvnc -1 1416 jpcj: 2 -1 1417 pttq: vwbm / lgth -1 1418 twqs: rqqg * qmvc -1 1419 hllf: 4 -1 1420 drcd: wqqf * dmwh -1 1421 nqmw: rnhr + gjhb -1 1422 stvr: 3 -1 1423 nmhm: szfq + hqqj -1 1424 ffvw: 1 -1 1425 srls: bnjn + gstj -1 1426 vbcp: rjqf * rtjp -1 1427 hsvj: 4 -1 1428 nwgv: lnzc * qwfb -1 1429 mptm: svsz / tblh -1 1430 rfvt: 5 -1 1431 qsjv: 2 -1 1432 mnfs: 8 -1 1433 qfgw: 2 -1 1434 twwc: bqtt * fzfp -1 1435 qmss: jhnd + fmnv -1 1436 rdcl: jpcj * mjmp -1 1437 jltn: 3 -1 1438 dgpq: 20 -1 1439 dcwb: nrnm * nqmw -1 1440 cqgt: qrzp + rmgz -1 1441 fpvv: 6 -1 1442 mtbf: bqzs * stzn -1 1443 tqsh: hjjd * blth -1 1444 sjcv: 12 -1 1445 ppbm: pjbc * jbpz -1 1446 ndbd: ttlc * wnpm -1 1447 cpgg: 4 -1 1448 lrpc: mfph * crvv -1 1449 zrvh: 2 -1 1450 bvcw: jcdn + rghg -1 1451 mjhf: 7 -1 1452 fspc: hmsh * bcvn -1 1453 hdrq: rwfc / gmdc -1 1454 wprd: ffqp * ngvq -1 1455 zzvr: 18 -1 1456 btvn: 6 -1 1457 frvg: 1 -1 1458 mcqs: hjrq / stsg -1 1459 qztz: 6 -1 1460 tnns: tvvw * tdlt -1 1461 hmsh: 5 -1 1462 cncq: rtfs * qtrc -1 1463 fnsj: pflw + fjsc -1 1464 htjg: 4 -1 1465 lwfg: 3 -1 1466 gffh: lqwp * qmbf -1 1467 jfsj: qjlt * ntrr -1 1468 wcqd: 2 -1 1469 zfmh: vltz + qrnw -1 1470 tpzq: nltf * sjth -1 1471 dzmq: tpzq - wvrp -1 1472 lnzc: 2 -1 1473 grdf: 3 -1 1474 pwhl: 4 -1 1475 wwpl: pfms + pmcw -1 1476 fwzl: cfdj + nmrp -1 1477 pvfl: 3 -1 1478 vhpg: 2 -1 1479 fwsm: gczn * zljd -1 1480 pspd: 5 -1 1481 jfrh: qtdw * fmsf -1 1482 rzth: jfgd * wqmj -1 1483 dgdm: 4 -1 1484 mnts: 4 -1 1485 qhcb: jhrj / brjv -1 1486 hptp: 5 -1 1487 rchj: 5 -1 1488 lnhl: 1 -1 1489 wftc: qhcb * lbmt -1 1490 shpn: 2 -1 1491 lnpf: 2 -1 1492 csjm: 4 -1 1493 wlpv: 2 -1 1494 flzn: 3 -1 1495 fhlg: 2 -1 1496 bqtt: 3 -1 1497 fzfp: 3 -1 1498 phcm: 13 -1 1499 htbj: 16 -1 1500 crgq: srdm * cqjh -1 1501 hzvb: 10 -1 1502 pszb: 14 -1 1503 cdhj: 2 -1 1504 scqn: 3 -1 1505 qscm: 20 -1 1506 bcvn: rchj * tnnq -1 1507 fjch: 7 -1 1508 rcpq: lfld * jprv -1 1509 dljs: 3 -1 1510 bjpw: 4 -1 1511 vjbt: 4 -1 1512 wvrp: vbzb + rvvd -1 1513 qtrc: 2 -1 1514 stgz: rvbd / fvgz -1 1515 szfq: vszt * qnwt -1 1516 wlfj: wjqh + fvsz -1 1517 dnqg: 17 -1 1518 lnhw: mnlt * fnwt -1 1519 bbtv: crgq + fqnd -1 1520 lvqg: hwmd + cbtw -1 1521 cqfg: 4 -1 1522 vljf: 2 -1 1523 hwpm: fwrr * lnbj -1 1524 nhms: lhhj * qdfm -1 1525 fgnp: 2 -1 1526 znwd: jltn * dwbv -1 1527 wlbw: 3 -1 1528 mbbr: 2 -1 1529 wbvh: cfcm + sfch -1 1530 rfpw: gwmj + gbbm -1 1531 vccr: gbtd * jlzn -1 1532 clqj: 3 -1 1533 tbqp: wclf + blwt -1 1534 ffnd: 7 -1 1535 scmv: 16 -1 1536 ccqw: 10 -1 1537 phrl: 3 -1 1538 ttpq: fchp + lhlm -1 1539 sbhw: 11 -1 1540 vdcn: spdb + rwmn -1 1541 zpjj: fspc + cspg -1 1542 hgpv: 3 -1 1543 mbww: 19 -1 1544 nnfg: ldqd + bmgz -1 1545 hmpm: fqwm + mglr -1 1546 ljdh: jjbl * mrdw -1 1547 vzcs: pgcj + jnfl -1 1548 qhhf: 3 -1 1549 zrqg: 17 -1 1550 fmnv: 13 -1 1551 zbql: 8 -1 1552 gzhg: rwlv * tpfc -1 1553 fgcj: qhpj + zcws -1 1554 fqnd: 3 -1 1555 gwqr: nrmt + fpmb -1 1556 fcjq: zmwm * cdhj -1 1557 shsj: 3 -1 1558 mjfv: brgq + ssbp -1 1559 btrz: 3 -1 1560 zljd: 2 -1 1561 vtzj: pfjz * sqcd -1 1562 sqvz: 2 -1 1563 tjtp: bvdh / vttn -1 1564 wbds: blvm * rfgw -1 1565 qvqr: lbnt * nqbp -1 1566 ddzh: 15 -1 1567 wmjh: rzjf / jjrr -1 1568 hwnt: vlsb / ctjf -1 1569 clhq: svvn + dfqf -1 1570 cddz: 2 -1 1571 nfcj: jmpr + cbcm -1 1572 mgbs: bwzt * grdf -1 1573 hpff: mldh * vrcf -1 1574 jbmg: 2 -1 1575 mldh: drrh + tdfd -1 1576 ddnp: 3 -1 1577 zsmc: dhsf * mgfz -1 1578 httf: 2 -1 1579 wmpt: mvts * jwrs -1 1580 grhf: ggnm / brvq -1 1581 hvfn: fbfn * pjmz -1 1582 tcpr: flfw * ntsq -1 1583 jjfm: 2 -1 1584 mmdt: wgzj / httf -1 1585 hzlz: 2 -1 1586 hjqd: 2 -1 1587 qtqw: 2 -1 1588 jzbl: wwbc / ntft -1 1589 wzmf: wdjg / hfsp -1 1590 fpvz: 5 -1 1591 gzlz: 2 -1 1592 bcrw: pbnz + fvms -1 1593 jtlf: thwp * cqct -1 1594 fzjm: mgwn * qtcr -1 1595 rwqb: fldd * tjht -1 1596 lzvf: 2 -1 1597 cdjz: 2 -1 1598 whjn: 2 -1 1599 trzg: jmcp + qmgs -1 1600 nrhj: 3 -1 1601 spfn: 4 -1 1602 gnbt: rzhr * gnzt -1 1603 wcvr: 5 -1 1604 dpdg: cbmr * jzlj -1 1605 qcnj: qbqw - tdsq -1 1606 lfpg: zlld * mdhv -1 1607 tpcz: 3 -1 1608 nmnd: 9 -1 1609 cfcm: zcgs * wdbn -1 1610 mrmw: 13 -1 1611 rlwt: snll * btwh -1 1612 tzts: 1 -1 1613 cpqf: 4 -1 1614 cqjh: 4 -1 1615 vmzj: jhhb * qscm -1 1616 hzzh: 2 -1 1617 gljm: 2 -1 1618 vrgf: sgrh * hlqd -1 1619 pnvm: rzbj + rglh -1 1620 twfg: 19 -1 1621 sggz: 4 -1 1622 fjsc: 3 -1 1623 gfwn: 2 -1 1624 qvgl: bgvd * qzdb -1 1625 qtgh: 1 -1 1626 zglr: 6 -1 1627 sswv: 2 -1 1628 ngvq: 10 -1 1629 qgzm: 7 -1 1630 mvjc: cqgt / btrz -1 1631 jsrv: tjnp / tffp -1 1632 mlqq: 5 -1 1633 crvv: 2 -1 1634 ttnp: 16 -1 1635 bddb: 19 -1 1636 mjtd: 2 -1 1637 hjcf: 2 -1 1638 lqvd: 1 -1 1639 nhrz: 3 -1 1640 qdvm: 1 -1 1641 lfqs: crvb * pwqd -1 1642 dfhm: nvdv + dgpq -1 1643 rznq: sswv * cpvp -1 1644 tjwg: zchm + flzl -1 1645 qvnj: 2 -1 1646 vrjp: 3 -1 1647 fqvj: hpff / rwgz -1 1648 vjnw: 2 -1 1649 qljp: 6 -1 1650 mgfz: 3 -1 1651 mbwb: 1 -1 1652 dhlh: wsqq * hjcf -1 1653 dzmb: 3 -1 1654 pgfg: cqrt + dsjj -1 1655 vdmb: 2 -1 1656 thwp: 3 -1 1657 fmgt: 4 -1 1658 gpwn: wfqw * btvn -1 1659 mzpr: 2 -1 1660 zqnb: tnvm + tlwh -1 1661 ghtw: 2 -1 1662 bwzt: 9 -1 1663 bszt: 4 -1 1664 mrtg: hsdh + hrnm -1 1665 vhzq: 3 -1 1666 jjfd: 2 -1 1667 lhbz: 5 -1 1668 vfds: 4 -1 1669 tldl: tnpb + npmv -1 1670 mhjv: 7 -1 1671 lrbl: 4 -1 1672 fmsf: tfrq - wjjp -1 1673 rzjf: fvrv / pjgv -1 1674 ctjw: 3 -1 1675 lgth: 6 -1 1676 hwvg: 3 -1 1677 hvdn: 5 -1 1678 vtwr: 11 -1 1679 wwbc: scwt / cdrh -1 1680 zpcr: 4 -1 1681 nggh: cpnn * mjtd -1 1682 lhnd: stqg + jbwl -1 1683 gmtv: 2 -1 1684 mjmp: vbrd * mfvb -1 1685 wfqw: 2 -1 1686 tvzq: 2 -1 1687 grqq: 3 -1 1688 rfnd: 2 -1 1689 jbwl: llzb * qtcp -1 1690 dbdt: nshq + mmwr -1 1691 jbtl: 4 -1 1692 hplb: 18 -1 1693 nqfq: 1 -1 1694 ljzd: 5 -1 1695 bszf: 9 -1 1696 ndfp: hmpm + pnwf -1 1697 crcm: jhbm * vblp -1 1698 nmgl: 17 -1 1699 sdvh: dlfb * vgwf -1 1700 wfwd: 3 -1 1701 rsth: srhw * lzdc -1 1702 rljc: tgdj + gbds -1 1703 vgjv: nbcz / gzbs -1 1704 hvpq: qqmt + rmtc -1 1705 pgph: bbwt * jtpb -1 1706 fvsz: 2 -1 1707 hmbf: mbtf - jzbl -1 1708 smhj: vmvv * mwql -1 1709 tdrl: 3 -1 1710 lrmr: mqjq + mjqm -1 1711 vsbr: 1 -1 1712 nqlj: 2 -1 1713 lthv: 2 -1 1714 vzzd: 3 -1 1715 rmnq: 3 -1 1716 bffv: 4 -1 1717 zbbj: rmhl * qmjg -1 1718 vcsv: bvjw * mvhl -1 1719 nbqq: ghth + rhcl -1 1720 shtt: mvbd * vdfp -1 1721 vfcb: 2 -1 1722 hsgt: vwpb + fqqv -1 1723 mrcj: 14 -1 1724 wcgr: 4 -1 1725 hnwz: jmrn + hshw -1 1726 tfrq: 18 -1 1727 hptn: 1 -1 1728 rwfc: nwzp * jgmz -1 1729 vbzj: bcdr * vtwr -1 1730 fqww: wftc + rdrh -1 1731 bcdr: gqrj + djln -1 1732 jppc: rpdc * jdzg -1 1733 fwrr: 2 -1 1734 jmdg: mgdm * lnqs -1 1735 clrb: wlfh * gpjb -1 1736 mwqv: pbbr * bvcw -1 1737 mdhv: 6 -1 1738 vqtg: 3 -1 1739 jggb: hwpm / wcgr -1 1740 sqrp: jhbz * ngvh -1 1741 sgrh: slvn + qchc -1 1742 sctc: frwl * sgmb -1 1743 dfbv: 13 -1 1744 bmpq: lzbz * szlq -1 1745 gjhb: fwbj - mnfs -1 1746 jljb: zqnj * gwmv -1 1747 tjht: 7 -1 1748 humn: 1200 -1 1749 nmsl: 2 -1 1750 wqfg: 1 -1 1751 lwdh: 1 -1 1752 pwtd: jgvf * qtfg -1 1753 nfgp: 5 -1 1754 vtml: 3 -1 1755 mtgb: bbjr * mqqq -1 1756 npvz: fcml + gzpn -1 1757 hjbh: 2 -1 1758 gzpn: bfgf * cqfl -1 1759 tsbw: fvtn + zbbj -1 1760 mmtl: vbhr * twqs -1 1761 zbdj: 2 -1 1762 vscz: 5 -1 1763 htng: srsw * lhbz -1 1764 rtqd: fcrz * mtvg -1 1765 jgmz: lwrl * ltgt -1 1766 lnbj: 14 -1 1767 jbpq: 2 -1 1768 tlrt: hmct * tdrl -1 1769 gfgz: twdh / cvbt -1 1770 vprd: vzph * mjjs -1 1771 psgw: 3 -1 1772 qfmb: tbqp - sdcc -1 1773 qgqf: 2 -1 1774 hwqh: 5 -1 1775 ljwr: 4 -1 1776 znqn: frvg + vfsj -1 1777 spdb: qvqr + cncq -1 1778 vthl: bqhh + nfrh -1 1779 qtcr: 2 -1 1780 shpt: 5 -1 1781 hmtp: 2 -1 1782 wlfh: 2 -1 1783 sgrd: 5 -1 1784 nlvd: 2 -1 1785 qfvm: 2 -1 1786 cpvp: dlcm + dzcd -1 1787 vsmh: dvts + nzgg -1 1788 bvdh: hvvj + rmtr -1 1789 vbbw: cfdh * gqcn -1 1790 trnq: wtmf + nqjh -1 1791 rmtr: mvjc * jmfr -1 1792 dhjc: 4 -1 1793 wncr: 2 -1 1794 cbmg: qvrb * qhbw -1 1795 pbbr: 5 -1 1796 gjdg: 4 -1 1797 cbtw: shgb * tmvf -1 1798 crvb: nfgp + rjzj -1 1799 qfbs: qmvp * ndfp -1 1800 blwt: 17 -1 1801 rtlq: 3 -1 1802 szld: pglh * dfwc -1 1803 rbcr: csbd - ffvq -1 1804 znlz: 12 -1 1805 ndpm: 5 -1 1806 crvh: ptdc * pnvr -1 1807 nhvr: cngm * rzdc -1 1808 rbql: vbrz / dwbc -1 1809 gfdq: fvpg * pgfg -1 1810 jcfb: vtrd * mpng -1 1811 rjjc: 4 -1 1812 jmpr: pndh + nqfq -1 1813 flhq: 3 -1 1814 zqnd: hwjj * nwlg -1 1815 tmtt: rpfs + ddzh -1 1816 qhrc: 2 -1 1817 rpjs: hsvj * ctcf -1 1818 pjqb: zncr * crvc -1 1819 tgdj: cghj * mmts -1 1820 hcmp: 4 -1 1821 lgnw: mbwb + nwgv -1 1822 fdhh: 5 -1 1823 gnpm: qfrn * rqfn -1 1824 vbrd: 4 -1 1825 ghbn: vrpl * vbsz -1 1826 pwqd: 3 -1 1827 jhhb: rvls - mmdd -1 1828 dpfh: 6 -1 1829 ltgt: 5 -1 1830 tcsz: 15 -1 1831 hvnc: 15 -1 1832 drgc: dgzv + jnlt -1 1833 fwbj: pcmw + zhft -1 1834 vmgz: gnbt / whjn -1 1835 gtcp: clqj * pmqd -1 1836 gzvg: 3 -1 1837 hsrv: hbjd * glfb -1 1838 hhwf: 13 -1 1839 gwnb: 2 -1 1840 nqdv: tnns + ghbn -1 1841 pbsw: 2 -1 1842 rzcg: 5 -1 1843 bvcz: 8 -1 1844 zlld: 2 -1 1845 mhsj: 5 -1 1846 cssz: rsph * fgpf -1 1847 jdlg: jmzn + fdhh -1 1848 tsgb: nhrz * dlth -1 1849 dltm: 1 -1 1850 mshb: 3 -1 1851 gzwz: hdrq + nmgl -1 1852 lwrl: 2 -1 1853 jlzn: nlvd * gldv -1 1854 rbtr: drmd - flhq -1 1855 pzgs: 7 -1 1856 vbrz: mfnr * jswg -1 1857 gmvl: dhdg * gpwn -1 1858 hzcm: vjnw * rmnq -1 1859 gbrj: 3 -1 1860 gwmv: 3 -1 1861 fgzr: 9 -1 1862 dcwg: 2 -1 1863 rvnt: jvdj + fvfh -1 1864 vhgv: tcnm + hcmp -1 1865 vszc: 14 -1 1866 qgrr: rzfg - wbds -1 1867 zbbh: 2 -1 1868 bbjp: gnqq + bgpc -1 1869 vdgd: 4 -1 1870 rghg: 1 -1 1871 hcrf: 7 -1 1872 rgnq: 8 -1 1873 grcq: 2 -1 1874 phft: 2 -1 1875 qhnt: 5 -1 1876 mrdw: 3 -1 1877 qhjp: 5 -1 1878 blcv: 2 -1 1879 hsdh: hstg + hzcm -1 1880 scwt: dsmb * dnwh -1 1881 pnmr: 2 -1 1882 dsmb: lpvq * zcfs -1 1883 cmqp: lttq + fdcp -1 1884 zbmg: sggz * ggwd -1 1885 dqfv: 2 -1 1886 lvgb: tlmm * zfvb -1 1887 rhcl: 6 -1 1888 ttlc: 2 -1 1889 mprw: 2 -1 1890 gmdc: 2 -1 1891 lqpn: 5 -1 1892 wqmj: zvcq * svgj -1 1893 ntrr: 14 -1 1894 lfwd: wvbj * vdmb -1 1895 fdcp: rtlq * bgdg -1 1896 rwlv: sjht + csqw -1 1897 mtqt: 6
diff --git a/2022/21/solution.rs b/2022/21/solution.rs
@@ -0,0 +1,179 @@ -1 1 use std::collections::HashMap; -1 2 -1 3 #[path = "../lib.rs"] mod lib; -1 4 -1 5 enum Monkey { -1 6 Number(i64), -1 7 Add(String, String), -1 8 Sub(String, String), -1 9 Mul(String, String), -1 10 Div(String, String), -1 11 } -1 12 -1 13 enum Calc { -1 14 Number(i64), -1 15 Add(Box<Calc>, Box<Calc>), -1 16 Sub(Box<Calc>, Box<Calc>), -1 17 Mul(Box<Calc>, Box<Calc>), -1 18 Div(Box<Calc>, Box<Calc>), -1 19 Var, -1 20 } -1 21 -1 22 fn get_monkeys() -> HashMap<String, Monkey> { -1 23 let mut monkeys = HashMap::new(); -1 24 -1 25 for line in lib::iter_input() { -1 26 match line.split(" ").collect::<Vec<&str>>()[..] { -1 27 [name, value] => { -1 28 monkeys.insert( -1 29 name.strip_suffix(":").unwrap().to_string(), -1 30 Monkey::Number(value.parse().unwrap()), -1 31 ); -1 32 }, -1 33 [name, a, "+", b] => { -1 34 monkeys.insert( -1 35 name.strip_suffix(":").unwrap().to_string(), -1 36 Monkey::Add(a.to_string(), b.to_string()), -1 37 ); -1 38 }, -1 39 [name, a, "-", b] => { -1 40 monkeys.insert( -1 41 name.strip_suffix(":").unwrap().to_string(), -1 42 Monkey::Sub(a.to_string(), b.to_string()), -1 43 ); -1 44 }, -1 45 [name, a, "*", b] => { -1 46 monkeys.insert( -1 47 name.strip_suffix(":").unwrap().to_string(), -1 48 Monkey::Mul(a.to_string(), b.to_string()), -1 49 ); -1 50 }, -1 51 [name, a, "/", b] => { -1 52 monkeys.insert( -1 53 name.strip_suffix(":").unwrap().to_string(), -1 54 Monkey::Div(a.to_string(), b.to_string()), -1 55 ); -1 56 }, -1 57 _ => unreachable!(), -1 58 } -1 59 } -1 60 -1 61 return monkeys; -1 62 } -1 63 -1 64 fn calc(monkeys: &HashMap<String, Monkey>, name: &String, var: &str) -> Calc { -1 65 // in my data, each name is only used once, so there is no point in caching -1 66 -1 67 if name == var { -1 68 return Calc::Var; -1 69 } -1 70 -1 71 return match monkeys.get(name).unwrap() { -1 72 Monkey::Number(value) => Calc::Number(*value), -1 73 Monkey::Add(a, b) => match (calc(monkeys, a, var), calc(monkeys, b, var)) { -1 74 (Calc::Number(va), Calc::Number(vb)) => Calc::Number(va + vb), -1 75 (ca, cb) => Calc::Add(Box::new(ca), Box::new(cb)), -1 76 }, -1 77 Monkey::Sub(a, b) => match (calc(monkeys, a, var), calc(monkeys, b, var)) { -1 78 (Calc::Number(va), Calc::Number(vb)) => Calc::Number(va - vb), -1 79 (ca, cb) => Calc::Sub(Box::new(ca), Box::new(cb)), -1 80 }, -1 81 Monkey::Mul(a, b) => match (calc(monkeys, a, var), calc(monkeys, b, var)) { -1 82 (Calc::Number(va), Calc::Number(vb)) => Calc::Number(va * vb), -1 83 (ca, cb) => Calc::Mul(Box::new(ca), Box::new(cb)), -1 84 }, -1 85 Monkey::Div(a, b) => match (calc(monkeys, a, var), calc(monkeys, b, var)) { -1 86 (Calc::Number(va), Calc::Number(vb)) => Calc::Number(va / vb), -1 87 (ca, cb) => Calc::Div(Box::new(ca), Box::new(cb)), -1 88 }, -1 89 }; -1 90 } -1 91 -1 92 fn solve(value: i64, calc: Calc) -> i64 { -1 93 let mut var = value; -1 94 let mut rest = calc; -1 95 -1 96 loop { -1 97 match rest { -1 98 Calc::Add(left, right) => { -1 99 match (*left, *right) { -1 100 (Calc::Number(l), r) => { -1 101 var -= l; -1 102 rest = r; -1 103 }, -1 104 (l, Calc::Number(r)) => { -1 105 var -= r; -1 106 rest = l; -1 107 }, -1 108 _ => unreachable!(), -1 109 } -1 110 }, -1 111 Calc::Sub(left, right) => { -1 112 match (*left, *right) { -1 113 (Calc::Number(l), r) => { -1 114 var = l - var; -1 115 rest = r; -1 116 }, -1 117 (l, Calc::Number(r)) => { -1 118 var += r; -1 119 rest = l; -1 120 }, -1 121 _ => unreachable!(), -1 122 } -1 123 }, -1 124 Calc::Mul(left, right) => { -1 125 match (*left, *right) { -1 126 (Calc::Number(l), r) => { -1 127 var /= l; -1 128 rest = r; -1 129 }, -1 130 (l, Calc::Number(r)) => { -1 131 var /= r; -1 132 rest = l; -1 133 }, -1 134 _ => unreachable!(), -1 135 } -1 136 }, -1 137 Calc::Div(left, right) => { -1 138 match (*left, *right) { -1 139 (Calc::Number(l), r) => { -1 140 var = l / var; -1 141 rest = r; -1 142 }, -1 143 (l, Calc::Number(r)) => { -1 144 var *= r; -1 145 rest = l; -1 146 }, -1 147 _ => unreachable!(), -1 148 } -1 149 }, -1 150 Calc::Number(_) => unreachable!(), -1 151 Calc::Var => { -1 152 return var; -1 153 }, -1 154 } -1 155 } -1 156 } -1 157 -1 158 fn main() { -1 159 let monkeys = get_monkeys(); -1 160 -1 161 match calc(&monkeys, &"root".to_string(), "") { -1 162 Calc::Number(i) => println!("part1: {}", i), -1 163 _ => unreachable!(), -1 164 } -1 165 -1 166 let (left, right) = match calc(&monkeys, &"root".to_string(), "humn") { -1 167 Calc::Add(left, right) => (left, right), -1 168 Calc::Sub(left, right) => (left, right), -1 169 Calc::Mul(left, right) => (left, right), -1 170 Calc::Div(left, right) => (left, right), -1 171 _ => unreachable!(), -1 172 }; -1 173 let (value, calc) = match (*left, *right) { -1 174 (Calc::Number(value), calc) => (value, calc), -1 175 (calc, Calc::Number(value)) => (value, calc), -1 176 _ => unreachable!(), -1 177 }; -1 178 println!("part2: {}", solve(value, calc)); -1 179 }
diff --git a/2022/21/test.txt b/2022/21/test.txt
@@ -0,0 +1,15 @@ -1 1 root: pppw + sjmn -1 2 dbpl: 5 -1 3 cczh: sllz + lgvd -1 4 zczc: 2 -1 5 ptdq: humn - dvpt -1 6 dvpt: 3 -1 7 lfqf: 4 -1 8 humn: 5 -1 9 ljgn: 2 -1 10 sjmn: drzm * dbpl -1 11 sllz: 4 -1 12 pppw: cczh / lfqf -1 13 lgvd: ljgn * ptdq -1 14 drzm: hmdt - zczc -1 15 hmdt: 32