diff options
Diffstat (limited to '2023')
| -rw-r--r-- | 2023/day19.rs | 140 | ||||
| -rw-r--r-- | 2023/in/day19.pzl | 770 | ||||
| -rw-r--r-- | 2023/in/day19.ref | 17 |
3 files changed, 927 insertions, 0 deletions
diff --git a/2023/day19.rs b/2023/day19.rs new file mode 100644 index 0000000..f8ad1d8 --- /dev/null +++ b/2023/day19.rs @@ -0,0 +1,140 @@ +#![allow(dead_code)] +#![allow(unused_variables)] +#![allow(unused_mut)] +use std::cmp::Ordering; +use std::collections::HashMap; +use std::env; +use std::fs::File; +use std::io::Read; + +#[derive(Debug, Clone)] +struct Comp { + i: usize, + comp: Ordering, + val: i32, + next: String, +} + +type Comps = Vec<Comp>; + +fn name_to_num(c: char) -> usize { + match c { + 'x' => return 0, + 'm' => return 1, + 'a' => return 2, + 's' => return 3, + _ => panic!(), + } +} + +fn parse_comp(s: &str) -> Comp { + let mut c: Comp = Comp { + i: 0, + comp: Ordering::Equal, + val: 0, + next: "".to_string(), + }; + + if !s.contains(":") { + c.i = 0; + c.comp = Ordering::Greater; + c.val = -1; + c.next = s.to_string(); + return c; + } + + let (a, b) = s.split_once(":").unwrap(); + + if a.contains("<") { + let (i, val) = a.split_once("<").unwrap(); + c.comp = Ordering::Less; + c.i = name_to_num(i.chars().next().unwrap()); + c.val = val.parse().unwrap(); + } else if a.contains(">") { + let (i, val) = a.split_once(">").unwrap(); + c.comp = Ordering::Greater; + c.i = name_to_num(i.chars().next().unwrap()); + c.val = val.parse().unwrap(); + } else { + panic!(); + } + c.next = b.to_string(); + + return c; +} + +fn parse_wf(s: &str) -> (&str, Comps) { + let (a, b) = s.split_once('{').unwrap(); + let b = b.trim_end_matches('}'); + + let mut comps: Comps = Vec::new(); + for comp in b.split(',') { + comps.push(parse_comp(comp)); + } + + (a, comps) +} + +fn parse_vals(mut s: &str) -> Vec<i32> { + let mut vec: Vec<i32> = Vec::new(); + s = &s[1..s.len() - 1]; + for mut v in s.split(',') { + v = &v[2..]; + let v: u32 = v.parse().unwrap(); + vec.push(v as i32); + } + vec +} + +fn rec(wf: &str, part: &Vec<i32>, wfs: &HashMap<&str, Comps>) -> bool { + if wf == "R" { + return false; + } else if wf == "A" { + return true; + } + + let comps = wfs.get(wf).unwrap(); + for comp in comps { + if part[comp.i].cmp(&comp.val) == comp.comp { + return rec(&comp.next, part, wfs); + } + } + panic!(); +} + +fn main() { + let args: Vec<String> = env::args().collect(); + let filename = if args.len() == 1 { + "in/".to_owned() + args[0].split('/').last().unwrap() + ".pzl" + } else { + args[1].clone() + }; + let mut f = File::open(filename).expect("cannot open file"); + let mut content = String::new(); + f.read_to_string(&mut content).expect("cannot read file"); + let mut paragraph = content.trim_end().split("\n\n"); + + let mut workflows: HashMap<&str, Comps> = HashMap::new(); + for line in paragraph.next().unwrap().split('\n') { + let (key, val) = parse_wf(line); + workflows.insert(key, val); + } + + let mut parts: Vec<Vec<i32>> = Vec::new(); + for line in paragraph.next().unwrap().split('\n') { + parts.push(parse_vals(line)); + } + + let mut res1 = 0; + + for part in parts { + if rec("in", &part, &workflows) { + res1 += part.iter().fold(0, |x, y| x + y); + } + } + + let mut res2 = 0; + + println!("res1: {}", res1); + println!("res2: {}", res2); +} diff --git a/2023/in/day19.pzl b/2023/in/day19.pzl new file mode 100644 index 0000000..3491bfd --- /dev/null +++ b/2023/in/day19.pzl @@ -0,0 +1,770 @@ +vr{a>3414:A,R} +lx{x>2140:A,A} +vkm{s>411:A,a>443:R,A} +nr{x>1463:R,A} +xd{m>375:R,x<2704:R,R} +zq{s<2226:A,R} +sgf{m>923:kq,a<801:sc,x<3251:tt,gm} +pqh{m>3259:R,a>1418:R,s<3015:A,R} +cg{m<3220:R,m<3292:A,a>856:R,R} +lsf{a>424:R,R} +cbn{m>2375:pvh,qgf} +tl{x<3706:mf,x<3839:srt,s<2265:vdg,fjb} +rlp{s<657:R,a<2605:A,a>2875:A,A} +hgt{s>3010:A,A} +lbp{a<1791:R,x>2941:dbs,s>3208:A,sxh} +dc{a<559:R,R} +pqm{m<1994:R,A} +kg{x<2866:zv,a<532:mfx,dc} +zz{x<204:A,m>3750:A,ct} +mq{s<3238:xzl,qfs} +csg{m<1938:A,m<1995:R,A} +dr{a>3338:fl,a>3276:vc,A} +gc{m>3488:A,m<2931:R,x<1506:R,R} +pqx{x<1518:R,x<1605:R,s<3006:R,R} +cc{a>1777:pdz,s>358:nfp,rd} +cmb{m<758:kbc,a>2913:vdt,a>2448:dm,kv} +xq{m<3071:tlf,s<1142:vdf,s>1530:gv,bbc} +cn{m>919:slj,a>3064:fr,zll} +cfd{m>1470:A,s>2179:A,m<840:hg,zcf} +dm{a>2757:mmz,m>1033:xz,a>2638:gbh,R} +rrm{x>716:xg,x<586:dzv,mjb} +xhl{m>3908:R,a>1503:A,a>1326:R,A} +zg{m>710:A,m<549:R,R} +pls{s>1189:mv,a<1598:zs,s>762:ms,cc} +tps{a<940:mj,x<3337:A,sm} +lvq{x<1898:R,s<2829:A,m>3485:A,R} +mqt{m>1462:R,A} +in{a>1983:bz,m<1782:js,m>2851:hl,ktm} +gx{s<1066:A,R} +sv{x<2026:R,x>2775:bqt,nc} +fsg{a<152:A,s<3348:R,R} +zrk{a>875:A,m<416:R,R} +tmx{s>3571:R,m>238:R,R} +btg{x>3104:A,R} +fj{x<1633:ltm,kgs} +bs{a<1535:R,R} +kdr{x>1967:R,R} +vbl{a<600:mpb,s>1964:zr,ptr} +crk{a>3107:tz,x>801:R,A} +lc{m>3491:kr,xq} +kqx{m>2976:kdd,m>2909:nps,a<1520:bv,cts} +lv{a<1310:A,x>2652:A,A} +zxs{m<875:A,ccd} +szl{s>466:kjx,a<454:jcc,A} +ghm{s>833:R,R} +fzt{x<1870:psf,a<1621:gr,m<3600:lvq,ddt} +hqv{s<948:A,a<507:A,a<738:szr,A} +fmj{m<2475:R,s<2910:A,a>251:A,R} +zsg{a>2629:R,A} +cgx{x<1207:jv,kqh} +lt{a<3161:A,m<3426:A,x<2128:A,R} +qsz{m>3289:R,x>2566:xf,R} +pc{s<3779:R,m<783:btp,mh} +vt{x>3274:R,x<2529:R,hqd} +rk{a<639:R,mqt} +xdl{m<3533:R,R} +vbp{s>3091:zrk,x>2865:A,qz} +nx{s>3353:R,fmj} +hmg{m<2202:A,R} +gv{x<1581:R,s<1739:A,x>1695:dzj,R} +mfq{s<1846:A,s>2187:A,R} +zl{a<3740:qtg,A} +sr{m>1500:rcj,qnb} +kpc{a>741:gk,kgj} +prc{m>3259:R,a<1739:A,a>1851:A,R} +sqj{x>1393:pqx,x<1312:rs,x>1340:R,R} +dbh{x<2248:cj,qx} +zk{s>1944:A,x<2918:A,A} +bdh{x>3416:R,A} +bfj{a>2398:R,a<2234:A,R} +qkl{x<1740:pp,a<435:xx,mk} +bb{m>935:R,m>508:A,x>2922:A,R} +skb{s>1570:A,m<3271:A,x>3470:A,R} +zxh{m<3566:A,R} +zhx{x<1421:xv,A} +pd{m<3229:A,R} +gs{m>3374:vk,m<3046:kqx,kt} +jjr{x>2310:lmr,jdq} +hd{s>3385:R,a>1113:R,x>314:R,A} +vfj{m<1168:xql,fb} +dnt{s<3071:A,A} +tjx{a>1534:A,A} +dtm{a<714:zhx,m<3352:zm,slv} +cq{a>3174:A,A} +psn{a<1284:cjj,x>1844:xn,jqj} +xh{a<1317:A,x>2843:A,R} +sgt{s>3564:A,A} +lgz{x<2895:R,A} +fzq{x>2802:kf,a>605:R,R} +gps{a<822:A,a>839:A,x<2994:A,A} +mbq{x<2602:vtd,R} +cts{m<2887:R,R} +bd{m<3096:R,R} +gk{a<949:R,a>1097:A,x<2044:R,R} +ds{s>927:A,m>1055:R,R} +mps{x<1131:R,A} +slv{x>1497:vgh,a<983:hgt,a<1095:tmr,bsj} +gdn{x>1376:R,A} +jj{m<3028:A,x<1518:R,A} +bg{m>3463:R,A} +fq{a<873:A,R} +blg{x<476:A,x<743:R,A} +gqs{a>1049:A,a>1029:R,a<1023:R,A} +szr{x>825:R,a<642:A,a>675:A,R} +jdq{a>691:R,m<2018:R,x>1015:A,A} +jk{a>415:A,A} +xvx{m<3391:R,a>1694:A,A} +pb{s>2785:R,R} +gf{m<1294:A,a<1958:R,R} +kgr{m>2635:hrg,a<1461:zq,R} +cs{x>2439:A,a<219:A,A} +qnb{m<1281:tjx,a<1711:A,ztp} +zvk{s<1182:R,R} +snd{a<680:A,a<723:R,A} +tnt{x<876:R,s<3391:A,x<1365:R,A} +ddt{m<3788:A,s>2800:R,R} +zx{s>3399:R,x>984:R,pfj} +tp{a>731:A,A} +ztl{a>1938:A,m<676:A,x<997:R,R} +mpb{s>2483:kg,zhk} +jb{s>1027:R,A} +hv{x<1034:R,nr} +slj{s<1035:A,s<1462:vx,s<1617:mx,A} +nxp{x>2789:zvk,s>1209:kd,cs} +mds{x>353:R,R} +hl{x<1920:dlb,xlj} +rcj{a<1686:R,x>1892:bpc,s<1510:R,hsl} +sg{x>2708:rm,R} +kkf{m<1967:R,m<1976:gxd,a>763:mfq,A} +vp{m<2517:nd,x>1859:srv,s>810:pg,szl} +zxf{m<1614:ftg,m>1724:A,R} +vqs{m>736:A,m<362:R,A} +tn{s<2744:R,m<3203:R,m>3300:A,R} +hsd{x<2643:R,A} +tss{s>922:R,a<1019:A,a>1154:A,R} +tlr{a<3231:R,x>2029:A,A} +qqg{x<2873:R,x>3359:R,s>3047:A,fq} +tbh{x>1566:A,x>1286:R,x>1138:R,A} +dzj{m>3298:A,A} +sbx{m<3341:R,a<991:A,A} +zs{a<1423:A,a<1498:nb,A} +lgq{a<1200:dtm,x<1546:hp,brm} +ql{m<880:kpc,lmm} +zn{s<1750:A,x<901:R,m<3644:A,A} +mjs{x>2426:fxr,s<2233:A,s>2497:A,R} +tbs{x<3370:A,a>2833:R,m>1245:A,R} +mp{a>3625:A,x<819:A,R} +hjp{x<429:A,x>774:A,R} +dzv{m<3698:R,a<837:ztm,ltt} +bqt{x<3520:A,R} +bn{m<3802:R,x<278:A,x<324:A,R} +mkq{m>321:R,s>686:R,s<253:A,R} +tz{x>883:R,m>3465:A,R} +rm{m<683:R,a<1520:R,A} +gcp{s>3097:A,pb} +kp{a<632:bt,a>666:qmk,a<651:xd,lzh} +jg{s<2959:A,A} +mg{x>1316:xdl,xvx} +qp{a>3467:R,A} +fp{x<1546:R,A} +sp{a>3712:A,s<1594:R,R} +vjs{m>2044:A,A} +zc{a>2110:A,s>243:A,a>2028:A,A} +nk{m<1119:A,m>1895:A,m>1627:A,R} +vk{a<1458:zj,s>1515:bf,rb} +fz{m<513:R,a<685:pvs,m>702:sst,zrt} +qc{x>626:R,a>446:R,R} +pvz{m<924:A,m>1466:A,R} +xql{x>3205:nt,dnt} +hk{s>901:nvv,sx} +shp{a>552:lrf,x<2379:cd,fhn} +gqb{x<2096:rx,zxh} +hgv{x<2779:R,s>1337:A,R} +kz{a<3763:sp,lp} +jmc{a>932:psn,x<1954:cgx,a>579:sgf,vfj} +ptr{m>3398:cks,m<3105:hr,dh} +vq{a>1722:A,s<3208:R,s>3621:A,R} +jm{x<1649:R,a>1786:A,x<1723:R,R} +sx{x>1431:R,x<659:R,R} +rjz{a>2733:R,s<3280:R,R} +ns{m>3790:A,A} +vz{m>2278:kgr,hvp} +xnx{s<1150:R,R} +xx{a<173:kk,a<325:dsn,R} +mj{m<3015:A,R} +zvd{s<2061:tbs,m<1477:sl,kl} +jx{x>145:bn,xnq} +nc{m>683:A,x<2504:R,a>997:R,A} +nnq{m>2255:qtq,mdj} +kdd{a<1665:dd,s>2337:R,m<3014:A,A} +hqk{s<3409:A,s>3722:A,R} +jhf{x<2557:A,a<730:R,A} +vdg{x<3930:ghm,m<3341:R,a<949:dmx,A} +vg{a<1470:A,x>2764:pdt,prc} +lmm{s<1595:rk,qpv} +kf{x>3482:A,m<2709:R,R} +gml{a>3626:kz,m<3322:fvs,jmr} +hsj{x<3421:R,x<3726:R,s<1156:A,R} +qx{a<1612:vz,nnq} +mjb{a>1017:A,a>433:mqz,pf} +dpv{m>3697:A,s<872:A,m>3573:R,fkv} +dmx{m<3718:A,x>3961:A,a>916:A,A} +fc{m>722:A,m<376:R,m<538:R,A} +cxd{s<1218:snb,a>1837:A,m>2273:A,A} +jv{s>3082:kkd,s<2674:hjp,xvb} +tnv{x>800:R,s<1826:R,a<692:A,A} +kl{s<2444:R,s>2526:R,R} +zf{a>334:R,A} +kt{s>2518:rph,vg} +dhk{a<1618:R,R} +bhl{m<3024:R,R} +ppg{x>3162:R,A} +nvv{a<2532:A,m>2216:A,A} +xvb{x>458:fc,vhq} +flg{s>3250:tmx,x<3592:bdh,mxc} +thh{s<1567:A,R} +xdj{m<3434:zxn,x<356:hpx,rrm} +zr{x>2998:smv,x<2379:gqb,s<2997:ml,tdr} +fjb{a<961:R,A} +pz{x<1962:A,R} +nkj{x>2911:A,m<3767:R,x>2553:R,A} +bf{x<2727:tq,m<3716:R,x<3522:btg,sb} +hpx{s<1574:zz,a>1130:mn,jx} +skq{m<3265:kdr,a<3095:dfl,lgh} +mdj{m>2009:R,A} +hfl{x<2221:hv,a>525:qqg,nx} +qcg{a<743:px,s>2697:vd,R} +brm{x<1786:vbq,m>3294:fzt,x>1840:cr,hgf} +fhx{a<833:A,s<2988:jq,m<453:A,A} +tqd{x>3713:R,a>3304:A,A} +qg{x<3734:A,s<3427:A,R} +fxs{a<1567:R,m>3691:A,a<1626:A,R} +js{s>2419:jmc,bld} +mv{s>1609:R,s>1439:R,a<1646:A,cx} +gxd{a<556:A,m<1972:A,R} +bfx{m>2202:R,A} +xm{m<3293:R,m<3313:R,s>1326:A,A} +qcc{a>1359:R,m>3131:A,A} +kqh{x>1651:dqd,m<1113:vqs,m>1461:sqj,hj} +st{x<3852:R,A} +bt{s<3362:R,x>2509:R,m<415:A,A} +kbc{x<670:mkq,A} +mnc{a>759:R,a>697:A,a<654:R,A} +mqz{s<2072:A,m>3722:R,R} +fn{x<1666:R,R} +zrt{m>590:A,a<749:R,a<766:R,R} +dl{x<2405:gt,m>1832:bfx,a>3717:hsj,sh} +xnl{a>524:R,s<2581:qlz,rrx} +qpv{s<2019:cmf,a<695:A,m<1257:R,R} +dlj{x<192:R,A} +rg{m>848:zdx,a<1237:nl,hsd} +lf{a<3204:lcd,x<910:cfd,a<3565:dr,zl} +nps{m>2943:dhk,x<2837:R,A} +pk{s<3133:R,s<3500:A,R} +hb{x<2063:R,a<3400:R,m<384:R,A} +tt{x>2490:vbp,s<3152:cmp,qq} +sh{s<1092:R,a>3463:A,s<1392:R,R} +tpl{m>3508:gz,m>2949:R,s>1047:fp,A} +sst{m>832:A,A} +qvs{x>2274:ksm,lf} +nq{s<3159:A,R} +qgf{m>2065:hbj,s<2483:sd,qkl} +lk{m<1052:R,m>1945:R,R} +qv{s<3357:A,A} +blv{x>3046:dtj,s>3114:A,R} +lg{m>2254:qlv,cmr} +nh{x>431:R,a>1433:A,A} +pps{a>1893:A,R} +qk{x<3254:jtz,m>3294:nvz,tps} +qlv{s>1566:rpb,s>575:R,x<1750:jzd,R} +qq{m>375:zg,a<867:R,m<250:lx,R} +rx{x<2021:A,x<2053:R,m<3343:A,A} +jmr{m>3710:xnx,s<1515:tlr,x<1654:gnn,A} +lcd{x<793:nk,a<2779:R,A} +sl{a<3170:R,x<3352:A,s>2348:R,R} +nl{m>394:A,R} +rt{a>1895:ztl,tnt} +mlt{s>1178:A,x>2340:A,s>610:A,A} +srt{x>3764:fbh,m>3302:A,A} +pg{s<1473:R,m>2572:A,qc} +btc{m>2364:R,m<2104:rqj,a<1891:hmg,mr} +md{a<2896:rh,m<2539:A,hn} +zxn{x<618:ctj,s>1748:bgt,a<1183:hqv,bts} +qbd{a>1300:R,a>1195:R,A} +gm{a<888:fhx,m<490:flg,ckn} +sb{x<3829:A,x<3943:A,x>3979:A,R} +fpv{x>2671:A,x>2630:A,a>2602:R,lk} +cmr{a>1618:ndl,x>1648:nvs,rqg} +fr{x>2491:R,hb} +zll{x<2443:xvp,zsg} +xg{a>1229:zn,x<905:tnv,db} +llt{m<1846:R,A} +mjq{x<1653:xqn,fzq} +vj{x<2815:R,R} +kfh{s<3145:A,s>3678:R,A} +ckn{a>910:A,x>3622:R,a<902:dx,pcn} +zcf{s>1918:R,x<546:A,a<3666:R,A} +ms{m<585:R,s<953:ghg,x>1498:fpr,A} +nbz{a<400:R,A} +svg{m>2523:kx,s<1755:bm,qvs} +dfl{m<3731:R,A} +qs{m>3253:R,a>1665:R,A} +hg{x<510:A,s<2024:R,m<479:R,A} +qtg{m>1184:R,s<2253:R,m>704:R,R} +psf{a<1654:A,R} +ck{x>804:R,s<2886:mds,bd} +jz{s>1351:A,s<637:A,m>3673:R,A} +pdt{a<1696:R,A} +dsn{x<3241:R,m>1921:A,R} +cr{s<3051:R,ntj} +rqg{m<2046:A,x<1469:R,x>1558:R,R} +ggf{a<802:A,s<1148:R,x<3200:R,A} +dh{a>758:gps,jb} +cjd{s>1079:R,s<695:A,s<830:A,R} +pdz{a>1874:R,A} +jtg{m<3797:A,R} +jsf{m<2622:rzd,x<1372:fx,x>2301:kpl,nm} +zm{a<963:R,s>3171:jj,m>3023:tn,lb} +ctj{s<2660:cg,hd} +dlb{x<1015:xdj,s>1984:lgq,lc} +vgh{a<978:R,A} +sd{m<1949:pz,s<926:jjr,m>1989:ht,kkf} +ccd{m>1353:A,a>1394:A,A} +fxr{a>2560:A,m>1609:R,A} +xt{a>300:R,a<166:A,x<2401:A,A} +rd{m>441:A,a>1690:R,m<260:R,R} +ccs{s<838:A,R} +ztm{a>542:A,m<3852:A,A} +pcn{s>3269:A,a<907:R,A} +hp{s>2757:mg,qrq} +ldc{x>3475:A,s<3762:dz,dn} +lzh{s<3256:R,a<658:R,R} +gnn{m<3490:A,s>1926:R,a<3250:A,R} +scp{x>764:R,a>1806:R,R} +vtd{s>785:R,m<1742:A,A} +jqj{a>1728:rt,a<1550:zxs,mps} +hsl{x>1037:R,x>580:A,A} +gxg{m>1274:R,s<3369:R,m<937:R,R} +rh{a<2411:A,x<2226:R,x<2849:R,R} +hrd{s<3098:tp,jhf} +nvz{m>3703:R,s<2096:hs,kfx} +kx{a<3022:tqs,gml} +xv{x>1180:R,A} +tmr{s>2918:R,R} +lnc{x>3019:A,m>3500:R,a>3032:nq,R} +bpc{m<1680:R,x<3257:A,a<1791:A,R} +fkv{a>828:A,s<1349:A,m<3525:R,R} +dqd{x<1784:jf,s<3044:zf,pvz} +vkn{m>3521:A,a>420:A,s<2784:R,R} +kpl{x<3416:lnc,lh} +bts{x>848:R,x<712:cjd,a<1645:R,scp} +psz{a>1926:gf,x>3134:gxg,s<3215:pps,A} +qtq{s<2450:A,s<3447:shm,a<1787:ppg,str} +dmp{x<447:A,R} +lgh{m>3647:R,a<3490:R,a<3775:A,A} +xzl{m>1524:R,m>1326:A,s<2750:R,R} +srv{m<2556:R,s<843:vkm,s<1416:ggf,A} +mr{m<2264:R,A} +th{s<835:R,m>3729:R,x>2872:R,R} +jzd{s>258:R,m>2563:A,A} +sk{a<1710:fxs,ns} +cjj{a<1060:sv,a>1170:rg,x>2037:mt,zx} +jf{m>928:R,A} +mf{a>973:hvz,R} +vd{x>3203:A,s<2797:A,R} +hrg{a<1371:A,a>1483:A,R} +nt{m>670:qg,a<362:A,A} +qmk{a>675:A,s>3143:A,a<671:R,R} +rzd{a<2988:zdk,nn} +kd{a<309:R,s<1769:R,R} +xqn{m<2720:gvf,R} +lrf{m>2123:A,R} +kgs{x<3178:md,ldc} +zqf{x>2658:R,x>2351:R,m<3669:R,A} +lq{x<3090:prq,x>3401:tl,qk} +zh{m>985:sr,pls} +hvz{s>2459:A,R} +tdr{x>2697:A,a<745:A,a>790:zt,lvb} +hqd{a>113:R,R} +qz{x>2674:R,x<2580:A,R} +cmd{a>3700:R,R} +gr{m>3628:A,R} +kkd{s<3400:R,m<714:jk,dmp} +qfs{x>3836:R,m<1400:A,x<3759:R,R} +shm{a>1800:A,a<1730:R,a>1770:A,R} +zt{m>3276:R,m<3120:R,a>831:R,R} +ghg{a<1820:R,A} +tbx{x<3172:A,a<196:R,R} +zdk{m<1472:lsb,A} +kr{a>1320:sk,dpv} +pfj{s>3032:R,R} +cf{x>1919:lt,fd} +bbc{x>1594:R,m<3225:gdn,a>1201:A,A} +lsb{x<2500:R,a<2407:R,a>2649:R,A} +sm{m>3048:A,a>1017:R,A} +sjv{a>429:hzr,a>402:vkn,R} +mh{a>2662:A,A} +kgj{m>485:A,s>920:nbz,A} +sxh{m>1060:R,s>2864:R,R} +jq{m<596:A,R} +rpb{a>1574:A,A} +grp{a>3284:dl,m>1831:hk,m<1617:rlp,mbq} +dxh{m<3650:nfh,m>3848:nxp,m>3717:nkj,ntv} +jtz{m>3480:jz,s<2415:R,R} +hs{m>3505:A,s>1154:R,a<1005:A,A} +cmf{s<1821:R,a<458:R,s<1920:R,R} +zv{x>2271:R,A} +fd{m<3519:R,x>1581:R,a>2722:R,A} +dbs{s>3121:R,x>3421:A,m<1352:R,A} +xsc{s<3091:R,x>792:A,s<3555:A,R} +rht{x>607:R,m>2014:R,a>503:A,A} +lz{x>3564:xm,x<3325:A,skb} +zdx{s>3219:A,x<2480:R,x<3484:A,R} +kv{x>1016:ds,R} +snb{s>574:R,a>1880:A,x>923:R,R} +mn{s>3187:R,s>2164:bs,m<3739:dlj,xhl} +mxc{m<242:A,x<3746:R,A} +px{a>644:A,s<2728:R,x>3287:R,R} +hbj{m<2211:shp,m>2308:nqq,xnl} +bsj{s>3147:A,R} +qd{s>3693:R,a<3660:qp,s>3612:A,vjs} +zhk{x<2632:mlt,R} +ksm{x>2854:zvd,a>3133:tv,x>2578:fpv,mjs} +rnp{x<1831:A,A} +vdt{x<769:A,a<3443:cq,s>619:R,cmd} +xnq{m>3721:A,R} +qcs{s>3317:R,a<1598:A,s<2533:A,A} +vdf{a<883:A,m>3275:R,tbh} +xvp{a<2548:R,x>1951:A,s>1071:A,A} +xjp{a<76:A,fsg} +nm{s>2996:cf,skq} +rkn{s<3726:A,A} +tgd{x>2757:R,xt} +str{x>3224:A,m>2530:R,A} +ht{m<2033:fn,A} +pf{x<659:R,A} +kfx{x>3352:A,s>3192:R,a<1007:R,A} +fb{x<3282:mzr,a<202:xjp,x>3702:mq,fbl} +hmm{x<3203:tgd,m<3096:grd,m>3217:lz,np} +hr{m>2968:R,R} +fvs{x>1734:A,s>1359:vr,a<3421:bkc,A} +mx{m<1237:R,m<1330:A,m<1387:A,A} +dtj{m<3403:R,m<3689:R,a<346:A,A} +cqs{a<986:R,a>1025:fs,A} +bv{s>2301:hqk,A} +nfp{x>2587:R,A} +mlc{a<1713:R,A} +lmr{a<556:A,s>441:R,a<924:R,R} +xf{m<3026:A,a>912:R,m>3139:A,R} +vbq{m>3572:jtg,a>1680:jm,x>1650:pd,pqh} +zmg{x<2959:R,m<1833:A,A} +cx{a<1868:A,a>1928:A,m<412:R,A} +vfz{s<720:R,m>3667:R,m<3658:A,A} +gz{s<1382:A,A} +qlz{m<2261:A,m>2278:R,x<1617:R,R} +lh{a<2877:bfj,m<3524:R,s<3202:tqd,A} +xlj{a>1080:gs,a<466:bjt,a>868:lq,vbl} +gbh{s>602:A,R} +lvb{m>3613:R,a>766:R,A} +hj{m>1236:pk,m>1173:A,A} +nd{a<571:A,x>1952:A,tss} +qrq{s>2394:R,R} +ltm{a>3281:qd,m>2147:dbd,pc} +pcv{x<2504:rmd,R} +vx{m>1249:R,m<1122:A,A} +kk{a>102:A,R} +hrm{x<3482:R,R} +rb{m<3705:mlc,A} +ct{m>3575:R,s<923:A,m>3498:R,R} +bbl{m<2954:R,x>1234:A,x<1131:R,R} +hzr{a>444:A,R} +smv{m<3555:A,R} +hn{a>3443:R,s<3762:A,R} +bld{a<1301:ql,zh} +mzr{s>3296:A,A} +pq{x>714:A,a>2725:A,s>3201:A,R} +vc{m<1661:A,s<2236:R,m>1963:A,R} +fl{a<3463:R,R} +pt{s<3499:jsf,fj} +xs{a>1018:gqs,x<2524:sbx,m>3346:th,R} +rp{s>3756:R,R} +rs{m<1607:R,x<1267:A,m>1707:R,A} +mmz{x<746:A,m<1213:R,m<1326:R,A} +fhn{x<3152:A,s<2125:A,x<3527:R,A} +dx{a>893:A,s>3322:A,R} +np{a<206:R,ccs} +xjt{a<2267:A,a>2500:R,R} +bz{s<2656:svg,pt} +bjt{s>2419:gq,m<3336:hmm,dxh} +pdn{x>3155:mnc,R} +nqq{a<653:rnp,R} +kjx{s<660:A,R} +rqj{m>1961:A,a>1896:R,R} +hq{m<240:R,a<1873:kfh,a>1916:vj,A} +btp{m>271:R,m<99:R,R} +bkc{x>1069:R,m>2900:A,m>2668:R,A} +tlf{x>1415:A,s<1196:bbl,m<2985:R,R} +rmd{x<2173:R,m>3498:A,A} +ndl{m<1968:R,a>1791:R,R} +ml{a<771:snd,R} +tqs{a>2458:tpl,s>1393:sj,gb} +gvf{x>914:R,a<781:A,A} +cj{x<1186:lsd,lg} +cmp{s>2743:jg,a<860:R,m>312:R,A} +hgf{m<3130:vq,m>3236:A,qcs} +vhq{s<2884:A,a<584:R,x<224:A,A} +dbd{x>1077:rp,a>2743:R,xjt} +fpr{x<2722:A,a>1735:R,a<1670:R,A} +mfx{a>500:A,A} +kq{m<1491:gcp,s>3146:zxf,s<2894:qcg,pdn} +db{x<945:R,R} +lp{x>2173:A,R} +fs{s>2533:R,x<2621:A,R} +nn{x<1662:mp,bb} +tq{s<2467:R,m<3674:A,R} +nb{s>529:R,x<1923:R,s>292:A,A} +ztp{a>1837:A,R} +lsd{a<1724:jmb,x<412:btc,s<1937:cxd,xsc} +prq{s>1741:cqs,a>956:xs,s<904:qsz,pcv} +fx{s<3176:ck,s<3348:dq,crk} +hvp{a<1406:xh,x<3381:A,m<2017:A,A} +cd{x>1361:R,A} +rrx{s<3496:R,a<348:R,R} +grd{a<238:hrm,x>3713:st,m>2992:R,thh} +ntj{s>3380:A,R} +dn{a<2690:A,A} +gq{a<278:vt,a<382:blv,s>3001:cmc,sjv} +gt{x<1389:R,s>897:A,R} +lb{s<2723:R,A} +sj{x>1458:zk,s<1859:R,bhl} +nvs{s<1811:R,R} +pvs{s<3335:R,a>628:R,R} +ntv{m>3686:gx,s<1154:vfz,zqf} +rph{x>3245:qs,s<3035:R,x>2642:lgz,sgt} +ltt{m>3838:A,m>3769:A,A} +pvh{m>2607:mjq,s>2408:hfl,vp} +jmb{m<2232:A,m<2528:blg,nh} +fbl{s>3421:R,x>3561:R,A} +bgt{a>1011:qcc,s<2773:A,qv} +mk{s<3271:csg,a<971:rkn,m<1911:zmg,pqm} +ktm{a<1247:cbn,dbh} +dd{m<3002:R,a<1464:A,A} +nfh{m<3471:tbx,m<3540:A,R} +dz{a>3220:R,m>2286:R,x>3358:R,A} +bm{m>1464:grp,x>1525:cn,cmb} +tv{x<2655:A,a>3616:R,A} +fbh{a<948:A,R} +jcc{m<2572:R,m>2595:A,s>252:R,A} +ftg{s<3673:A,x>3286:R,m<1558:A,A} +dq{s>3243:rjz,a<3153:pq,bg} +gb{a>2230:R,s<668:zc,gc} +pp{m<1968:llt,rht} +zj{m>3662:lv,m<3521:hgv,s>1468:qbd,A} +xn{a<1704:sg,m<680:hq,a<1861:lbp,psz} +sc{x>3263:fz,a>688:hrd,kp} +cks{m<3797:R,a>741:A,A} +cmc{m>3299:A,x>2953:R,lsf} +xz{s>683:R,a>2623:A,A} +mt{m<826:A,R} + +{x=674,m=504,a=708,s=190} +{x=1977,m=955,a=492,s=199} +{x=973,m=239,a=1114,s=895} +{x=2492,m=586,a=261,s=366} +{x=246,m=458,a=409,s=2758} +{x=11,m=2756,a=201,s=610} +{x=1982,m=303,a=852,s=1034} +{x=292,m=1674,a=455,s=987} +{x=1931,m=11,a=677,s=2542} +{x=94,m=649,a=499,s=3519} +{x=1580,m=2150,a=279,s=1677} +{x=2417,m=89,a=461,s=2054} +{x=2336,m=1850,a=701,s=620} +{x=156,m=382,a=2737,s=1918} +{x=755,m=2961,a=18,s=90} +{x=1947,m=2548,a=553,s=212} +{x=751,m=44,a=164,s=1889} +{x=3169,m=674,a=1021,s=2474} +{x=1497,m=181,a=119,s=1587} +{x=539,m=544,a=419,s=316} +{x=6,m=401,a=197,s=1127} +{x=1000,m=1923,a=1216,s=303} +{x=337,m=2847,a=28,s=196} +{x=1160,m=1659,a=2631,s=1362} +{x=2529,m=1084,a=782,s=295} +{x=166,m=2057,a=1125,s=408} +{x=403,m=1340,a=240,s=87} +{x=995,m=32,a=700,s=2418} +{x=2101,m=185,a=1065,s=113} +{x=2401,m=197,a=919,s=75} +{x=1923,m=264,a=1242,s=1135} +{x=1933,m=333,a=1498,s=1729} +{x=1538,m=1014,a=848,s=269} +{x=327,m=85,a=1567,s=2822} +{x=432,m=757,a=212,s=808} +{x=57,m=1258,a=238,s=717} +{x=70,m=2015,a=1416,s=1303} +{x=257,m=511,a=129,s=951} +{x=238,m=1033,a=604,s=3386} +{x=658,m=81,a=791,s=185} +{x=3388,m=3054,a=324,s=633} +{x=623,m=249,a=254,s=1479} +{x=866,m=2012,a=304,s=355} +{x=812,m=1109,a=1275,s=44} +{x=98,m=1284,a=451,s=2276} +{x=1247,m=299,a=2631,s=2892} +{x=290,m=134,a=289,s=214} +{x=92,m=1430,a=2197,s=2446} +{x=527,m=2690,a=1252,s=398} +{x=1384,m=428,a=2041,s=983} +{x=132,m=582,a=135,s=700} +{x=9,m=3777,a=225,s=722} +{x=985,m=804,a=616,s=1369} +{x=918,m=1500,a=83,s=706} +{x=95,m=3210,a=636,s=3462} +{x=43,m=745,a=298,s=684} +{x=757,m=55,a=1412,s=373} +{x=1510,m=1041,a=1845,s=875} +{x=616,m=3062,a=15,s=347} +{x=2,m=2623,a=2602,s=813} +{x=603,m=265,a=2180,s=2416} +{x=1929,m=185,a=104,s=2} +{x=1553,m=628,a=1445,s=1909} +{x=5,m=684,a=131,s=225} +{x=504,m=299,a=397,s=2108} +{x=677,m=1117,a=1555,s=23} +{x=2374,m=67,a=744,s=738} +{x=583,m=751,a=49,s=1063} +{x=1024,m=83,a=41,s=3129} +{x=1644,m=41,a=1396,s=1262} +{x=1425,m=918,a=550,s=1209} +{x=2566,m=593,a=1715,s=120} +{x=79,m=3043,a=1607,s=17} +{x=38,m=553,a=138,s=1260} +{x=344,m=773,a=624,s=714} +{x=433,m=1373,a=1018,s=1720} +{x=2791,m=505,a=2,s=1289} +{x=2566,m=1484,a=1736,s=1326} +{x=589,m=72,a=669,s=987} +{x=147,m=2890,a=186,s=2412} +{x=2993,m=370,a=337,s=1676} +{x=13,m=740,a=965,s=2421} +{x=226,m=997,a=1655,s=224} +{x=169,m=1064,a=747,s=292} +{x=421,m=2632,a=305,s=1308} +{x=1890,m=75,a=1397,s=1701} +{x=606,m=506,a=1084,s=2742} +{x=1657,m=1864,a=853,s=3122} +{x=1045,m=160,a=538,s=1130} +{x=455,m=17,a=73,s=349} +{x=93,m=2149,a=415,s=2065} +{x=1188,m=62,a=1063,s=997} +{x=470,m=18,a=791,s=3445} +{x=1721,m=1686,a=2238,s=259} +{x=239,m=2291,a=483,s=11} +{x=2027,m=81,a=3275,s=96} +{x=819,m=46,a=453,s=449} +{x=117,m=1088,a=1230,s=773} +{x=252,m=742,a=514,s=986} +{x=205,m=22,a=2211,s=809} +{x=115,m=1837,a=237,s=1455} +{x=534,m=557,a=615,s=499} +{x=281,m=115,a=276,s=487} +{x=1251,m=1574,a=2895,s=279} +{x=1198,m=22,a=739,s=2758} +{x=265,m=1510,a=57,s=491} +{x=1969,m=2065,a=751,s=1838} +{x=685,m=68,a=1972,s=1377} +{x=950,m=811,a=84,s=2} +{x=1086,m=2871,a=2039,s=565} +{x=2717,m=537,a=3939,s=483} +{x=601,m=853,a=232,s=1089} +{x=1569,m=44,a=1186,s=542} +{x=1092,m=2131,a=1038,s=197} +{x=58,m=812,a=2388,s=1182} +{x=930,m=36,a=1376,s=3343} +{x=848,m=232,a=1115,s=929} +{x=568,m=386,a=971,s=1750} +{x=451,m=635,a=1297,s=203} +{x=99,m=49,a=506,s=308} +{x=358,m=1180,a=517,s=420} +{x=175,m=401,a=1410,s=649} +{x=979,m=1784,a=598,s=115} +{x=889,m=1439,a=13,s=1879} +{x=400,m=1053,a=59,s=639} +{x=3143,m=175,a=504,s=205} +{x=994,m=398,a=184,s=885} +{x=491,m=958,a=286,s=593} +{x=1497,m=1865,a=1612,s=346} +{x=1202,m=1779,a=758,s=297} +{x=2601,m=2275,a=677,s=1262} +{x=882,m=1044,a=1383,s=572} +{x=412,m=508,a=328,s=1150} +{x=2492,m=994,a=2541,s=1180} +{x=3773,m=1018,a=416,s=602} +{x=1046,m=156,a=7,s=398} +{x=100,m=414,a=408,s=1308} +{x=2398,m=53,a=997,s=679} +{x=3306,m=745,a=1497,s=2100} +{x=1409,m=472,a=626,s=1220} +{x=313,m=425,a=2505,s=1729} +{x=572,m=262,a=345,s=588} +{x=125,m=196,a=142,s=1155} +{x=1865,m=650,a=195,s=1986} +{x=326,m=556,a=996,s=2082} +{x=1146,m=2905,a=3842,s=563} +{x=266,m=1916,a=1820,s=168} +{x=312,m=1281,a=1392,s=1117} +{x=134,m=60,a=1445,s=1930} +{x=172,m=457,a=147,s=407} +{x=109,m=684,a=2070,s=30} +{x=3067,m=2067,a=1842,s=581} +{x=1848,m=1989,a=94,s=360} +{x=1226,m=1920,a=161,s=924} +{x=1556,m=75,a=3280,s=838} +{x=313,m=265,a=1420,s=3463} +{x=593,m=898,a=798,s=2173} +{x=792,m=69,a=583,s=1191} +{x=510,m=1318,a=3384,s=39} +{x=707,m=1060,a=69,s=1165} +{x=87,m=711,a=1788,s=3063} +{x=111,m=674,a=521,s=311} +{x=2429,m=180,a=423,s=469} +{x=10,m=1406,a=1553,s=37} +{x=2552,m=2002,a=29,s=27} +{x=1292,m=459,a=25,s=668} +{x=135,m=2835,a=3638,s=989} +{x=2770,m=697,a=1741,s=244} +{x=1180,m=1643,a=342,s=1597} +{x=778,m=849,a=1024,s=44} +{x=180,m=294,a=1821,s=1508} +{x=640,m=1349,a=251,s=678} +{x=478,m=223,a=173,s=2054} +{x=68,m=292,a=493,s=2233} +{x=826,m=83,a=156,s=664} +{x=37,m=275,a=376,s=3953} +{x=36,m=1172,a=294,s=961} +{x=809,m=1526,a=1070,s=2408} +{x=794,m=838,a=52,s=461} +{x=719,m=672,a=2313,s=285} +{x=422,m=206,a=1187,s=38} +{x=260,m=44,a=1419,s=907} +{x=626,m=642,a=1119,s=242} +{x=409,m=21,a=1514,s=1736} +{x=512,m=42,a=300,s=1166} +{x=2017,m=1748,a=499,s=1428} +{x=985,m=238,a=549,s=686} +{x=324,m=339,a=2028,s=427} +{x=1835,m=103,a=253,s=53} +{x=218,m=1176,a=96,s=1588} +{x=1012,m=2361,a=1186,s=807} +{x=215,m=614,a=405,s=1814} +{x=994,m=1458,a=185,s=1300} +{x=524,m=407,a=437,s=538} +{x=51,m=967,a=856,s=1887} +{x=1331,m=2397,a=1318,s=1620} +{x=1162,m=1564,a=1,s=424} +{x=1725,m=1047,a=873,s=744} +{x=1276,m=1541,a=686,s=942} +{x=880,m=412,a=2187,s=1720} diff --git a/2023/in/day19.ref b/2023/in/day19.ref new file mode 100644 index 0000000..e5b5d64 --- /dev/null +++ b/2023/in/day19.ref @@ -0,0 +1,17 @@ +px{a<2006:qkq,m>2090:A,rfg} +pv{a>1716:R,A} +lnx{m>1548:A,A} +rfg{s<537:gd,x>2440:R,A} +qs{s>3448:A,lnx} +qkq{x<1416:A,crn} +crn{x>2662:A,R} +in{s<1351:px,qqz} +qqz{s>2770:qs,m<1801:hdj,R} +gd{a>3333:R,R} +hdj{m>838:A,pv} + +{x=787,m=2655,a=1222,s=2876} +{x=1679,m=44,a=2067,s=496} +{x=2036,m=264,a=79,s=2244} +{x=2461,m=1339,a=466,s=291} +{x=2127,m=1623,a=2188,s=1013} |
