summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Wernick <justin@worthe-it.co.za>2023-12-19 23:31:25 +0200
committerJustin Wernick <justin@worthe-it.co.za>2023-12-19 23:31:25 +0200
commitab61f564fd174e19c74b6ff8be2e9611fb178ba6 (patch)
treed4731e0634e08e69baee62a2598abc9c82708be7
parenta2ce5eb7f720d17aac648a5b3fd8e97df198803c (diff)
Day 19 filling in the types for part 1
-rw-r--r--2023/inputs/day_19.txt715
-rw-r--r--2023/src/bin/day_19.rs58
2 files changed, 767 insertions, 6 deletions
diff --git a/2023/inputs/day_19.txt b/2023/inputs/day_19.txt
new file mode 100644
index 0000000..e002542
--- /dev/null
+++ b/2023/inputs/day_19.txt
@@ -0,0 +1,715 @@
+ljs{s<678:A,s<945:A,x>1416:A,A}
+cg{a<257:R,R}
+pdl{x<1159:nkv,a<2177:A,R}
+hsn{s<3192:jl,m>2417:jvm,rh}
+rg{a<3291:dp,s<2621:hp,x<1664:jfj,hc}
+ngf{x>1374:nn,rsg}
+dlt{x<2111:A,x>2321:zrq,A}
+gq{m<2038:A,s>1737:R,a>3367:R,A}
+qz{x>1061:zjf,gff}
+knx{m<1553:xzx,m>2473:A,m<1996:A,A}
+gff{a<3519:A,s>3476:pkg,a<3552:A,R}
+hj{a<3430:zvp,s>1630:R,R}
+rbg{s>719:A,A}
+rqc{a>1671:R,a>1628:A,slx}
+pz{m>1626:R,R}
+tvk{a>667:gch,a<280:pcm,vnq}
+jcj{m>2035:R,m>872:A,x>695:R,A}
+pk{s<1448:fgs,a<1065:zcp,nt}
+sd{m<3026:A,m>3670:A,R}
+lg{a>3557:R,m<3073:R,R}
+cm{x>381:R,x<148:R,s>1125:jtp,R}
+rd{x>965:hkx,a<3832:sfb,a>3893:R,R}
+kk{x<920:mnj,jzn}
+pvf{m<658:A,s<3646:R,m>1057:A,A}
+gch{m<2239:vzm,x>2975:kcn,s<1492:ksk,kdz}
+dc{m>1223:R,A}
+fbc{x>1013:A,A}
+zqx{a<265:R,a<347:A,R}
+rsg{x>757:R,m<1548:A,R}
+ln{x>1177:R,A}
+hx{s>645:A,a>2218:rz,jvr}
+cjk{s>3381:R,s<3093:R,m<1396:A,R}
+db{x<2268:R,x<2490:R,A}
+kr{x>1435:R,m>2091:mqj,x>858:A,dx}
+qpb{a>3866:R,a>3841:A,s>2792:R,A}
+fb{s>1967:nh,a>755:R,x>299:kl,R}
+ndp{s>3566:R,A}
+qhp{m<2678:A,x>475:R,R}
+sr{m>2266:A,gqv}
+gm{a<3339:ph,s>2935:R,qd}
+rl{x<1298:bdm,A}
+cgx{m>2248:R,A}
+gqr{a>3424:tr,s<3065:hq,mmd}
+sg{a<3842:md,m<1618:nxr,zsz}
+gc{a>2664:R,a<2647:R,R}
+pq{m<3719:vv,vb}
+nrk{s>3098:R,R}
+hc{m>2338:xqz,mh}
+cjm{m<1986:R,a<3564:R,s>3701:A,R}
+blz{x<642:fz,R}
+trr{a<2776:tgz,a<3101:A,x>1202:R,pc}
+bts{m>3295:R,m<2936:R,s<2046:A,R}
+nh{x<224:R,s>2192:R,A}
+ng{s>1399:vdd,x>1547:kqb,srp}
+hl{s>2791:nxn,ncq}
+shh{s<2467:A,s>2535:R,s>2507:A,R}
+jsb{m>2967:R,x>2398:A,x>1994:A,A}
+rnd{x<280:R,a<3085:R,R}
+jl{s>2887:A,m>1687:smb,A}
+rz{s>400:R,s<220:R,m<1785:A,A}
+zq{m<3210:R,s>3283:cnq,tvz}
+dm{a>3435:A,x<695:R,R}
+bb{a<3756:R,s>3508:A,a>3873:R,A}
+vmm{x>448:R,a>3903:A,a>3885:R,R}
+zrq{m<3492:R,m>3751:A,a<3745:R,R}
+nhd{x<2569:R,m<2472:A,A}
+sv{m<221:R,a>3355:R,A}
+fpn{s>1460:A,A}
+sfb{a>3717:R,A}
+pmc{a>462:pjd,tlb}
+bpq{s<1116:qv,a>3589:hrm,m>563:R,spx}
+gmx{a<3009:tqn,s<1628:qt,s<1822:mf,xk}
+vhg{x<362:R,R}
+tmh{m<1402:cz,a>200:R,m>1416:R,A}
+td{s<1396:bc,ht}
+sxn{x<3136:R,x<3534:R,A}
+gh{x>3453:A,s>2897:bxl,R}
+fl{m<3303:R,a>882:A,x<1389:A,R}
+zvp{x>1197:R,s>1721:R,s<808:A,R}
+tm{x>1475:R,m<2652:A,R}
+rv{a>3608:R,m<499:R,a>3448:A,R}
+kv{s>2921:R,a>3628:R,A}
+mkg{s>2246:R,s<2196:R,R}
+dg{s>3246:A,a>1678:nhd,a>1615:R,jf}
+glb{s>1964:jmb,a<2217:ksj,ft}
+sz{s<3286:qnn,s>3700:A,x>1213:A,A}
+lsl{m<870:R,R}
+jvm{a>1426:R,s>3572:A,jjl}
+zm{x>2104:hnt,cjm}
+sb{s<2350:bm,mc}
+jvr{m<2080:R,R}
+kcn{s<1037:bs,s<1802:bzv,x>3329:bts,R}
+fdj{s>681:A,a>1556:A,x<2478:R,R}
+dl{a<428:A,a<455:A,a>478:A,R}
+xld{a>3094:ljs,x>1625:rbg,qf}
+hq{x<969:A,A}
+zn{m>1368:A,A}
+mm{s<2797:A,A}
+jtp{m>1676:A,s<1331:R,m<651:R,A}
+tql{x>700:vn,a>2976:df,s>3447:sq,tsn}
+flc{x>1241:R,ksl}
+jsr{s<3776:R,a>608:R,R}
+lnt{m<759:R,s<733:R,R}
+zsg{x<1980:A,x>2805:R,s<2749:R,R}
+mt{s<3386:A,x>2520:R,s<3724:R,mb}
+tgq{m>2109:R,a>3378:A,A}
+rxt{m<1595:A,s<3515:A,A}
+ct{s<3605:vpv,kqc}
+rvq{m<3050:R,lvl}
+fk{s>1367:A,A}
+qv{a>3588:R,x>758:R,R}
+fr{x>2235:zgd,s<3567:bxj,ldt}
+xpp{a>3454:R,m>1570:R,R}
+dbp{m>3199:nq,a<3025:A,s<605:A,R}
+spx{m>349:R,m>169:R,R}
+gpb{s<924:A,A}
+lvm{a>1551:kt,hsn}
+hnt{x<2313:R,m>2024:R,a<3756:A,R}
+zc{s<1907:R,s<2212:A,s<2279:tbv,R}
+dj{a<984:shh,m<1843:cc,A}
+gk{a<3211:A,R}
+zzs{x>3608:R,x>3547:R,x<3531:R,R}
+sj{m<736:bv,mt}
+qtt{a>3426:R,s>2343:R,A}
+xk{m>1954:R,x>147:tb,s>1982:A,R}
+tcq{a<3492:A,m>3560:R,m>3445:R,pfl}
+gqn{m<1012:R,a>3809:A,m>1538:R,R}
+tl{x<1387:A,s>507:A,a>1154:hlp,R}
+nx{m>3530:R,x>1938:A,x<869:A,A}
+kdz{m<3373:jsb,rr}
+ml{x<2518:R,x>3029:gq,tgq}
+kt{a>1756:hmd,s<2998:rqc,s>3418:fbb,dg}
+fcd{s>2103:R,x>1291:A,x>1090:R,A}
+jmb{s<2218:A,A}
+xh{m>2615:zvk,s>1163:kb,x>1182:tn,djl}
+kfk{m>2088:R,x>3568:R,s>2931:R,A}
+jlf{a<2894:bn,gs}
+dx{a<3584:A,m<1879:R,s>950:R,R}
+cjl{s>3051:R,s>2781:R,A}
+qjm{s<2864:R,s<3058:A,s<3168:A,R}
+hls{m>1767:R,s>547:A,R}
+xkt{x<582:R,a<3359:A,sln}
+sn{x<349:R,m<1786:R,s<3265:A,A}
+qzd{x<3510:tc,a>1081:zv,m<2187:xnm,prg}
+ss{s<1133:dd,x>761:pl,x<318:gmx,txc}
+tpr{m>1351:tk,m<552:fbc,s>3364:zg,gqr}
+zvk{x>1284:fl,zk}
+tjz{s<1934:mvj,a>774:pd,A}
+cjn{m>63:R,x>2722:R,x>2262:R,R}
+vb{s<2093:A,s<2443:R,R}
+jdf{s>2258:R,m<3176:R,A}
+tp{m<2941:vr,m>3545:rp,a<2546:A,R}
+psh{x<2525:R,R}
+bn{m<809:blf,vx}
+hmd{s<2914:lgz,s<3327:A,A}
+zk{x>1080:ln,A}
+pcm{x<3181:qb,mq}
+hkh{x>820:flc,s>2964:zz,snj}
+qhx{s<1186:llv,knx}
+xq{x>732:R,a>497:R,R}
+md{s<746:vhg,s>1108:A,zn}
+jfj{a<3585:pmn,m<2102:kq,kk}
+tn{x>1417:nf,x<1275:rbj,x<1348:cj,tl}
+jtb{s>2342:A,A}
+htb{x>1845:qhx,s>1570:fxj,x>642:hzj,sg}
+xzx{a<3864:R,A}
+ctx{s<1747:R,s>2039:qtt,a<3465:sv,qcb}
+cp{s>2998:R,bg}
+jdn{a>1087:A,m>1336:rb,s>368:A,A}
+kqc{s>3820:A,s>3746:jsr,a<661:R,R}
+sdp{m<134:cjn,gjc}
+grm{s<1777:A,s>2023:R,A}
+rh{a<1429:R,m>1202:xbt,A}
+sx{s<2106:R,a<2817:A,A}
+bv{m<392:R,m<603:rv,a<3626:A,R}
+gp{m<2914:R,R}
+kl{a>671:A,m<2467:A,A}
+zz{x<401:R,R}
+bkr{s<3356:hcj,s>3613:cvt,s>3493:csj,mx}
+tq{m<2648:A,A}
+xkg{m>298:R,A}
+spc{m<2028:R,A}
+smb{a<1426:A,A}
+pl{m>1383:trr,m>495:rl,pv}
+kqb{x<3061:xqj,a>2190:hls,bt}
+xqz{x>2594:kgc,bxc}
+hxk{m<2514:R,a<2582:A,x<244:A,R}
+fv{x>471:R,x<224:A,a>3501:R,R}
+dpq{x<3568:R,m<2617:R,s>1524:A,R}
+csj{x>3460:A,m<1399:R,s<3546:R,A}
+in{a<1956:sb,rg}
+sk{s<1232:A,x>1125:A,R}
+qcc{s<2678:R,R}
+vsr{x>2791:bkr,m>1454:qhv,zjg}
+sm{m>871:A,nrk}
+zjg{a>3658:A,R}
+pjd{a<570:R,s<3022:spc,ppj}
+zlt{x<2479:R,x<2620:jdf,a<2991:A,xc}
+cmn{x>2531:A,jhc}
+kxh{s<3653:A,A}
+fpm{m>1170:sk,fk}
+rlk{a>3634:bjh,R}
+kgc{s<3202:gh,x>3150:xzg,m>3300:jgc,rpz}
+kzf{s>1677:R,a>3194:A,R}
+mqj{s>1334:R,A}
+nkv{x<1052:R,m>1697:A,m>777:R,R}
+ksk{a<1132:R,m<2906:gpb,fdj}
+zkf{s>3613:A,A}
+lfd{s>581:kdx,zj}
+lt{a>368:R,R}
+ck{s>964:xzk,m>785:A,x>1423:R,A}
+csx{a>1114:tfl,s<2655:dj,x>1068:ljf,hnc}
+jbp{s<2130:fn,m<2593:dc,m>3491:R,mkg}
+bsv{s<1794:R,a<3778:R,m>865:R,R}
+slp{x<225:qvl,x<484:A,x>544:thh,gqn}
+bc{x<677:A,x<715:R,A}
+fbb{a>1662:R,a>1596:psh,cgx}
+gs{a<3106:R,a<3226:R,x>2681:jjm,R}
+jr{m>2097:A,A}
+bzv{s>1539:R,m>3394:A,s>1339:A,R}
+cr{m<901:A,R}
+tbs{m>3290:A,x<3434:R,R}
+nxr{s<960:R,m<838:A,R}
+vd{m>1343:R,s<3441:A,R}
+mn{s<686:R,m<3160:R,a>3425:A,R}
+ccl{a<3457:R,a<3466:R,s<3848:R,R}
+jgc{a>3715:A,m<3679:A,m<3808:vxd,qsv}
+hkz{a>914:R,R}
+ztm{x<1659:cd,m>1673:rmb,x>2680:ndj,dkc}
+xs{s<698:R,R}
+lqj{x<2698:A,a<3502:A,a<3573:xjc,phd}
+trf{x>1590:A,x>591:zqx,gl}
+flk{x>1543:A,m>3077:R,R}
+jrx{x>991:R,m>228:A,x<558:R,xq}
+pc{m>3083:R,s>1723:A,R}
+nxn{x<1563:R,R}
+llv{m>1476:kcs,R}
+xzg{x>3604:pjh,a<3650:tbs,a<3852:zkf,jv}
+fck{m<898:A,s>1000:R,A}
+zbs{s<1558:gt,A}
+dcj{a>416:R,s<3371:nx,R}
+tdv{x<653:slp,krn}
+xg{a<3721:R,A}
+qb{x>2328:R,mgd}
+tlb{s<3324:qjm,xpg}
+phd{x>3311:A,a>3597:A,A}
+qn{m>2725:R,x>3045:tq,gdq}
+ksx{x>3314:R,a>3118:A,R}
+bz{s>1202:fx,m<3060:A,mn}
+qm{a<1033:A,s<455:A,A}
+lgs{a>1323:R,m>1667:R,s>1125:A,A}
+xqj{s>719:A,m<2334:R,x<2369:sd,R}
+hn{m<2879:A,m<3555:fp,A}
+fn{m<2496:R,x<305:R,A}
+km{s<1129:R,s<1956:R,A}
+pfl{s<608:A,R}
+zjf{s<3517:R,R}
+nrd{x>514:A,a>2615:R,A}
+bjh{a<3790:R,a>3908:R,A}
+cj{m<1048:jd,x<1318:A,qm}
+qj{x>2393:A,x<2306:R,R}
+bj{x>2231:qj,m<3336:tlk,R}
+mx{s<3403:A,m>1473:R,x<3353:R,A}
+qnl{x<645:R,R}
+bxc{s<3182:bj,m>2939:dlt,fr}
+ld{m<2418:js,m<3245:dcv,mj}
+zhq{x>1338:flk,a<3958:A,rft}
+vxd{a>3538:A,a>3435:R,x<2898:R,R}
+prg{x<3701:A,x<3802:R,a>923:qkk,R}
+tlk{x<1951:A,A}
+ft{x<2160:R,A}
+ts{m<2542:A,a>3465:gqz,cjl}
+pjh{m>3374:A,s>3506:R,R}
+qvl{m<1213:A,s>3748:R,A}
+tng{s<3427:R,x>280:A,A}
+rmb{m>3185:R,R}
+cf{s<433:R,a>545:A,s>524:R,A}
+cd{a>1023:R,xt}
+sq{s>3800:A,a>2788:A,x>324:nrd,A}
+fjr{s>2817:tql,rn}
+tvz{s>2907:R,x<1406:R,R}
+lv{x>2755:ksx,a<3080:zlt,fg}
+qd{s<2827:R,m<3387:A,s>2880:A,R}
+fp{s>563:A,s>328:R,a<3777:R,A}
+ttr{s<1609:A,R}
+pkg{s<3788:A,R}
+rn{s<2437:dgm,x>1172:dgt,m>2399:jvf,txl}
+lhk{a<2938:R,s>2649:R,x>600:A,R}
+mbv{s>488:R,R}
+jgn{x<1025:R,A}
+rb{s>249:R,s<150:R,a>376:R,A}
+mmd{x>985:A,m<1056:A,m>1218:R,R}
+vzm{a>1483:R,x>3114:A,a>1161:dtd,A}
+khg{s>1259:A,A}
+zcp{a<538:cg,x<478:fb,tjz}
+mr{s>3767:A,m<3324:A,m>3758:A,A}
+ps{s>3118:ndp,m>2406:gm,xkt}
+kb{s>1672:lff,s>1412:xv,mkm}
+gcc{a>3486:A,m>646:R,x>324:R,A}
+vx{x<2670:R,s>1615:R,A}
+vjv{a<3927:vmm,s<3271:R,x<507:vz,R}
+ldt{x<1959:R,a<3595:A,m<2652:A,A}
+gqv{x>2422:A,R}
+bqt{x>721:R,s>1726:fv,a>3499:fck,gcc}
+fxj{m<1753:nng,s>2037:rd,blz}
+fm{x<3344:R,m<2096:A,s<1520:A,R}
+ksj{s>1619:R,a<2071:A,m<3366:R,R}
+xp{m<841:R,s>2782:R,A}
+jvf{m<3084:lhk,a<2805:gdx,x<584:A,A}
+tr{m>926:A,m>715:R,A}
+xx{a<2562:R,x<210:A,s>2650:R,A}
+fg{s<2357:db,R}
+mj{s>1442:pq,tcq}
+mnj{a<3751:sp,a<3862:jj,vjv}
+rf{a<3143:jcj,a<3223:kzf,A}
+vdd{s>2404:mvq,m>2462:glb,a>2266:zc,ngf}
+vpv{x>1794:sxn,R}
+nng{s<1956:bsv,R}
+bxj{a<3760:R,R}
+kc{m<365:R,a<303:A,A}
+gnz{a<3530:bqt,bpq}
+rmd{x<457:R,s<2349:A,R}
+lff{m>1299:fcd,s>2022:A,R}
+hkk{a>2726:R,m>2110:A,R}
+fnv{x<1108:R,R}
+hs{s>1630:R,R}
+mhq{x>1097:R,s>2746:R,R}
+bjd{s<2983:R,m>1257:R,x<1606:A,A}
+bdm{x<1093:R,s>1562:R,A}
+nt{s<1871:xd,jbp}
+bp{m>2851:A,R}
+tg{s<554:A,A}
+djl{a>1217:mbv,x<1017:qq,m<1343:krr,rqk}
+zjm{a<2755:A,s<1895:R,R}
+mvq{m<2343:R,s<3313:zsg,mr}
+qq{a>744:A,x>932:R,m>1338:lt,R}
+dcv{x<1885:dm,m>2933:bz,m<2601:lqj,qn}
+bg{s<2818:A,R}
+hp{a>3634:htb,m>1588:ld,bd}
+dd{m>2431:dbp,x<1116:lfd,a>2843:xld,fh}
+xc{x<2692:R,R}
+kq{s<3415:hkh,tdv}
+tc{a>964:pz,x<3150:nr,s>2586:A,R}
+jd{a>1212:A,s>686:R,a<735:A,R}
+tsn{s<3080:hkk,a<2685:hxk,sn}
+ncq{m<1020:kzx,R}
+mp{m>3139:A,x>328:A,s<3643:R,R}
+bxl{m<3137:R,a>3567:R,x<2974:A,A}
+gqz{x>1101:R,m>3173:R,a<3472:A,A}
+gdq{s>1442:R,x<2555:R,R}
+kdx{a<2790:A,s<869:R,A}
+mz{m<2010:A,m<2695:A,A}
+qcb{x<2654:R,m<314:R,R}
+pm{a>69:R,a<41:R,m<3275:A,R}
+zbz{s<1657:lnt,a>3350:A,a>3329:lp,gkc}
+chl{a<3397:zbz,m<774:zbs,zhm}
+gz{x>3482:R,x>3220:R,x>3163:R,R}
+gt{a<3431:A,a<3449:A,a>3460:A,R}
+cz{a>258:A,A}
+js{a<3502:ml,kr}
+pd{a>942:A,A}
+qhv{a<3605:xpp,a<3843:rxt,a<3938:npv,A}
+qnn{s<2954:A,R}
+fx{x>2949:A,m>3131:R,R}
+htx{a<505:dl,s>987:fm,x>3418:rj,hz}
+npv{a>3889:R,R}
+dkc{a>1047:pks,A}
+xn{x>700:R,m<2927:R,s<3017:A,A}
+dp{a<2504:ng,x>1978:ftv,s>2201:fjr,ss}
+lgz{x<1512:A,a>1867:A,m<1805:R,A}
+nsh{m>3148:dcj,bp}
+rp{a>2563:A,s>2602:A,s<1080:R,R}
+nf{m>1513:A,s>461:A,m>887:nc,brq}
+ph{x>774:R,s>2895:A,s>2739:A,R}
+mh{m<1145:sj,m<1701:vsr,s>3347:xcq,rsn}
+xl{s>1517:A,a<3094:A,R}
+ppj{s<3652:R,s<3817:R,m>2022:R,R}
+txl{a>2915:R,x>529:A,a<2678:xx,lsl}
+pnk{a>3367:hj,m<688:khg,fpm}
+pv{x<1358:A,x<1594:R,xkg}
+zg{s>3710:A,A}
+hg{m<539:nsv,a<431:jx,s<3147:hl,ct}
+pg{s>3013:ztm,x>2614:qzd,csx}
+jx{m<1090:sm,m<1301:sqf,m<1351:trf,tmh}
+jhc{s>1197:R,s<789:A,R}
+qhj{x>1201:mz,a>2291:R,x>1086:R,jgn}
+zgd{s>3475:R,A}
+vz{x<219:R,a<3966:R,s<3695:A,A}
+bd{x>1506:qrv,a>3470:gnz,x>664:pnk,chl}
+dtd{a>1301:A,R}
+rr{s<1922:A,R}
+tfl{s<2579:ckg,m>2087:mm,a>1185:xp,mhq}
+srp{x<933:hx,s>539:pdl,qhj}
+ndv{x>2832:kfk,s<3023:jr,s>3177:A,A}
+sh{m<1728:A,s>159:A,m>2111:A,R}
+hcj{m>1483:A,x>3225:A,A}
+dgt{m>2124:R,A}
+gjc{m>175:R,m>159:R,a>269:A,A}
+qk{m<1145:R,s<2588:R,R}
+bt{a>2101:A,s<638:gz,vqz}
+mkm{a>857:R,A}
+zj{x>416:A,A}
+qkk{m>3182:A,s>2641:A,A}
+vqz{s<932:R,R}
+cnq{s<3619:R,a<3853:R,A}
+kzx{m>780:R,m<668:A,R}
+nsv{x<2006:jrx,m>218:kc,sdp}
+hz{s<472:A,m<1542:A,x>3169:A,R}
+hrg{a<2648:R,A}
+jjm{x>3459:R,m<1335:R,a>3253:R,A}
+xzk{a>3768:R,A}
+zhm{x<428:R,a>3440:km,a>3417:A,gtg}
+bq{m>1929:R,A}
+ctk{a<2613:A,x<1420:A,A}
+ckg{s<2437:R,s<2496:R,R}
+csd{m>2858:A,x>3097:dpq,a>2777:sx,R}
+krr{m<558:A,s<689:R,s>962:szq,R}
+xd{x<494:R,hs}
+thh{a<3831:R,x>590:R,m>1134:A,R}
+bm{x>1575:tvk,x>884:xh,pk}
+ffk{s>3601:ccl,x>1104:vd,A}
+nr{m<1540:R,a>885:R,R}
+brq{s<305:A,x<1475:R,A}
+rkk{x>1356:A,a>2646:A,m<1940:R,A}
+vnq{x>2914:htx,sr}
+bs{m>3156:A,a>1197:R,R}
+cxn{m<2622:pmc,nsh}
+vpq{s<3245:A,R}
+mq{a>148:R,m>2248:pm,R}
+mqq{s>3294:ffk,ts}
+ksl{m>859:R,A}
+jv{x<3441:R,A}
+tbv{x>1532:R,m>1280:R,a<2392:R,A}
+fz{a<3784:R,s<1780:A,R}
+dgm{a>2823:R,m<2459:jtb,x>722:ctk,rmd}
+pmn{a<3406:ps,a>3477:qz,a>3446:mqq,tpr}
+hzj{m>1470:hn,ck}
+ftv{m<2191:jlf,a<2851:xqx,lv}
+snj{a<3828:R,a>3932:R,m<1119:R,qpb}
+vv{a>3516:R,x<2342:A,x>3068:A,A}
+vr{x>2831:R,x<2429:A,m<2558:A,R}
+kf{a>150:R,a<86:A,R}
+qqk{m>897:A,x>1230:R,s>748:A,R}
+df{m>2252:rnd,x>283:R,a<3152:A,R}
+tb{a<3117:A,x>237:A,s>1987:R,R}
+rbj{s<438:sh,a<1236:qqk,xs}
+mf{m>2334:A,a>3133:R,R}
+sln{m<1070:A,a<3383:R,s<2877:R,A}
+tk{x<797:tng,a<3422:R,a<3433:R,A}
+tqn{a<2753:bq,R}
+gkc{m<980:R,A}
+rft{x<1179:A,R}
+nn{m<1586:A,a<2076:A,m<2065:R,R}
+rqk{s>570:A,s<277:fnv,cf}
+nc{x<1488:A,m<1200:A,R}
+ndj{a<1037:hkz,a>1126:pvf,thp}
+fgs{s<723:jdn,a<1225:cm,vgm}
+hnc{m>1825:R,s>2872:A,qnl}
+rsn{a<3610:ndv,cp}
+szq{a<658:A,x<1082:A,x<1136:R,R}
+pks{s<3647:R,x<2072:R,m<1014:R,A}
+krn{s>3752:A,A}
+slx{a<1578:A,m>2547:R,A}
+jf{a>1594:R,A}
+xz{s<2031:A,s<3118:R,R}
+jjl{x<1605:A,x>3094:R,m<3286:A,R}
+sqf{s>3365:kf,m>1213:bjd,A}
+cvt{m>1450:R,a<3534:A,m<1256:A,A}
+gtg{s>1303:R,x<583:R,R}
+rj{s<546:A,R}
+xbt{a>1482:R,x<2601:A,R}
+tgz{x>1352:A,m>3071:R,R}
+xt{m<2085:R,m<3250:A,s<3518:A,R}
+vgm{a>1704:A,a>1468:A,lgs}
+gdx{x>546:A,s>2668:A,A}
+lp{a>3340:A,a<3335:A,A}
+jzn{a<3782:sz,a>3900:zhq,x>1239:zq,rvq}
+gl{m>1324:R,A}
+sp{a>3654:gp,s>3290:kxh,x>502:xn,kv}
+rpz{m<2858:xg,x>2804:bb,lg}
+mc{a>1304:lvm,a>784:pg,m>1444:cxn,hg}
+ljf{x<1600:A,A}
+zsz{s<876:R,x<406:R,R}
+xv{s<1540:fpn,R}
+thp{s<3511:A,m>610:A,R}
+qrv{m>561:cmn,ctx}
+fh{x>1582:cr,m<1449:tg,rkk}
+xnm{m>860:R,m>471:A,x>3801:A,zzs}
+mb{s>3818:R,m>883:R,R}
+glh{x>126:R,s<1318:A,A}
+txc{x<563:ttr,a>2924:rf,s>1546:tt,td}
+hrm{x<645:R,a<3607:A,R}
+hkx{m<3112:R,x<1316:A,m<3464:A,A}
+zv{a<1194:qcc,x<3761:A,m<2135:qk,R}
+ht{s<1496:R,a<2659:R,x>693:A,A}
+kcs{m<2473:A,s<669:R,A}
+xqx{a>2697:csd,a<2620:tp,nds}
+blf{s>1904:R,x>2898:R,s<1014:R,A}
+qsv{m>3905:R,A}
+hlp{m<1671:R,m>2278:R,A}
+nds{x<2838:xz,x>3332:hrg,m>3252:R,gc}
+xjc{x>3254:R,a>3537:A,s>1282:R,R}
+nq{a<2889:R,A}
+tt{x>687:zjm,grm}
+xcq{x<2451:zm,rlk}
+jj{s>3409:mp,m>3099:A,a>3811:A,qhp}
+lvl{a>3838:R,x<1075:R,A}
+xpg{x<2284:R,s<3556:R,a>179:R,A}
+mgd{a<135:R,x<1914:R,R}
+mvj{x>616:R,s<1708:A,m>1421:R,A}
+vn{a<2844:tm,m>2427:vpq,x>1273:cjk,A}
+qt{s<1416:glh,a>3147:gk,m<1773:A,xl}
+qf{s<492:R,m>874:R,R}
+cc{a<1033:R,a<1079:R,A}
+
+{x=5,m=2118,a=201,s=321}
+{x=321,m=76,a=1226,s=2871}
+{x=164,m=1611,a=596,s=1494}
+{x=3007,m=811,a=95,s=2830}
+{x=92,m=902,a=984,s=1868}
+{x=1042,m=1973,a=351,s=288}
+{x=1363,m=1227,a=26,s=196}
+{x=2917,m=2066,a=30,s=1576}
+{x=937,m=113,a=1007,s=1285}
+{x=1505,m=1125,a=4,s=830}
+{x=128,m=1152,a=386,s=250}
+{x=180,m=688,a=2793,s=821}
+{x=607,m=1381,a=289,s=1681}
+{x=77,m=1612,a=228,s=1905}
+{x=826,m=296,a=20,s=24}
+{x=477,m=2231,a=2286,s=2701}
+{x=2208,m=1967,a=2428,s=3497}
+{x=409,m=111,a=1246,s=1230}
+{x=934,m=879,a=829,s=128}
+{x=405,m=1474,a=1235,s=26}
+{x=3682,m=906,a=156,s=2226}
+{x=520,m=888,a=1881,s=331}
+{x=2324,m=1510,a=996,s=123}
+{x=57,m=1073,a=101,s=136}
+{x=5,m=234,a=154,s=609}
+{x=3349,m=2414,a=397,s=780}
+{x=1405,m=63,a=1861,s=398}
+{x=42,m=1938,a=1380,s=601}
+{x=87,m=1540,a=62,s=784}
+{x=1690,m=202,a=1916,s=1497}
+{x=1798,m=77,a=31,s=854}
+{x=424,m=6,a=1831,s=509}
+{x=1549,m=65,a=835,s=810}
+{x=1799,m=1266,a=116,s=610}
+{x=346,m=160,a=206,s=616}
+{x=446,m=289,a=550,s=2183}
+{x=78,m=53,a=786,s=456}
+{x=321,m=2769,a=1034,s=1189}
+{x=318,m=772,a=859,s=1610}
+{x=609,m=1131,a=2213,s=2060}
+{x=14,m=693,a=141,s=556}
+{x=434,m=362,a=56,s=3333}
+{x=441,m=2672,a=1232,s=3554}
+{x=2052,m=721,a=66,s=2589}
+{x=118,m=3058,a=698,s=14}
+{x=3201,m=2647,a=1180,s=796}
+{x=995,m=1832,a=374,s=2871}
+{x=1988,m=544,a=2863,s=2337}
+{x=242,m=271,a=130,s=3453}
+{x=2170,m=115,a=1790,s=524}
+{x=114,m=602,a=1689,s=223}
+{x=944,m=164,a=1861,s=1399}
+{x=915,m=249,a=42,s=280}
+{x=931,m=1104,a=2584,s=1109}
+{x=362,m=135,a=343,s=2218}
+{x=1588,m=2648,a=222,s=803}
+{x=9,m=229,a=245,s=132}
+{x=419,m=623,a=1306,s=269}
+{x=408,m=1095,a=333,s=1776}
+{x=2671,m=2385,a=154,s=2100}
+{x=2393,m=444,a=168,s=173}
+{x=308,m=3768,a=2449,s=111}
+{x=936,m=162,a=2501,s=263}
+{x=1310,m=63,a=1840,s=3}
+{x=543,m=118,a=1648,s=2254}
+{x=627,m=975,a=829,s=1781}
+{x=326,m=66,a=906,s=1687}
+{x=54,m=2177,a=2296,s=840}
+{x=1191,m=12,a=1534,s=1855}
+{x=1637,m=67,a=338,s=557}
+{x=1170,m=1757,a=1260,s=62}
+{x=379,m=1550,a=413,s=792}
+{x=48,m=232,a=654,s=2021}
+{x=49,m=1107,a=575,s=473}
+{x=435,m=179,a=522,s=398}
+{x=1088,m=324,a=1314,s=1170}
+{x=2111,m=604,a=233,s=2104}
+{x=975,m=514,a=1656,s=2497}
+{x=505,m=2371,a=464,s=1852}
+{x=2737,m=3240,a=2930,s=208}
+{x=448,m=545,a=2013,s=1723}
+{x=433,m=1715,a=2258,s=428}
+{x=26,m=936,a=772,s=154}
+{x=567,m=1171,a=3128,s=1885}
+{x=66,m=1459,a=161,s=264}
+{x=140,m=51,a=2669,s=1308}
+{x=122,m=1719,a=538,s=2677}
+{x=94,m=295,a=160,s=14}
+{x=260,m=343,a=2222,s=284}
+{x=1028,m=1924,a=2256,s=1355}
+{x=520,m=144,a=2535,s=295}
+{x=1896,m=632,a=2268,s=1871}
+{x=997,m=743,a=1614,s=62}
+{x=2107,m=595,a=704,s=677}
+{x=897,m=1203,a=103,s=229}
+{x=35,m=3297,a=907,s=110}
+{x=2228,m=1416,a=189,s=303}
+{x=1616,m=1902,a=132,s=3325}
+{x=940,m=1188,a=1240,s=352}
+{x=771,m=1691,a=3374,s=124}
+{x=270,m=616,a=431,s=252}
+{x=74,m=2778,a=1795,s=1103}
+{x=1000,m=14,a=174,s=888}
+{x=1166,m=314,a=83,s=244}
+{x=2197,m=33,a=535,s=650}
+{x=216,m=642,a=317,s=145}
+{x=9,m=87,a=3379,s=12}
+{x=867,m=1388,a=608,s=356}
+{x=295,m=53,a=260,s=90}
+{x=250,m=658,a=509,s=3474}
+{x=47,m=2804,a=1133,s=1418}
+{x=2,m=618,a=613,s=1353}
+{x=130,m=550,a=290,s=650}
+{x=2223,m=126,a=874,s=2509}
+{x=1446,m=143,a=654,s=1724}
+{x=1428,m=145,a=62,s=602}
+{x=1011,m=198,a=2858,s=3174}
+{x=1124,m=1919,a=2093,s=1390}
+{x=374,m=1515,a=348,s=1604}
+{x=1538,m=1634,a=1084,s=1500}
+{x=994,m=883,a=2485,s=146}
+{x=764,m=961,a=470,s=247}
+{x=852,m=74,a=1651,s=842}
+{x=57,m=2045,a=827,s=796}
+{x=583,m=896,a=164,s=2476}
+{x=335,m=213,a=1232,s=86}
+{x=283,m=581,a=292,s=769}
+{x=233,m=1817,a=2053,s=232}
+{x=593,m=833,a=534,s=43}
+{x=3529,m=529,a=1767,s=924}
+{x=81,m=273,a=50,s=298}
+{x=145,m=1805,a=3553,s=51}
+{x=2679,m=1888,a=754,s=504}
+{x=2461,m=860,a=357,s=133}
+{x=31,m=1688,a=1473,s=3375}
+{x=354,m=2261,a=1669,s=30}
+{x=329,m=3020,a=1684,s=848}
+{x=1221,m=196,a=373,s=974}
+{x=1592,m=937,a=666,s=30}
+{x=2803,m=640,a=2495,s=1399}
+{x=44,m=2525,a=578,s=328}
+{x=769,m=596,a=823,s=672}
+{x=1064,m=158,a=2518,s=107}
+{x=1713,m=122,a=91,s=2413}
+{x=883,m=164,a=385,s=379}
+{x=259,m=2014,a=647,s=1729}
+{x=42,m=196,a=627,s=1264}
+{x=1414,m=946,a=1490,s=283}
+{x=1557,m=155,a=1663,s=685}
+{x=519,m=464,a=320,s=377}
+{x=66,m=21,a=2331,s=1480}
+{x=1907,m=1660,a=1534,s=1090}
+{x=331,m=138,a=218,s=102}
+{x=16,m=667,a=1766,s=2864}
+{x=1634,m=359,a=2500,s=686}
+{x=2535,m=38,a=117,s=11}
+{x=454,m=319,a=2368,s=107}
+{x=1905,m=3317,a=114,s=37}
+{x=95,m=224,a=47,s=1384}
+{x=2754,m=716,a=285,s=740}
+{x=116,m=971,a=187,s=55}
+{x=249,m=1481,a=7,s=203}
+{x=643,m=118,a=23,s=37}
+{x=497,m=164,a=1581,s=93}
+{x=1777,m=147,a=89,s=425}
+{x=1141,m=1825,a=920,s=414}
+{x=5,m=2033,a=31,s=19}
+{x=1231,m=430,a=41,s=2704}
+{x=1648,m=232,a=311,s=317}
+{x=21,m=2483,a=2128,s=335}
+{x=2972,m=19,a=989,s=1718}
+{x=359,m=1688,a=203,s=68}
+{x=127,m=352,a=2675,s=10}
+{x=655,m=2323,a=541,s=1543}
+{x=113,m=2137,a=54,s=2284}
+{x=136,m=195,a=1882,s=428}
+{x=77,m=346,a=2270,s=221}
+{x=768,m=822,a=717,s=999}
+{x=3247,m=123,a=3202,s=522}
+{x=23,m=1279,a=977,s=1157}
+{x=947,m=99,a=110,s=1272}
+{x=120,m=641,a=2692,s=15}
+{x=1556,m=972,a=1378,s=158}
+{x=3040,m=457,a=1261,s=70}
+{x=768,m=83,a=346,s=191}
+{x=25,m=714,a=1284,s=344}
+{x=828,m=616,a=769,s=433}
+{x=708,m=8,a=882,s=425}
+{x=3591,m=470,a=1502,s=542}
+{x=2025,m=250,a=608,s=882}
+{x=2403,m=1376,a=2727,s=498}
+{x=473,m=1777,a=432,s=1408}
+{x=532,m=1199,a=461,s=281}
+{x=2896,m=620,a=445,s=518}
+{x=2630,m=900,a=3201,s=285}
+{x=1756,m=1064,a=158,s=146}
+{x=2356,m=1674,a=6,s=1561}
+{x=246,m=1122,a=3613,s=847}
+{x=1471,m=2135,a=1866,s=2240}
+{x=4,m=2292,a=1876,s=2328}
diff --git a/2023/src/bin/day_19.rs b/2023/src/bin/day_19.rs
index b3a610b..fd25a5d 100644
--- a/2023/src/bin/day_19.rs
+++ b/2023/src/bin/day_19.rs
@@ -1,19 +1,65 @@
use nom::IResult;
-use std::fs;
+use std::{collections::BTreeMap, fs};
fn main() -> Result<(), Box<dyn std::error::Error>> {
- let input = fs::read_to_string("inputs/day_2.txt")?;
- let parsed = Example::parser(&input).unwrap().1;
+ let input = fs::read_to_string("inputs/day_19.txt")?;
+ let parsed = PartSortingMess::parser(&input).unwrap().1;
dbg!(&parsed);
Ok(())
}
#[derive(Debug)]
-struct Example;
+struct PartSortingMess {
+ workflows: BTreeMap<String, Workflow>,
+ parts: Vec<Part>,
+}
+
+#[derive(Debug)]
+struct Workflow {
+ id: String,
+ conditions: WorkflowStep,
+ if_none_match: WorkflowOutcome,
+}
+
+#[derive(Debug)]
+struct WorkflowStep {
+ field: PartField,
+ condition: WorkflowCondition,
+ result: WorkflowOutcome,
+}
+
+#[derive(Debug)]
+enum PartField {
+ X,
+ M,
+ A,
+ S,
+}
+
+#[derive(Debug)]
+enum WorkflowCondition {
+ LessThan(u32),
+ GreaterThan(u32),
+}
+
+#[derive(Debug)]
+enum WorkflowOutcome {
+ Accept,
+ Reject,
+ Defer(String),
+}
+
+#[derive(Debug)]
+struct Part {
+ x: u32,
+ m: u32,
+ a: u32,
+ s: u32,
+}
-impl Example {
- fn parser(_input: &str) -> IResult<&str, Self> {
+impl PartSortingMess {
+ fn parser(input: &str) -> IResult<&str, Self> {
todo!()
}
}