From ab61f564fd174e19c74b6ff8be2e9611fb178ba6 Mon Sep 17 00:00:00 2001 From: Justin Wernick Date: Tue, 19 Dec 2023 23:31:25 +0200 Subject: Day 19 filling in the types for part 1 --- 2023/inputs/day_19.txt | 715 +++++++++++++++++++++++++++++++++++++++++++++++++ 2023/src/bin/day_19.rs | 58 +++- 2 files changed, 767 insertions(+), 6 deletions(-) create mode 100644 2023/inputs/day_19.txt 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> { - 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, + parts: Vec, +} + +#[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!() } } -- cgit v1.2.3