- commit
- 0cd28a12366c21b728a38257c6a46186223680e2
- parent
- a76fbf456609949af458fdc08fa7c435c7b48142
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2023-12-19 11:55
2023-12-19
Diffstat
| A | 2023/19/input.txt | 710 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | 2023/19/solution.rs | 132 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | 2023/19/test.txt | 17 | +++++++++++++++++ |
3 files changed, 859 insertions, 0 deletions
diff --git a/2023/19/input.txt b/2023/19/input.txt
@@ -0,0 +1,710 @@
-1 1 brn{a>3342:A,R}
-1 2 jls{a<887:A,s>1443:A,R}
-1 3 pxk{m<2246:A,x>1998:R,a>170:R,R}
-1 4 vl{s>2294:R,s>2057:A,A}
-1 5 zjs{s>1912:A,a>838:R,x>620:A,A}
-1 6 dzh{m>2601:rfn,a>3285:js,m<2527:scz,lt}
-1 7 tr{x<500:R,s<1092:R,A}
-1 8 sg{x<3252:kb,m<2286:A,mlx}
-1 9 bcn{s>3614:hs,hnp}
-1 10 nxl{s>346:R,m<3521:A,x>2963:R,A}
-1 11 vk{a>2827:cgv,x<1369:txs,klk}
-1 12 jph{m>2234:bdv,m<2211:hcg,a>3665:jzv,ks}
-1 13 bp{s>1408:A,m<2281:A,A}
-1 14 mn{m>2667:R,s<3064:R,A}
-1 15 prs{s>2614:R,x>2262:R,m>2474:A,R}
-1 16 grb{s<1246:A,x<2546:ddd,R}
-1 17 nj{m>2749:dg,A}
-1 18 qp{a>3378:A,x<2336:R,m<3213:R,xr}
-1 19 kq{a>120:vm,a>72:cn,A}
-1 20 jcg{m>2746:R,x<611:A,s>1050:R,A}
-1 21 kb{a>3159:R,A}
-1 22 gcz{s>845:cf,x<1421:dr,m>2297:cb,jph}
-1 23 fs{s<1275:A,a>2135:A,a<1933:R,A}
-1 24 mvb{m<1519:xcq,R}
-1 25 lkh{s>2665:R,s>2539:R,A}
-1 26 lzr{m>980:zcx,a<2062:A,a<2126:A,A}
-1 27 sds{s<2263:lr,a>1624:A,s<2594:A,sfx}
-1 28 qzz{a>2011:czj,R}
-1 29 in{m>2048:npv,qmn}
-1 30 nc{s<1052:R,s<1468:R,A}
-1 31 zv{a>1998:R,x<2403:R,spt}
-1 32 vfn{a>3746:A,m>2797:R,m>2774:A,A}
-1 33 jp{m>2284:A,a>3722:R,m>2229:R,R}
-1 34 sk{s<2821:kn,kfj}
-1 35 pgb{m>359:pvm,zn}
-1 36 ql{s<2431:fb,x<2455:vh,R}
-1 37 rj{s<1283:qb,m>2800:nz,tp}
-1 38 qps{m>242:A,a>3633:A,A}
-1 39 sj{a>1665:R,a<877:fzq,A}
-1 40 dc{a>3479:sgl,x<1417:A,R}
-1 41 hmz{m<2567:A,s<3456:A,A}
-1 42 lf{m<2572:R,R}
-1 43 gj{m<2575:A,s>3294:tzv,s>2387:R,rqf}
-1 44 km{a>793:R,A}
-1 45 fz{a<2506:A,m>1196:A,a>2537:A,R}
-1 46 nml{a>303:dj,a<110:zvt,m<2988:sl,R}
-1 47 lzl{m<3174:A,m<3235:hq,qgr}
-1 48 mx{m>1311:th,xtj}
-1 49 md{s<2642:sr,m<657:sxs,m<876:np,A}
-1 50 nz{x<3045:lqk,A}
-1 51 kcn{m>2486:R,A}
-1 52 qrq{a>2455:rrr,x<1402:mrm,hf}
-1 53 dvl{a>808:R,s>1965:A,m<3110:R,A}
-1 54 rfj{s<2379:A,m>3896:A,A}
-1 55 mrt{m>2825:R,s<883:A,A}
-1 56 lgp{m<3796:R,m<3924:R,A}
-1 57 gr{m>1627:A,A}
-1 58 msr{s>2172:lfb,rpq}
-1 59 lm{m>3597:lb,s<2096:R,a>3112:R,A}
-1 60 jmd{m>3270:ztq,nt}
-1 61 qh{m<2303:lv,fk}
-1 62 zr{s<3472:R,a>2636:A,A}
-1 63 lh{a<3622:rxh,qn}
-1 64 rfn{s<2236:mm,a<3135:jvh,fnx}
-1 65 vbv{x>1976:qh,m>2209:jpg,jh}
-1 66 gs{m>3877:R,A}
-1 67 bmn{m<264:R,x<1479:R,s>804:A,R}
-1 68 clc{a>2079:pk,ln}
-1 69 jdd{x<2643:R,x<3119:R,s<885:A,A}
-1 70 ht{s<443:R,s>730:A,x<2247:A,A}
-1 71 hnp{m<1666:A,s>3471:R,s<3426:A,R}
-1 72 qhj{x<3245:R,s>2513:A,mhq}
-1 73 gk{x<2627:R,m>873:A,R}
-1 74 cfl{x<3209:A,R}
-1 75 fc{x<1594:vr,a<255:R,vt}
-1 76 fxr{a<1985:ngk,s>2230:cg,zh}
-1 77 hk{s<3179:slx,x<932:A,A}
-1 78 slz{s>3267:A,A}
-1 79 tdz{a<3600:A,x>1636:A,a<3742:R,A}
-1 80 gv{s<918:A,s>990:A,s<950:A,A}
-1 81 ngk{a>672:xb,s>2213:rm,fc}
-1 82 fm{a<2660:qc,m<1678:tt,R}
-1 83 ts{a<2026:xg,R}
-1 84 fv{a>3074:R,xt}
-1 85 cmp{s>3676:A,s>3548:A,A}
-1 86 kgs{x>2016:A,m>3160:R,A}
-1 87 rx{a>625:df,tsk}
-1 88 znr{a<3387:A,A}
-1 89 hmg{s<380:A,R}
-1 90 xnh{s>2277:rlx,smv}
-1 91 gdf{x>2191:lkh,s>2586:xtx,x>1119:kmd,A}
-1 92 pjl{s<3552:R,a<3516:R,R}
-1 93 cgv{a>3098:A,A}
-1 94 fk{m<2388:cfl,R}
-1 95 mt{a>2107:R,a>2053:R,m<3666:R,R}
-1 96 fvf{s>3136:A,s<2954:R,m<3637:A,R}
-1 97 zs{m<2196:gsh,x>2272:tf,a>3339:gcz,vk}
-1 98 pvm{a<1940:R,s>3529:R,hcc}
-1 99 qj{m>2119:qjg,fsb}
-1 100 gh{x<1609:R,A}
-1 101 fzq{m<3304:A,m<3428:A,a<346:R,A}
-1 102 tv{a>2695:R,R}
-1 103 jgn{a<2816:pt,s>3239:hbt,A}
-1 104 qmz{m>2331:A,s>1823:R,A}
-1 105 nxp{m>749:R,A}
-1 106 fpz{x<1322:R,A}
-1 107 xg{a>1898:R,a<1847:R,s>2053:A,A}
-1 108 qv{a>142:R,R}
-1 109 bmh{m>2858:R,m>2833:R,A}
-1 110 nvx{a<1373:A,x>1979:R,a>1736:A,A}
-1 111 fsb{a>984:A,m>2091:A,a<602:R,R}
-1 112 lll{a<950:A,dkd}
-1 113 sbj{s>1164:A,a>2143:R,x<1709:R,R}
-1 114 lrf{x>2563:A,A}
-1 115 jqt{a<3409:R,A}
-1 116 sfp{x>2877:tx,x>2526:R,A}
-1 117 fb{s>2348:R,a>2308:A,R}
-1 118 chf{a<2619:A,m<2435:R,x>1094:A,R}
-1 119 xf{x<1729:A,a<2135:A,R}
-1 120 jz{s>1829:A,s<1124:R,s<1585:A,R}
-1 121 kpn{s<2844:prs,a<3654:pjl,A}
-1 122 hz{m<1894:R,a<340:R,m>1949:A,R}
-1 123 ndk{x<2803:A,A}
-1 124 jtm{x<1323:A,R}
-1 125 thh{x<3100:A,s<338:R,R}
-1 126 dgs{s>2821:km,x>3046:vl,cxm}
-1 127 sfx{x>2576:R,A}
-1 128 jvn{x>2299:A,x>1184:bj,klg}
-1 129 fnx{x>1358:nj,m>2742:mbx,zst}
-1 130 rv{m<288:A,m<427:R,x<2377:R,R}
-1 131 lt{s>1905:njm,zzh}
-1 132 krn{a<3220:mh,ht}
-1 133 cb{x<1754:R,A}
-1 134 sl{a<230:R,x<2565:A,A}
-1 135 rqf{x<1500:A,a>2642:A,R}
-1 136 dr{x<822:R,m<2270:gst,a>3718:rnz,jxh}
-1 137 xr{a<2854:A,R}
-1 138 tf{s>1067:pxh,s>710:sg,fqk}
-1 139 kc{x<2265:A,R}
-1 140 nxc{m<2273:R,m<2354:R,a>2596:R,R}
-1 141 gst{s<397:A,m>2233:R,A}
-1 142 rn{a<2631:jtm,m<3615:A,x<922:dt,jm}
-1 143 xs{s<920:A,s>1257:A,m>3424:lgp,vsg}
-1 144 lzp{m>2400:R,a>270:hlh,s>3370:pxk,R}
-1 145 jvs{x<1828:qzh,m<2727:mxq,cv}
-1 146 jj{m>3671:A,x>1061:A,R}
-1 147 zp{s<1062:A,s>1478:R,a<2720:R,A}
-1 148 tk{a>3566:fjx,a>3274:nmv,slz}
-1 149 hqn{m>2561:A,x>3239:R,R}
-1 150 vv{s>2841:A,A}
-1 151 vrs{a<1806:npc,x<2207:xhz,x>3102:ts,lbg}
-1 152 dj{x<1692:A,A}
-1 153 ng{x<1352:jcg,m<2756:mhg,R}
-1 154 lfc{s<2000:R,s<2311:A,s>2410:R,R}
-1 155 tc{x>2349:zrk,x>1524:qkt,R}
-1 156 dm{s<3686:brn,s<3861:thv,R}
-1 157 vrb{s>423:R,A}
-1 158 cxm{a>424:A,m>999:A,A}
-1 159 dkd{s<2124:A,m<1574:R,x>2611:A,A}
-1 160 sv{m<2777:mn,A}
-1 161 bft{x<3237:A,a<3041:A,x<3543:A,R}
-1 162 lfb{a<2807:fsn,tk}
-1 163 ljp{x>1186:jg,lpm}
-1 164 jm{x<1528:R,m>3709:A,A}
-1 165 jvh{x<2455:hk,sv}
-1 166 xq{s<1163:R,s>1782:A,R}
-1 167 qn{s>850:R,a<3771:A,s>284:R,R}
-1 168 jv{a>1232:mx,xhp}
-1 169 rz{m>1023:jz,nxp}
-1 170 gf{m<3732:A,A}
-1 171 bj{s>2167:A,a<1487:R,R}
-1 172 pp{s<1039:A,m<2559:A,x>1116:R,A}
-1 173 kcp{x>3200:A,m<2485:tfx,x>2752:R,R}
-1 174 hlh{s<3196:R,A}
-1 175 kvp{x>786:mvb,bl}
-1 176 bsm{a>1939:R,A}
-1 177 ltx{m>3553:tn,s<3379:sj,hn}
-1 178 ct{m>636:A,A}
-1 179 lrc{a<1519:R,s<980:R,x>1152:A,R}
-1 180 bz{s>2254:ghn,m<3138:sht,s>1909:fv,qp}
-1 181 vt{x>2546:A,x<2214:R,s<1892:A,A}
-1 182 sr{x<1300:A,R}
-1 183 smv{m>1053:kvp,a<2499:tm,m>690:rs,jqj}
-1 184 np{m>776:A,R}
-1 185 pj{s>2781:R,x<3585:R,R}
-1 186 ssr{x<1279:A,m>2468:R,x<1422:A,R}
-1 187 cjn{x<1650:kj,x>1708:A,A}
-1 188 pv{m<2990:lfc,m<3041:dtc,jfq}
-1 189 pzl{m>1647:A,x<1879:R,m<1363:jr,nn}
-1 190 zn{a<2404:R,a<2955:A,R}
-1 191 qbn{s>3381:cmp,tdz}
-1 192 jpg{m<2407:jsn,zgq}
-1 193 zx{x<1007:ns,x>1267:A,s>1035:R,R}
-1 194 clq{x<1849:chf,A}
-1 195 dvr{s<2199:zs,sk}
-1 196 kfk{s>3605:nh,hmz}
-1 197 rm{x>1734:mp,a>339:gf,x>952:R,qv}
-1 198 zlm{a<3342:A,s<1679:R,m<2645:A,A}
-1 199 zd{x<2278:A,A}
-1 200 qzn{x>1539:kcn,x<899:gmk,a>3677:mf,nxv}
-1 201 spv{a>3553:A,x<796:R,A}
-1 202 pq{a>1702:A,A}
-1 203 jg{x>1636:R,s>883:A,A}
-1 204 ln{m<2681:sz,x>1597:xh,fjl}
-1 205 cm{m>2541:R,m>2529:R,R}
-1 206 jh{x>840:cd,qj}
-1 207 fjl{m<2771:A,R}
-1 208 tm{m<654:ljp,rq}
-1 209 jtv{s<981:A,R}
-1 210 hh{a>578:A,m<2576:R,A}
-1 211 jd{x>1334:zlm,s>1373:jq,m<2656:xmf,A}
-1 212 vm{a<185:A,R}
-1 213 ztd{s>1957:zfx,m<2530:vbv,a>1427:mj,nd}
-1 214 nt{m>3040:R,x>718:R,A}
-1 215 tn{m>3798:gcl,a<1797:st,fvf}
-1 216 zh{s<2000:gh,lm}
-1 217 gjp{a<2724:clq,mlh}
-1 218 ps{m<3076:nml,s>2270:gq,a>217:lzl,kq}
-1 219 ff{m<2438:R,m>2450:A,x<2100:R,R}
-1 220 bt{x>2739:fg,a>921:hg,lz}
-1 221 cvp{x>2263:A,R}
-1 222 zst{a<3607:R,s>3076:rlv,A}
-1 223 thv{m>1517:R,s<3794:A,R}
-1 224 dg{x<2840:R,A}
-1 225 tsk{s>964:kk,a<284:R,A}
-1 226 mnt{a<3097:ff,s>3224:R,s<3050:A,spz}
-1 227 nxv{m>2512:pp,ssr}
-1 228 tfx{a<2681:A,m<2470:A,s>2617:A,R}
-1 229 qkv{x<3136:A,s>1837:bk,a>2777:ms,R}
-1 230 tcr{x<2657:ml,x<2916:jvz,R}
-1 231 bf{a<340:R,m>838:A,A}
-1 232 kp{m>3075:czp,pv}
-1 233 rcb{a<3527:A,gxd}
-1 234 njm{a>2813:pn,a>2694:db,gj}
-1 235 bfn{a<3454:nc,a>3659:qnz,spv}
-1 236 dl{s<860:nxl,x<2576:A,x>3419:R,A}
-1 237 scz{s<2078:prt,a>2902:lx,m<2458:gjp,sc}
-1 238 zrk{a<3119:A,m<2147:R,A}
-1 239 jfq{a>944:A,R}
-1 240 rg{a>3196:dkf,s<1001:thh,s>1451:qkv,spn}
-1 241 vs{s<507:A,A}
-1 242 hzh{a<1927:fdz,a>2326:kx,R}
-1 243 xcq{s<1264:A,x<1418:A,A}
-1 244 smd{a>2665:dm,x<1584:gr,x>1737:pzl,cjn}
-1 245 ml{m>1562:R,R}
-1 246 kl{s<3539:mz,zv}
-1 247 jc{a<3448:R,m<458:qps,ct}
-1 248 pbv{a>2642:R,x<2088:R,R}
-1 249 pl{s>842:R,a>898:R,m<2348:A,R}
-1 250 kj{a>1149:A,R}
-1 251 qkj{x>755:A,x>264:R,m>2209:R,R}
-1 252 jt{s<1011:lf,R}
-1 253 fxx{s>1307:A,m>743:A,R}
-1 254 qsp{m<428:A,s>603:A,a<3236:R,R}
-1 255 mxq{x>3038:R,a<2129:R,a>2362:R,gv}
-1 256 spt{x>3082:A,x>2723:R,a<1697:R,R}
-1 257 vz{x>2056:ltx,m<3484:ds,nx}
-1 258 cf{a<3691:R,a>3829:A,a<3760:jp,bp}
-1 259 mh{a>2965:R,A}
-1 260 nhf{a>1873:A,a<1699:A,a<1782:R,R}
-1 261 kxc{x<3036:A,s>484:A,A}
-1 262 jjb{a<1180:A,x>2202:R,s>2117:A,A}
-1 263 lr{m<2641:R,A}
-1 264 dsk{a>2376:A,m>3865:R,R}
-1 265 lv{m>2171:R,A}
-1 266 ddd{a>3297:A,s<1645:R,s>1987:R,A}
-1 267 qnz{m>947:R,m>914:R,x>1098:A,A}
-1 268 spz{s<3158:A,a<3217:R,R}
-1 269 nh{m<2697:A,R}
-1 270 fg{x<3208:R,A}
-1 271 mr{s<2803:A,m>282:A,A}
-1 272 vj{a<2886:A,m<2458:A,s<1064:A,A}
-1 273 csb{s<2352:qkj,s>2383:R,s<2364:R,R}
-1 274 jq{x<655:A,a<3265:R,R}
-1 275 fj{m>2818:A,R}
-1 276 mcj{a>1014:A,m<2170:R,s<2067:R,A}
-1 277 pqh{x>2521:cch,m>1585:rdq,a>632:jgh,A}
-1 278 pt{m<2485:R,x<2171:R,x<3169:A,A}
-1 279 xhz{s<2286:gm,a>2005:A,m<3052:gln,A}
-1 280 xtx{s>2721:R,A}
-1 281 ddm{a<781:jtv,A}
-1 282 jmk{s>2358:A,R}
-1 283 bc{x<940:R,s>1238:R,R}
-1 284 ztq{a>1950:A,A}
-1 285 mrm{x<640:gtt,zx}
-1 286 nmv{m>1076:R,x<2991:R,m>626:R,mr}
-1 287 gtt{x>350:tr,x>199:cdj,s>1117:A,R}
-1 288 fqk{x>3048:jqt,a<3367:R,s>284:R,A}
-1 289 fr{s<1609:ddm,x>3355:pj,x>3181:qhj,dgs}
-1 290 cd{x<1304:R,x>1558:R,A}
-1 291 sxs{m<573:A,m<621:A,R}
-1 292 th{x>3245:qhv,tcr}
-1 293 lbg{m<3064:R,R}
-1 294 hqq{a<3435:R,s<3410:A,A}
-1 295 kpm{a<1405:R,m<3874:R,a>1632:R,A}
-1 296 mlx{x>3700:R,s<915:A,x>3425:R,R}
-1 297 sp{x>3196:A,s<311:A,x<2444:A,A}
-1 298 jzv{m>2220:A,m<2216:A,R}
-1 299 rlx{x<1120:cp,s<3205:dpm,m>935:smd,pgb}
-1 300 klk{x>1851:A,x>1552:zp,a>2716:dnr,A}
-1 301 fsn{a<2457:sfp,jk}
-1 302 ghn{x<2652:A,x>3143:R,A}
-1 303 gm{a<1988:R,A}
-1 304 kn{s>2406:gdf,s<2291:gss,x<2256:csb,tvv}
-1 305 mkp{a<1887:R,kxc}
-1 306 gz{s<774:R,s<1102:R,x>2835:A,A}
-1 307 dtc{x>2488:A,R}
-1 308 kfj{m<2250:tc,m<2316:hqq,a>3189:qbn,pjj}
-1 309 pfm{s<224:R,x>1157:vrb,A}
-1 310 vd{m>3736:rfj,kg}
-1 311 dt{m>3707:R,x<572:A,x<700:R,A}
-1 312 zvp{x<1403:R,s>1054:R,m<2662:A,A}
-1 313 xh{s>1392:R,x>2537:A,m<2750:A,A}
-1 314 gkm{x>396:hnv,A}
-1 315 pd{s<1996:A,x<2867:R,x<3439:A,A}
-1 316 bk{a>2542:A,R}
-1 317 fjx{x>2752:R,x>2469:gk,a>3813:cvp,vv}
-1 318 fcn{m>2471:sds,s>2272:vlb,m<2202:klx,jvn}
-1 319 jqj{x>1232:bvv,x>475:rf,xx}
-1 320 pjj{a>2841:R,R}
-1 321 mj{s>1093:clc,s<657:kst,jvs}
-1 322 zvt{m<2975:R,s>2275:R,A}
-1 323 ms{m<1447:A,A}
-1 324 fd{x<2370:A,R}
-1 325 rrr{x<1596:xs,a<3274:dl,lh}
-1 326 lrd{a<1963:R,a>2013:A,m>2694:R,R}
-1 327 zj{s<3209:zd,a>1906:sq,x<2414:kfk,tgv}
-1 328 lk{s>3507:R,x>2530:nq,m<2457:fpz,R}
-1 329 vr{x>572:A,s<1886:R,R}
-1 330 ggg{s<2984:R,s<3128:A,R}
-1 331 pdv{s>2449:A,s>2368:A,a<1746:R,A}
-1 332 mhg{x<2744:R,m<2735:R,A}
-1 333 klg{s<2159:R,m>2315:A,A}
-1 334 rnz{m<2329:R,A}
-1 335 ld{x>3451:A,a<1561:A,R}
-1 336 bdv{m>2265:A,x>1794:A,a>3580:A,A}
-1 337 rzx{m<2184:R,m<2308:A,R}
-1 338 czn{m>584:A,rv}
-1 339 kgr{m>3577:vs,m<3119:R,nvx}
-1 340 fdz{a>1650:R,m<2604:A,R}
-1 341 js{s<2242:qzn,fjt}
-1 342 crj{m<227:R,s<2793:A,m>410:A,A}
-1 343 pk{m<2745:R,R}
-1 344 mz{s>3189:A,m>2232:A,R}
-1 345 vrz{a>3637:slp,x>2160:hqn,s>2879:R,cm}
-1 346 slp{x>1600:A,R}
-1 347 lz{m>2616:A,hh}
-1 348 hnv{m>1712:A,m>1568:R,a>648:R,R}
-1 349 jgh{m<1485:R,s>1699:R,s<872:A,A}
-1 350 zq{a<678:A,R}
-1 351 gss{x<1901:rzx,x>2820:bft,a<3107:bqs,A}
-1 352 nd{x<1588:rx,m>2720:rj,bt}
-1 353 gc{m<943:R,m>1007:A,R}
-1 354 gln{x<954:R,m>2958:A,m>2911:R,A}
-1 355 qnv{m<1295:czn,a<549:rfl,a<790:pqh,lll}
-1 356 kr{m>2434:R,R}
-1 357 hq{s>1938:R,m<3214:R,A}
-1 358 jsn{m<2299:R,a<1534:pl,x<1178:fs,sbj}
-1 359 cdj{x>288:A,R}
-1 360 kmd{m>2187:A,m>2106:R,R}
-1 361 cp{m<1356:nnl,s>3389:bcn,a<1891:gkm,fm}
-1 362 rfl{s<2240:A,m<1728:A,hz}
-1 363 xb{s<2075:A,m<3736:qcg,x<2023:gs,kpm}
-1 364 bl{m<1526:bsm,R}
-1 365 fqt{x>693:R,A}
-1 366 kx{s<365:R,x<2163:R,m<2600:A,A}
-1 367 sqh{s>2420:A,a>2649:tv,m<2481:R,R}
-1 368 nx{m>3762:pm,rn}
-1 369 kk{m>2759:A,m<2677:A,x>730:R,R}
-1 370 slx{x>1117:R,x>483:R,R}
-1 371 sf{a>641:lk,lzp}
-1 372 hbt{m>2498:A,a>2865:A,A}
-1 373 czj{m<277:R,a>2101:R,a<2064:A,R}
-1 374 rf{x<831:A,x<1053:R,A}
-1 375 hf{x>2488:fqv,s<946:kgr,jls}
-1 376 zvh{x>3760:A,s<1547:R,A}
-1 377 pn{m<2566:zkc,a<3038:A,A}
-1 378 zjc{s<3764:A,x>2644:A,A}
-1 379 gns{m>823:R,m>777:R,R}
-1 380 sd{s>2599:vz,s<1700:qrq,m>3290:fxr,mmt}
-1 381 nnl{m>514:R,s<3404:crj,a>1590:R,fqt}
-1 382 fl{a<2794:kfh,x<3266:rcb,s>1035:jc,znr}
-1 383 qgr{a>337:A,A}
-1 384 mhq{m>721:R,R}
-1 385 vb{x<1268:A,x>1326:A,A}
-1 386 npv{m>2886:sd,a<2542:ztd,m>2411:dzh,dvr}
-1 387 rpq{m>815:rg,fl}
-1 388 db{x<1494:A,A}
-1 389 mmt{a>2140:bz,a>1253:vrs,a<514:ps,kp}
-1 390 qjg{a>1444:R,x>463:R,A}
-1 391 mlh{x>1576:kr,hx}
-1 392 sm{m<2757:R,a<2141:R,a>2298:A,A}
-1 393 bvv{s>1255:R,x<1719:bmn,A}
-1 394 mbx{a>3513:vfn,m<2819:A,bmh}
-1 395 qcg{x<2137:A,m<3509:R,m>3592:R,R}
-1 396 qc{a>2250:R,x>639:A,A}
-1 397 lb{x>2504:A,A}
-1 398 mp{a<415:R,R}
-1 399 cch{a<630:A,x>2677:R,A}
-1 400 czp{s>2241:kgs,x<1422:zjs,m>3153:pmb,dvl}
-1 401 gq{a<293:A,A}
-1 402 xt{x<1922:A,x<3048:A,x>3585:A,R}
-1 403 zzh{x<1597:bc,jt}
-1 404 spn{x>3087:R,a>2707:A,fd}
-1 405 vlb{m>2323:A,a>1028:pdv,x<2660:R,ndd}
-1 406 zkc{a<3038:A,a<3172:R,s<2955:R,R}
-1 407 nr{x<1951:R,vj}
-1 408 cn{s>2060:A,A}
-1 409 ndd{m<2189:R,s<2552:A,a<625:A,A}
-1 410 fsg{s<489:A,s>691:A,s<594:R,R}
-1 411 gmg{m>2283:A,A}
-1 412 klx{m>2134:mcj,jjb}
-1 413 cg{a>2687:vd,m<3644:ql,m>3779:dsk,rp}
-1 414 xx{s<1226:qsp,a<3457:zbd,A}
-1 415 hn{x<3059:zjc,a<1420:lcf,nxh}
-1 416 nxh{m>3268:R,m<3061:R,x>3496:R,A}
-1 417 qsm{a<3225:R,a<3253:A,A}
-1 418 lgj{x>1089:gns,s<812:fsg,m>799:R,fxx}
-1 419 zcx{m>1148:A,R}
-1 420 npc{s<2193:A,R}
-1 421 dpm{m>1055:hsq,x>1462:njj,m<457:pq,md}
-1 422 rs{m>892:bfn,lgj}
-1 423 qhv{x>3633:zvh,m<1679:ld,A}
-1 424 dkf{s<781:A,s<1484:A,A}
-1 425 zgq{s<784:A,s<1187:lrc,x>663:A,R}
-1 426 qmn{x<2008:xnh,a<2168:jv,msr}
-1 427 lcf{m>3120:A,R}
-1 428 nq{s>3242:A,s<2983:R,R}
-1 429 bqs{s<2248:A,a<2832:A,R}
-1 430 cc{a>2485:R,R}
-1 431 lx{s<2723:bm,m<2462:mnt,tz}
-1 432 ls{x<649:A,R}
-1 433 sln{x<2203:A,m>2647:A,x>2418:R,A}
-1 434 rdq{a>698:A,a<603:R,s<2377:R,A}
-1 435 prt{a>3003:zm,a<2760:pbv,nr}
-1 436 ns{s<626:A,s>1295:R,R}
-1 437 jr{a<1614:A,R}
-1 438 pm{m>3874:R,m<3814:R,R}
-1 439 hpg{m>2759:A,fh}
-1 440 jxh{s<547:A,x>1116:R,R}
-1 441 df{x<705:A,x<1278:A,m<2749:zvp,fj}
-1 442 xhp{x>2916:fr,qnv}
-1 443 dnr{x>1463:R,A}
-1 444 sgl{x>2396:A,a<3778:A,s<1318:R,A}
-1 445 kg{s>2376:A,a<3276:R,A}
-1 446 scl{m>2865:R,x<2305:A,s<820:R,A}
-1 447 ds{x>1336:ll,jmd}
-1 448 sz{a<1833:A,a>1960:A,A}
-1 449 fjt{m>2506:vrz,kpn}
-1 450 znd{s<1960:A,a>1444:R,R}
-1 451 hg{s<1136:sln,s>1670:A,R}
-1 452 gmk{s>928:R,x<384:A,x>690:A,A}
-1 453 txs{s<832:ls,a>2641:R,nxc}
-1 454 tx{x<3524:R,a<2350:R,R}
-1 455 cv{m<2804:sm,m<2840:mrt,x>2603:rc,scl}
-1 456 tzv{a<2633:R,m>2586:A,a<2660:A,R}
-1 457 qkt{a>3196:A,x>1972:A,s>3281:A,A}
-1 458 hsq{m<1524:R,m<1852:A,x<1418:vb,R}
-1 459 kv{s<1341:R,A}
-1 460 mm{m>2787:dc,m>2723:ng,s<914:krn,jd}
-1 461 qb{m>2820:gz,s<561:sp,R}
-1 462 tt{m<1529:A,A}
-1 463 vh{s<2541:R,s>2565:A,s>2553:R,R}
-1 464 hs{a<2367:R,m<1602:R,x<684:A,A}
-1 465 pmb{x>2897:R,R}
-1 466 sht{a>3271:R,rcl}
-1 467 rcl{a<2645:R,a>2957:R,R}
-1 468 zfx{s<2783:fcn,a<1310:sf,m<2364:kl,zj}
-1 469 zbd{a<2989:R,R}
-1 470 mvc{m<808:znd,a<1515:ndk,m>1132:pd,gc}
-1 471 pxh{a<3082:gmg,s>1605:qmz,kv}
-1 472 st{x>2896:R,m>3700:R,R}
-1 473 sc{a>2771:jgn,s>2920:zr,x>2029:kcp,sqh}
-1 474 sq{a>2235:R,a>2057:A,m<2594:R,lrd}
-1 475 zm{s>754:R,a<3168:lrf,x<2383:qsm,hmg}
-1 476 fcc{x<2813:A,R}
-1 477 ks{x<1866:R,x<2087:R,a>3475:R,R}
-1 478 rp{m>3705:A,a<2282:mt,x>2043:cc,jj}
-1 479 qzh{s<841:A,nhf}
-1 480 gxd{s>1409:R,A}
-1 481 hcc{a>2754:R,m<578:A,a<2348:R,R}
-1 482 lqk{s<1698:R,s>1859:R,m>2841:R,R}
-1 483 kfh{s>1352:A,A}
-1 484 gcl{a>2466:A,R}
-1 485 jk{a>2640:R,a>2561:fcc,fz}
-1 486 gsh{m<2121:grb,jdd}
-1 487 rq{x<1115:R,a<1002:bf,A}
-1 488 jvz{s>2361:A,x>2818:R,A}
-1 489 rc{a<2074:A,x<3176:A,x>3648:A,R}
-1 490 rxh{s<1077:R,a>3482:A,m<3457:A,A}
-1 491 ll{m<3123:A,xf}
-1 492 fh{s<162:A,m>2702:A,R}
-1 493 tgv{m>2662:R,m>2514:R,A}
-1 494 fqv{m>3293:A,a<1586:R,R}
-1 495 tvv{m>2198:R,a<3307:jmk,A}
-1 496 hcg{m>2202:A,R}
-1 497 rlv{a>3748:R,a>3685:R,m>2670:A,R}
-1 498 mf{a>3816:R,xq}
-1 499 hx{a<2807:R,s>3296:R,m>2437:A,R}
-1 500 vsg{a<3230:A,s<1116:R,A}
-1 501 tp{m>2765:zq,a>516:A,R}
-1 502 kst{m<2671:hzh,x<2530:pfm,s>365:mkp,hpg}
-1 503 bm{x<1908:R,R}
-1 504 njj{a<1976:R,s>2758:ggg,s>2490:R,R}
-1 505 tz{a<3156:kc,s>3280:R,R}
-1 506 xmf{s>1127:A,a<3411:R,R}
-1 507 lpm{s>1361:R,R}
-1 508 xtj{a<1705:mvc,m<505:qzz,a<1868:rz,lzr}
-1 509 nn{s<3625:R,a<1356:R,m>1462:A,A}
-1 510
-1 511 {x=1065,m=825,a=1002,s=2038}
-1 512 {x=1108,m=1570,a=2715,s=995}
-1 513 {x=787,m=2716,a=64,s=918}
-1 514 {x=131,m=39,a=821,s=527}
-1 515 {x=390,m=1630,a=2,s=3328}
-1 516 {x=843,m=446,a=2851,s=561}
-1 517 {x=567,m=496,a=38,s=2250}
-1 518 {x=127,m=313,a=2172,s=1319}
-1 519 {x=494,m=130,a=875,s=563}
-1 520 {x=948,m=1634,a=2547,s=29}
-1 521 {x=833,m=431,a=2134,s=2478}
-1 522 {x=898,m=2498,a=547,s=30}
-1 523 {x=348,m=1293,a=846,s=851}
-1 524 {x=234,m=1673,a=344,s=1551}
-1 525 {x=1219,m=939,a=619,s=1537}
-1 526 {x=1972,m=76,a=488,s=288}
-1 527 {x=2525,m=850,a=660,s=1964}
-1 528 {x=1878,m=2205,a=1535,s=986}
-1 529 {x=1260,m=905,a=550,s=1618}
-1 530 {x=365,m=885,a=3496,s=2405}
-1 531 {x=83,m=98,a=1096,s=2337}
-1 532 {x=3972,m=340,a=2261,s=6}
-1 533 {x=1313,m=709,a=1825,s=5}
-1 534 {x=854,m=1952,a=75,s=2149}
-1 535 {x=490,m=8,a=54,s=1102}
-1 536 {x=158,m=1191,a=443,s=419}
-1 537 {x=47,m=641,a=1084,s=82}
-1 538 {x=738,m=184,a=781,s=1066}
-1 539 {x=556,m=48,a=1233,s=284}
-1 540 {x=696,m=3569,a=1224,s=3026}
-1 541 {x=1500,m=2037,a=352,s=400}
-1 542 {x=337,m=27,a=695,s=1827}
-1 543 {x=96,m=1276,a=999,s=868}
-1 544 {x=524,m=1542,a=465,s=132}
-1 545 {x=2352,m=50,a=1,s=1392}
-1 546 {x=2604,m=25,a=549,s=395}
-1 547 {x=211,m=1747,a=212,s=293}
-1 548 {x=2099,m=494,a=3307,s=152}
-1 549 {x=1980,m=413,a=48,s=95}
-1 550 {x=1627,m=828,a=1046,s=59}
-1 551 {x=471,m=1752,a=66,s=418}
-1 552 {x=43,m=495,a=89,s=3032}
-1 553 {x=577,m=1034,a=392,s=584}
-1 554 {x=1060,m=1579,a=1416,s=30}
-1 555 {x=2493,m=424,a=611,s=924}
-1 556 {x=1703,m=965,a=228,s=1780}
-1 557 {x=2339,m=143,a=2647,s=79}
-1 558 {x=2677,m=1682,a=1922,s=1127}
-1 559 {x=253,m=1493,a=360,s=1183}
-1 560 {x=344,m=1220,a=964,s=1781}
-1 561 {x=751,m=2234,a=1272,s=2060}
-1 562 {x=415,m=1831,a=1080,s=1463}
-1 563 {x=3565,m=1951,a=2107,s=531}
-1 564 {x=979,m=762,a=2641,s=1010}
-1 565 {x=503,m=603,a=271,s=301}
-1 566 {x=127,m=353,a=887,s=502}
-1 567 {x=301,m=2968,a=1046,s=2802}
-1 568 {x=2,m=1303,a=1192,s=2492}
-1 569 {x=163,m=18,a=911,s=623}
-1 570 {x=538,m=21,a=218,s=1679}
-1 571 {x=281,m=1425,a=2271,s=98}
-1 572 {x=925,m=635,a=1166,s=1269}
-1 573 {x=2589,m=1375,a=84,s=2312}
-1 574 {x=681,m=855,a=2330,s=499}
-1 575 {x=937,m=431,a=60,s=449}
-1 576 {x=449,m=20,a=566,s=366}
-1 577 {x=175,m=2031,a=20,s=2128}
-1 578 {x=3776,m=1006,a=2109,s=1698}
-1 579 {x=2729,m=707,a=1155,s=597}
-1 580 {x=2794,m=2123,a=39,s=556}
-1 581 {x=274,m=818,a=2552,s=725}
-1 582 {x=1187,m=521,a=2668,s=2039}
-1 583 {x=322,m=630,a=2322,s=924}
-1 584 {x=325,m=1615,a=1342,s=191}
-1 585 {x=2330,m=3095,a=968,s=622}
-1 586 {x=386,m=553,a=2856,s=2324}
-1 587 {x=1429,m=2482,a=293,s=178}
-1 588 {x=1730,m=277,a=103,s=168}
-1 589 {x=863,m=91,a=1562,s=28}
-1 590 {x=2747,m=62,a=1326,s=520}
-1 591 {x=572,m=216,a=161,s=405}
-1 592 {x=1341,m=215,a=1349,s=708}
-1 593 {x=2276,m=1408,a=384,s=1903}
-1 594 {x=54,m=781,a=944,s=1124}
-1 595 {x=779,m=1799,a=1951,s=3282}
-1 596 {x=1471,m=2503,a=90,s=570}
-1 597 {x=35,m=2218,a=66,s=402}
-1 598 {x=767,m=21,a=3169,s=3129}
-1 599 {x=886,m=292,a=3069,s=1774}
-1 600 {x=1144,m=60,a=54,s=899}
-1 601 {x=488,m=637,a=11,s=507}
-1 602 {x=1769,m=339,a=1521,s=978}
-1 603 {x=634,m=300,a=438,s=1819}
-1 604 {x=584,m=113,a=1324,s=889}
-1 605 {x=872,m=119,a=1941,s=804}
-1 606 {x=25,m=231,a=488,s=1696}
-1 607 {x=267,m=257,a=798,s=203}
-1 608 {x=63,m=27,a=2067,s=3378}
-1 609 {x=46,m=1007,a=427,s=3493}
-1 610 {x=748,m=735,a=1429,s=49}
-1 611 {x=1767,m=177,a=64,s=1281}
-1 612 {x=547,m=95,a=685,s=48}
-1 613 {x=824,m=610,a=215,s=244}
-1 614 {x=447,m=1137,a=2254,s=834}
-1 615 {x=269,m=750,a=1078,s=1787}
-1 616 {x=2830,m=138,a=1009,s=153}
-1 617 {x=3005,m=523,a=804,s=181}
-1 618 {x=328,m=2325,a=2498,s=1919}
-1 619 {x=690,m=42,a=3749,s=1000}
-1 620 {x=1348,m=332,a=3277,s=1621}
-1 621 {x=259,m=414,a=3105,s=1851}
-1 622 {x=350,m=2033,a=185,s=917}
-1 623 {x=371,m=872,a=2002,s=33}
-1 624 {x=408,m=486,a=40,s=1297}
-1 625 {x=105,m=201,a=914,s=512}
-1 626 {x=412,m=1559,a=1124,s=385}
-1 627 {x=2286,m=863,a=870,s=1639}
-1 628 {x=326,m=3217,a=1704,s=152}
-1 629 {x=2590,m=2552,a=1053,s=767}
-1 630 {x=1969,m=1574,a=698,s=1802}
-1 631 {x=144,m=2271,a=2230,s=1154}
-1 632 {x=163,m=2394,a=2393,s=2536}
-1 633 {x=111,m=55,a=66,s=1050}
-1 634 {x=2419,m=567,a=365,s=2870}
-1 635 {x=675,m=2524,a=1051,s=1230}
-1 636 {x=289,m=21,a=413,s=309}
-1 637 {x=3093,m=337,a=623,s=106}
-1 638 {x=608,m=64,a=1961,s=354}
-1 639 {x=501,m=792,a=69,s=25}
-1 640 {x=2296,m=214,a=92,s=748}
-1 641 {x=349,m=861,a=872,s=15}
-1 642 {x=3303,m=3688,a=217,s=104}
-1 643 {x=1973,m=152,a=825,s=573}
-1 644 {x=2342,m=2066,a=205,s=72}
-1 645 {x=1989,m=55,a=32,s=1454}
-1 646 {x=2325,m=2275,a=25,s=42}
-1 647 {x=229,m=117,a=2282,s=1426}
-1 648 {x=1161,m=1640,a=1337,s=52}
-1 649 {x=20,m=68,a=2647,s=312}
-1 650 {x=772,m=1009,a=473,s=1476}
-1 651 {x=1096,m=443,a=303,s=50}
-1 652 {x=856,m=3787,a=1871,s=666}
-1 653 {x=1736,m=1722,a=171,s=3004}
-1 654 {x=896,m=665,a=1633,s=117}
-1 655 {x=167,m=543,a=928,s=554}
-1 656 {x=56,m=2365,a=642,s=974}
-1 657 {x=36,m=53,a=1328,s=17}
-1 658 {x=242,m=1517,a=1178,s=458}
-1 659 {x=3863,m=539,a=2501,s=748}
-1 660 {x=389,m=936,a=938,s=2437}
-1 661 {x=62,m=2277,a=1906,s=2242}
-1 662 {x=950,m=410,a=297,s=476}
-1 663 {x=3599,m=813,a=12,s=1348}
-1 664 {x=210,m=2617,a=86,s=3035}
-1 665 {x=528,m=57,a=858,s=424}
-1 666 {x=1287,m=880,a=2338,s=138}
-1 667 {x=59,m=769,a=631,s=2770}
-1 668 {x=984,m=3556,a=2484,s=483}
-1 669 {x=908,m=2431,a=282,s=601}
-1 670 {x=608,m=299,a=1085,s=504}
-1 671 {x=3333,m=454,a=1227,s=129}
-1 672 {x=993,m=952,a=860,s=161}
-1 673 {x=296,m=935,a=967,s=985}
-1 674 {x=2984,m=7,a=1728,s=738}
-1 675 {x=3,m=2257,a=1460,s=1664}
-1 676 {x=56,m=869,a=188,s=2882}
-1 677 {x=1686,m=295,a=10,s=2973}
-1 678 {x=38,m=517,a=1597,s=935}
-1 679 {x=885,m=1334,a=2046,s=1128}
-1 680 {x=2131,m=970,a=909,s=419}
-1 681 {x=98,m=1162,a=1478,s=750}
-1 682 {x=161,m=1484,a=1036,s=423}
-1 683 {x=1801,m=917,a=253,s=415}
-1 684 {x=3460,m=471,a=1183,s=2267}
-1 685 {x=2025,m=197,a=963,s=46}
-1 686 {x=133,m=283,a=2460,s=214}
-1 687 {x=339,m=624,a=1371,s=1042}
-1 688 {x=660,m=685,a=98,s=307}
-1 689 {x=1021,m=959,a=1197,s=287}
-1 690 {x=2882,m=939,a=1095,s=284}
-1 691 {x=474,m=33,a=79,s=817}
-1 692 {x=317,m=385,a=1461,s=369}
-1 693 {x=890,m=3413,a=478,s=1210}
-1 694 {x=20,m=481,a=151,s=1095}
-1 695 {x=231,m=517,a=1915,s=551}
-1 696 {x=532,m=898,a=687,s=1302}
-1 697 {x=7,m=415,a=114,s=461}
-1 698 {x=285,m=353,a=2247,s=91}
-1 699 {x=510,m=635,a=222,s=906}
-1 700 {x=567,m=426,a=1318,s=597}
-1 701 {x=1779,m=518,a=3349,s=441}
-1 702 {x=513,m=1636,a=2020,s=203}
-1 703 {x=1553,m=1136,a=738,s=137}
-1 704 {x=1195,m=320,a=692,s=3486}
-1 705 {x=1692,m=1715,a=1541,s=1538}
-1 706 {x=128,m=492,a=104,s=682}
-1 707 {x=157,m=960,a=1801,s=282}
-1 708 {x=301,m=1944,a=3292,s=362}
-1 709 {x=222,m=738,a=1020,s=479}
-1 710 {x=12,m=762,a=1286,s=401}
diff --git a/2023/19/solution.rs b/2023/19/solution.rs
@@ -0,0 +1,132 @@
-1 1 use std::collections::HashMap;
-1 2
-1 3 #[path = "../lib.rs"]
-1 4 mod lib;
-1 5
-1 6 #[derive(Debug)]
-1 7 enum Rule {
-1 8 Less(usize, u64, String),
-1 9 More(usize, u64, String),
-1 10 Always(String),
-1 11 }
-1 12
-1 13 fn get_cat(s: &str) -> Option<usize> {
-1 14 return match s {
-1 15 "x" => Some(0),
-1 16 "m" => Some(1),
-1 17 "a" => Some(2),
-1 18 "s" => Some(3),
-1 19 _ => None,
-1 20 };
-1 21 }
-1 22
-1 23 fn parse_rule(s: &str) -> Option<Rule> {
-1 24 if let Some((c, rest)) = s.split_once('>') {
-1 25 let (k, target) = rest.split_once(':')?;
-1 26 return Some(Rule::More(
-1 27 get_cat(c)?,
-1 28 k.parse().ok()?,
-1 29 target.to_string(),
-1 30 ));
-1 31 } else if let Some((c, rest)) = s.split_once('<') {
-1 32 let (k, target) = rest.split_once(':')?;
-1 33 return Some(Rule::Less(
-1 34 get_cat(c)?,
-1 35 k.parse().ok()?,
-1 36 target.to_string(),
-1 37 ));
-1 38 } else {
-1 39 return Some(Rule::Always(s.to_string()));
-1 40 }
-1 41 }
-1 42
-1 43 fn parse_workflow(line: &str, workflows: &mut HashMap<String, Vec<Rule>>) -> Option<()> {
-1 44 let mut rules = vec![];
-1 45 let (name, rules_s) = line.strip_suffix('}')?.split_once('{')?;
-1 46 for s in rules_s.split(',') {
-1 47 rules.push(parse_rule(s)?);
-1 48 }
-1 49 workflows.insert(name.to_string(), rules);
-1 50 return Some(());
-1 51 }
-1 52
-1 53 fn parse_part(line: &str) -> Option<[[u64; 2]; 4]> {
-1 54 let mut result = [[0, 0]; 4];
-1 55 for s in line.strip_prefix('{')?.strip_suffix('}')?.split(',') {
-1 56 let (c, k) = s.split_once('=')?;
-1 57 let kk = k.parse().ok()?;
-1 58 result[get_cat(c)?] = [kk, kk + 1];
-1 59 }
-1 60 return Some(result);
-1 61 }
-1 62
-1 63 fn apply_workflows(part: [[u64; 2]; 4], workflows: &HashMap<String, Vec<Rule>>, name: &str) -> u64 {
-1 64 if name == "A" {
-1 65 return part.iter().map(|[a, b]| b - a).product();
-1 66 } else if name == "R" {
-1 67 return 0;
-1 68 }
-1 69
-1 70 let mut sum = 0;
-1 71 let mut mpart = part.clone();
-1 72 let workflow = workflows.get(name).unwrap();
-1 73
-1 74 for rule in workflow.iter() {
-1 75 match rule {
-1 76 Rule::Less(c, k, target) => {
-1 77 if mpart[*c][0] < *k {
-1 78 if mpart[*c][1] <= *k {
-1 79 sum += apply_workflows(mpart, workflows, target);
-1 80 return sum;
-1 81 } else {
-1 82 let mut p = mpart.clone();
-1 83 p[*c][1] = *k;
-1 84 mpart[*c][0] = *k;
-1 85 sum += apply_workflows(p, workflows, target);
-1 86 }
-1 87 }
-1 88 }
-1 89 Rule::More(c, k, target) => {
-1 90 if mpart[*c][1] > *k {
-1 91 if mpart[*c][0] >= *k {
-1 92 sum += apply_workflows(mpart, workflows, target);
-1 93 return sum;
-1 94 } else {
-1 95 let mut p = mpart.clone();
-1 96 p[*c][0] = *k + 1;
-1 97 mpart[*c][1] = *k + 1;
-1 98 sum += apply_workflows(p, workflows, target);
-1 99 }
-1 100 }
-1 101 }
-1 102 Rule::Always(target) => {
-1 103 sum += apply_workflows(mpart, workflows, target);
-1 104 return sum;
-1 105 }
-1 106 }
-1 107 }
-1 108
-1 109 unreachable!();
-1 110 }
-1 111
-1 112 fn main() {
-1 113 let mut workflows = HashMap::new();
-1 114 let mut rules_done = false;
-1 115 let mut sum = 0;
-1 116
-1 117 for line in lib::iter_input() {
-1 118 if rules_done {
-1 119 let part = parse_part(&line).unwrap();
-1 120 if apply_workflows(part, &workflows, "in") != 0 {
-1 121 sum += part.iter().map(|[a, _]| a).sum::<u64>();
-1 122 }
-1 123 } else if line == "" {
-1 124 rules_done = true;
-1 125 } else {
-1 126 parse_workflow(&line, &mut workflows).unwrap();
-1 127 }
-1 128 }
-1 129
-1 130 println!("part1: {}", sum);
-1 131 println!("part2: {}", apply_workflows([[1, 4001]; 4], &workflows, "in"));
-1 132 }
diff --git a/2023/19/test.txt b/2023/19/test.txt
@@ -0,0 +1,17 @@
-1 1 px{a<2006:qkq,m>2090:A,rfg}
-1 2 pv{a>1716:R,A}
-1 3 lnx{m>1548:A,A}
-1 4 rfg{s<537:gd,x>2440:R,A}
-1 5 qs{s>3448:A,lnx}
-1 6 qkq{x<1416:A,crn}
-1 7 crn{x>2662:A,R}
-1 8 in{s<1351:px,qqz}
-1 9 qqz{s>2770:qs,m<1801:hdj,R}
-1 10 gd{a>3333:R,R}
-1 11 hdj{m>838:A,pv}
-1 12
-1 13 {x=787,m=2655,a=1222,s=2876}
-1 14 {x=1679,m=44,a=2067,s=496}
-1 15 {x=2036,m=264,a=79,s=2244}
-1 16 {x=2461,m=1339,a=466,s=291}
-1 17 {x=2127,m=1623,a=2188,s=1013}