day 19
This commit is contained in:
parent
867a987508
commit
73f6305410
54
day19/Cargo.lock
generated
Normal file
54
day19/Cargo.lock
generated
Normal file
@ -0,0 +1,54 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "aho-corasick"
|
||||
version = "1.1.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "day19"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"regex",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
version = "2.6.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
|
||||
|
||||
[[package]]
|
||||
name = "regex"
|
||||
version = "1.10.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
|
||||
dependencies = [
|
||||
"aho-corasick",
|
||||
"memchr",
|
||||
"regex-automata",
|
||||
"regex-syntax",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex-automata"
|
||||
version = "0.4.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
|
||||
dependencies = [
|
||||
"aho-corasick",
|
||||
"memchr",
|
||||
"regex-syntax",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex-syntax"
|
||||
version = "0.8.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
|
9
day19/Cargo.toml
Normal file
9
day19/Cargo.toml
Normal file
@ -0,0 +1,9 @@
|
||||
[package]
|
||||
name = "day19"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
regex = "1.10.2"
|
797
day19/input.txt
Normal file
797
day19/input.txt
Normal file
@ -0,0 +1,797 @@
|
||||
brk{s<3727:A,m>3500:A,s<3845:A,A}
|
||||
lt{a<982:A,s<274:vg,R}
|
||||
cms{s>621:A,x<502:dz,m<3295:R,nzd}
|
||||
mfd{a<2692:A,R}
|
||||
xcv{x>3826:R,a<1965:A,A}
|
||||
gtr{m<2488:R,s>1479:R,x<766:R,R}
|
||||
cm{m<2381:ff,m<3360:A,a<210:R,dd}
|
||||
fks{m>3641:llh,x>3409:xr,s>2575:xh,kvx}
|
||||
qpk{x<1633:A,x>1755:R,A}
|
||||
qtr{a>671:A,A}
|
||||
fdj{s<2953:mpr,gx}
|
||||
sdh{x>3471:pq,bqm}
|
||||
kkq{m<3791:R,a<1960:R,m>3871:xck,A}
|
||||
fxf{a>2645:R,a<2563:R,s>1762:A,A}
|
||||
mzh{a<3350:R,R}
|
||||
xd{m<3532:R,A}
|
||||
rcr{s>340:A,x>158:A,R}
|
||||
xmj{m<2852:mqq,pxh}
|
||||
ccj{s<3489:R,m>1373:fl,R}
|
||||
dm{x>2462:R,m<3451:A,A}
|
||||
tvg{m<407:A,A}
|
||||
sl{s<3430:A,A}
|
||||
csm{m<2603:kz,m>3229:pdr,x<2006:pn,kt}
|
||||
vp{m<1377:R,R}
|
||||
fz{s<3314:A,R}
|
||||
cl{s>2425:bm,A}
|
||||
mt{x>3089:fks,s<2167:nhd,ck}
|
||||
hdj{a>2641:rld,m>501:jcg,x<790:kpb,hzs}
|
||||
fr{s>1476:A,m<2837:A,s<840:R,cn}
|
||||
prt{x>1207:fqk,x<1076:R,R}
|
||||
mhd{x<215:A,a<614:A,x<473:A,A}
|
||||
qg{s<819:chx,tz}
|
||||
xzs{a>3775:R,a<3614:tkl,x<440:dxb,zff}
|
||||
xjx{m<2030:A,a<1186:R,s<3638:R,R}
|
||||
srj{x<1029:slm,a<390:rf,s>2991:dl,cl}
|
||||
tm{m<2243:bn,jfc}
|
||||
pc{m<3591:zjn,m<3847:A,a>2274:R,hvg}
|
||||
crq{x>2138:R,A}
|
||||
fl{m>1681:A,R}
|
||||
mxd{a>2884:pkc,s>2033:hnt,vpk}
|
||||
gr{a>3121:R,R}
|
||||
bpv{s>1041:A,s>841:R,R}
|
||||
kft{a>2883:rhq,a<2461:ns,xmj}
|
||||
qch{s>1420:R,A}
|
||||
qq{s<3024:A,a<1621:R,x<3397:R,A}
|
||||
hf{m<1930:bf,dp}
|
||||
lb{s>3448:A,R}
|
||||
zmv{s<3274:R,x>3417:R,A}
|
||||
ctr{m<3609:R,a<1962:R,x<2540:A,A}
|
||||
hkp{s>1646:A,srp}
|
||||
mvx{m>2859:R,x<3488:A,R}
|
||||
vhb{a<363:qch,A}
|
||||
bp{s>2455:R,dsv}
|
||||
hsh{s<530:hxt,s<1090:xrl,jtv}
|
||||
bx{s<2039:A,a<3303:R,m>2291:R,R}
|
||||
pnd{a<2844:rgz,m<2449:A,m>2479:jn,gqk}
|
||||
qlk{s>2611:A,s<2092:A,A}
|
||||
vqb{a>443:A,A}
|
||||
jnk{s<2464:bbp,fz}
|
||||
qf{s>2452:A,x<3493:R,a>2585:R,A}
|
||||
hhf{s>3215:A,s>3204:R,R}
|
||||
fqk{s>3289:A,A}
|
||||
ts{s<637:vqb,a>588:sb,rl}
|
||||
fqr{x>2070:R,s<2020:R,m<253:kk,R}
|
||||
xhf{s>2527:tqf,a<1637:jpp,s>1510:stv,A}
|
||||
vv{x<236:A,A}
|
||||
phz{x>1705:A,bcs}
|
||||
rpq{a>371:A,a<189:A,s<1681:A,A}
|
||||
ksd{x<861:gnl,m<1879:bd,x<1267:R,A}
|
||||
llh{s<2375:R,m>3826:R,a>3360:dhv,zmv}
|
||||
dl{x<1110:gn,R}
|
||||
kc{s<2887:bcz,x<730:qlq,gjq}
|
||||
rnv{a>2030:R,A}
|
||||
jfz{m<3510:A,x<232:tbr,R}
|
||||
vz{m>3640:A,x>486:R,R}
|
||||
rh{x>2717:lp,dsz}
|
||||
vb{m>3771:R,x<1919:A,R}
|
||||
pfr{s<3524:krf,x<1618:R,R}
|
||||
rsd{a<2380:R,m<3388:jp,fn}
|
||||
gx{s>3460:cf,a>961:xt,m<2457:rqx,hg}
|
||||
qpz{x<571:A,m<900:R,a>1295:R,R}
|
||||
ctj{a<2109:rcr,R}
|
||||
cg{a<801:nrl,m<655:ljs,xq}
|
||||
tvv{a>3123:dx,m<3516:A,lql}
|
||||
pbn{m<2844:A,m<2979:R,x<869:czg,R}
|
||||
psc{x<2808:fls,fd}
|
||||
mfn{s>361:gbb,mmx}
|
||||
rq{m>3477:A,bdt}
|
||||
qjf{m>3469:jf,a>3075:R,s<3247:zfg,R}
|
||||
pt{a<943:A,s<2493:R,A}
|
||||
nqk{x>1088:A,m<3482:cjv,R}
|
||||
nm{x<3016:A,R}
|
||||
lrn{m>2221:R,s<944:R,R}
|
||||
nx{x<1228:R,A}
|
||||
dd{x<3424:R,x>3749:R,R}
|
||||
kvn{m<3865:A,s>2276:A,s<1944:A,A}
|
||||
fdd{s>1070:A,s<510:R,A}
|
||||
db{s>3186:dpk,a>267:gzv,a<165:nqj,cm}
|
||||
hzl{x<3742:tds,A}
|
||||
ng{m<3172:xbl,m>3206:nfn,A}
|
||||
tx{s>3352:A,x<761:nvq,qqb}
|
||||
qk{x>1230:sv,s<2839:cc,s>3467:kqx,nqk}
|
||||
fdg{x>2748:A,A}
|
||||
hdp{m>194:fc,hn}
|
||||
kfn{s>1076:sqq,x<3311:R,A}
|
||||
kqx{a>2382:qrf,x<1127:A,A}
|
||||
xcj{m<1971:A,R}
|
||||
xbh{a>2219:A,A}
|
||||
zff{m>3648:A,R}
|
||||
gb{m>3833:A,R}
|
||||
fm{s>3311:sdh,s>2946:db,vx}
|
||||
hvm{x>852:A,A}
|
||||
vvl{a>3121:R,x<1888:A,R}
|
||||
mqq{x>649:A,a<2667:djs,s<2270:nrh,R}
|
||||
lvr{x>3164:A,A}
|
||||
mm{m>1622:R,m<1576:R,a<3617:R,A}
|
||||
dnl{m<1785:pdh,x>1500:qh,m>3058:gk,fmj}
|
||||
znf{a>3644:R,m>616:R,R}
|
||||
jx{s<2270:dc,mhd}
|
||||
qkm{m<3068:A,m>3082:A,s<2345:A,A}
|
||||
vpk{x<476:R,s>906:lqh,s<543:R,A}
|
||||
np{a<2600:A,A}
|
||||
sdc{x<3298:A,x>3586:A,R}
|
||||
gd{a>2233:A,rnr}
|
||||
pxh{x>956:pbh,x<633:tpx,s>1719:fml,mfd}
|
||||
ccb{x>1805:zzt,gtc}
|
||||
fjj{m<3563:R,a<3062:A,R}
|
||||
bxd{a<2061:dht,x<1214:ddg,s>713:phn,xxm}
|
||||
gc{a>3697:A,x>1586:R,A}
|
||||
pq{m<2538:R,brk}
|
||||
st{s>985:A,R}
|
||||
sj{s<2968:qtr,s<3559:A,s<3717:xjx,A}
|
||||
cc{x<1067:xtc,m>3623:R,R}
|
||||
mf{m<640:A,R}
|
||||
jh{a>1578:A,a>1429:kd,gsd}
|
||||
kk{m>146:A,x<1964:A,a<2410:R,R}
|
||||
tg{s<2462:A,vh}
|
||||
gv{m>886:R,A}
|
||||
pfs{x<1627:A,x<1710:R,m>3873:A,R}
|
||||
cv{s<841:A,m<3680:R,A}
|
||||
fsl{s>594:cz,m<3496:vt,x<3596:nb,cs}
|
||||
sk{m<420:R,R}
|
||||
fd{x>2977:R,x<2893:A,x>2941:A,A}
|
||||
xtc{m>3658:A,s>1963:A,R}
|
||||
fv{m>1518:tb,R}
|
||||
rzz{a>2302:R,a>2054:A,x>2519:ctr,R}
|
||||
tl{x>1375:mqn,x>1305:qcv,A}
|
||||
mfj{s>525:A,R}
|
||||
tpx{a>2714:A,R}
|
||||
jn{a<3598:R,R}
|
||||
lh{s<765:fjj,x<2579:R,a>3123:A,A}
|
||||
vl{m<640:A,A}
|
||||
nkb{x>1198:csm,s<1799:qg,x>616:tgp,fdj}
|
||||
qcv{s<2985:A,A}
|
||||
khd{s>1945:A,x>438:R,x>179:R,R}
|
||||
hg{a<485:A,R}
|
||||
cz{m<3595:kv,A}
|
||||
mp{m>2937:R,s<2500:A,fdq}
|
||||
kpb{m>238:rv,m>140:R,rjv}
|
||||
pns{m>1520:kj,s>2684:pfr,jm}
|
||||
qrh{x>2812:R,R}
|
||||
rm{x>723:sxc,bb}
|
||||
vk{m>877:A,x<981:A,a<2928:A,R}
|
||||
hbn{m<831:tvg,R}
|
||||
jrl{s>3423:A,R}
|
||||
rjv{s<2026:R,R}
|
||||
sgk{a<1410:R,A}
|
||||
xh{m<3280:A,m<3424:lb,x>3301:A,lvr}
|
||||
gbb{a<2591:A,m>3659:A,R}
|
||||
kz{m<1495:dg,s>2364:sj,hh}
|
||||
lpc{a<1432:xp,x>3244:kr,hp}
|
||||
jvz{s<3621:R,R}
|
||||
tkl{m<3638:A,A}
|
||||
vm{s<1460:R,x<567:R,R}
|
||||
ph{s<2907:A,a>1552:R,x<3818:R,R}
|
||||
czg{m<3013:R,x<517:R,m>3043:A,R}
|
||||
sr{x<3617:R,x<3755:A,x>3887:A,A}
|
||||
gl{m<3472:R,a<2437:R,x>338:R,R}
|
||||
dhv{x>3631:A,x>3309:R,m<3743:A,R}
|
||||
zj{x<2822:R,R}
|
||||
zc{x<2284:R,R}
|
||||
tk{m<243:R,a>762:A,A}
|
||||
fn{s<1386:A,a<2507:A,x>1878:R,R}
|
||||
pct{a<796:R,R}
|
||||
gqk{a>3284:R,m>2462:R,m>2455:A,A}
|
||||
pkc{s<1958:R,s>2881:kh,s<2559:A,R}
|
||||
fst{s>907:R,s<859:A,A}
|
||||
dr{m<1214:zkm,x<1089:mxd,s<1851:bcc,pns}
|
||||
rsx{m>1063:R,s<2954:R,R}
|
||||
jqc{x>3241:vc,A}
|
||||
rgz{x>558:R,m>2449:R,m>2406:R,R}
|
||||
pdh{x>2318:vnv,m>793:dr,a<3139:cq,frf}
|
||||
ps{x<2979:A,A}
|
||||
lj{m<1381:R,m>1474:R,R}
|
||||
pzr{s>2658:R,A}
|
||||
mg{m<3270:R,s<324:R,s>434:A,R}
|
||||
qqc{m<3150:sp,x>1498:R,m>3190:A,kg}
|
||||
srp{s>918:A,m>3662:R,m>3473:R,R}
|
||||
gpt{s<362:A,m<1712:zq,qc}
|
||||
xt{x<319:R,s<3141:tv,m>2094:R,R}
|
||||
css{x>562:A,x>354:R,A}
|
||||
tpm{a<111:R,R}
|
||||
gzv{a>336:R,A}
|
||||
cn{m<2915:A,x<1526:A,s<1244:R,A}
|
||||
zfg{x>459:R,m<3274:A,A}
|
||||
bjn{m<513:nnv,xmv}
|
||||
gz{a<2008:A,x<3451:R,s<2017:A,A}
|
||||
lph{s<3046:R,A}
|
||||
bf{m<1858:hb,a>3679:A,A}
|
||||
kh{x>519:A,A}
|
||||
bn{x>1011:A,m<1155:nmp,qvd}
|
||||
jbq{x<483:R,A}
|
||||
lql{x<1189:R,s<794:A,s<1096:R,A}
|
||||
sqq{m<344:R,R}
|
||||
lk{x>1380:R,x>555:A,rj}
|
||||
bxb{s>964:A,m<2003:mfj,x>560:R,R}
|
||||
hh{m<2169:R,m>2318:A,lrn}
|
||||
pk{x>383:R,x>129:A,m<708:R,A}
|
||||
kls{x<895:R,s<2440:A,a>1576:R,A}
|
||||
tb{a<1584:A,R}
|
||||
bbp{m<2468:R,m>2511:R,s>1950:R,A}
|
||||
stq{s>1124:dhj,x>3727:ts,pm}
|
||||
jjf{a>2228:R,s<676:R,a>2168:R,R}
|
||||
dxq{m<1766:A,x<3488:A,x<3716:A,A}
|
||||
scv{m>1319:A,s>1706:A,R}
|
||||
cb{a>954:R,s<3281:A,A}
|
||||
kj{s<2613:R,a>2986:mm,bg}
|
||||
rhc{s>496:R,s>252:A,A}
|
||||
kn{s<2246:A,A}
|
||||
bqm{a<174:ps,x>2831:A,pb}
|
||||
nv{x<846:nr,zl}
|
||||
tp{m<3318:R,a>894:R,s<2534:R,R}
|
||||
srq{s<2858:xg,hzm}
|
||||
nr{a>3476:xzs,s>2508:qjf,md}
|
||||
gj{x<2161:R,A}
|
||||
czm{s>222:A,m>3220:A,R}
|
||||
mqn{m<3143:A,R}
|
||||
js{m<2226:dlt,zhz}
|
||||
qpb{m<126:A,m>255:A,a<2135:R,R}
|
||||
zzt{x>1994:gj,a>2235:R,s>2411:R,R}
|
||||
kd{s>3005:A,a>1499:R,A}
|
||||
lr{a>2103:xcz,kfn}
|
||||
sxc{x>889:R,s>3111:R,x>824:A,R}
|
||||
tf{s<2663:A,s>2689:A,m<851:R,A}
|
||||
qc{a<351:A,x<934:R,R}
|
||||
gbr{a>705:cb,m<2130:sh,A}
|
||||
ljs{m>294:A,A}
|
||||
nb{m<3714:A,s<381:jdr,gb}
|
||||
rld{x<607:hlt,m<447:R,R}
|
||||
rk{m>3616:A,s>3146:A,s>2420:A,A}
|
||||
ddn{a<370:R,R}
|
||||
hl{x>3111:prr,m>1911:gbr,ccj}
|
||||
bk{s>3269:bt,x>3219:lph,gm}
|
||||
bb{m>3596:R,A}
|
||||
pp{m<3651:bkz,frs}
|
||||
qv{x>982:qk,znt}
|
||||
tqf{x>2607:R,x<2521:R,A}
|
||||
mht{a>2451:A,m>1438:A,m>1341:R,R}
|
||||
sgs{m>3460:A,m>3201:shc,A}
|
||||
mfm{a>2176:R,s<614:R,A}
|
||||
lx{a<1079:A,R}
|
||||
nqj{s>3042:R,x>3012:R,qrh}
|
||||
ddd{m>3779:R,A}
|
||||
kt{x<2175:mp,ckn}
|
||||
dxb{x>170:A,A}
|
||||
zfb{a>421:R,s>878:A,R}
|
||||
dlt{m<2140:np,s<1831:R,xrr}
|
||||
dx{a>3306:A,m>3568:R,a>3212:A,A}
|
||||
snv{x>641:R,R}
|
||||
qvd{m<1570:R,A}
|
||||
zd{s>2964:A,s>2728:A,R}
|
||||
ff{a<230:A,R}
|
||||
sg{s<993:A,m<849:A,A}
|
||||
nsf{x>3378:stq,a<715:snm,dh}
|
||||
vt{a>2421:mg,czm}
|
||||
nvq{m>3480:A,R}
|
||||
jcg{m>647:A,x>816:R,m>579:jbq,A}
|
||||
znt{s<2517:vr,x<552:jfz,a<2437:rm,tx}
|
||||
cjj{s<2391:R,rsx}
|
||||
dp{s<2929:fk,s<3614:R,m>2016:xmc,A}
|
||||
hqd{x>3367:R,s>1503:A,R}
|
||||
hk{s<277:R,s>483:R,m>1358:R,btx}
|
||||
sgg{m<2348:js,jzh}
|
||||
nfn{a>2132:R,x>1793:R,A}
|
||||
ftj{x<1389:R,R}
|
||||
xcz{m<466:A,a<2325:jjf,R}
|
||||
kzs{a>1910:A,x<951:R,A}
|
||||
xxm{m>3336:xcs,a>2151:A,ftj}
|
||||
mnn{s>3268:A,A}
|
||||
rl{m>1634:A,A}
|
||||
crp{s>557:R,R}
|
||||
fkh{a<1419:pz,rs}
|
||||
xxb{a<2370:A,A}
|
||||
mh{m>3820:R,x<2083:A,a>2996:R,A}
|
||||
fgb{s>2569:A,x>2450:A,R}
|
||||
nk{a<162:A,m<2726:frn,xpj}
|
||||
fc{x>1147:rvm,R}
|
||||
lm{m<3260:ng,rsd}
|
||||
cf{s>3729:rbt,m<2604:jvz,mq}
|
||||
dcf{x>3774:R,s<3116:R,R}
|
||||
lxx{x>1530:sl,x>518:vk,R}
|
||||
tgp{x<868:kc,a<752:srj,a<1341:tm,dk}
|
||||
kxv{a>891:R,R}
|
||||
zq{m<604:A,A}
|
||||
in{a<1805:pkg,dnl}
|
||||
zjn{m>3311:A,R}
|
||||
qqb{s<2931:R,x<851:R,R}
|
||||
pkg{x>2464:ljb,nkb}
|
||||
xg{a>149:A,m>2665:R,A}
|
||||
hc{x>279:cms,s<810:ctj,ttg}
|
||||
pm{s<517:R,m<1522:zfb,A}
|
||||
bcc{a>2934:xlj,x<1869:tkh,pnl}
|
||||
dj{m<103:R,m<138:R,A}
|
||||
nhd{x<2267:px,a<3424:lh,x>2623:szv,dm}
|
||||
bz{s>1704:qkp,x<3526:gr,R}
|
||||
rlz{a<3140:A,a>3293:R,x<297:A,R}
|
||||
vr{m<3643:R,a<2289:khd,htn}
|
||||
xr{a>3318:R,s<2341:A,s<3166:fcb,tn}
|
||||
cnp{m>911:R,m>568:A,tq}
|
||||
cq{x<1353:hdj,kx}
|
||||
zf{x<3828:A,a>1730:A,R}
|
||||
vx{s>2774:srq,m<1675:jt,s<2684:hv,nk}
|
||||
fnv{x>1143:R,R}
|
||||
xm{s<2292:R,R}
|
||||
kkp{m<2571:R,s<2085:hx,m>2800:gvm,R}
|
||||
hv{s<2661:A,m>2764:A,A}
|
||||
hzs{a>2161:R,x>1063:A,rnv}
|
||||
dh{x<3018:xdd,jqc}
|
||||
kvr{s<2242:vv,pk}
|
||||
hxt{a>2221:R,A}
|
||||
fct{m>3536:R,a<2575:A,R}
|
||||
ndh{m<972:znf,A}
|
||||
mpr{m>2022:jx,a<771:tg,s<2472:kvr,cnp}
|
||||
cp{m<2848:mzh,m>2927:gbz,A}
|
||||
nzd{s>238:R,x>606:R,x>549:R,R}
|
||||
mmx{x>1313:R,m<3589:R,A}
|
||||
vbr{a>3008:A,s<584:A,s<808:R,R}
|
||||
pmh{x>3296:R,m<489:sk,mf}
|
||||
fjg{a<1047:ddn,m<3101:qkm,a>1301:A,qnd}
|
||||
msp{m<717:gjj,a<3625:fgb,bxp}
|
||||
snl{x>3421:A,m<252:A,R}
|
||||
jdt{a<3134:qcg,s>1586:hf,cxg}
|
||||
xmc{x<570:A,x<1144:A,m>2053:R,R}
|
||||
kx{m>382:phz,x>1822:fqr,ztt}
|
||||
gbz{x<965:A,m<3013:A,m>3029:A,A}
|
||||
mx{x>3328:hzl,a<3372:jmc,x>2691:ndh,msp}
|
||||
frn{x<3473:A,a<285:A,R}
|
||||
bcs{x<1512:A,m>603:R,A}
|
||||
ttg{a>2011:R,A}
|
||||
hp{m>1412:psc,x>2760:hbn,xhf}
|
||||
nz{s>3208:R,s<2786:R,s>2974:A,A}
|
||||
krf{s<3091:A,m>1327:A,A}
|
||||
bcz{x>711:pt,a>1188:A,s<2432:A,A}
|
||||
rnr{a<2207:R,R}
|
||||
rj{x>314:A,s<912:A,a>3832:A,R}
|
||||
dg{s>1406:A,zsq}
|
||||
mzv{x>3263:R,R}
|
||||
qcg{x<980:lsp,qx}
|
||||
zhz{a>3088:jzq,kp}
|
||||
mzf{x>1264:A,R}
|
||||
btx{m>888:R,x>745:A,R}
|
||||
jtv{x<1844:mlv,x>2006:R,x>1914:A,htc}
|
||||
dgl{a<3453:R,s>2663:A,A}
|
||||
rp{m<2155:qpz,s<1318:sn,s<1583:css,R}
|
||||
tc{s<2033:A,a>1598:zf,a>1490:ph,dcf}
|
||||
hr{s<3608:R,x>447:R,R}
|
||||
rtb{m<2921:A,R}
|
||||
djs{x<335:A,s<1702:R,m>2691:A,A}
|
||||
nh{x>2140:R,m>1477:R,x>2039:A,A}
|
||||
kf{a<2025:R,s<3004:A,A}
|
||||
xlj{m<1564:lj,m>1698:tj,a>3333:gc,jc}
|
||||
jfc{a>995:R,x<1009:A,x<1095:A,tp}
|
||||
tkh{s>682:xxb,s>330:crp,a<2194:rz,mht}
|
||||
gn{x<1066:A,R}
|
||||
rhq{s>1782:cp,pbn}
|
||||
vj{s<3790:A,m<339:R,x<2823:A,A}
|
||||
tps{x>674:A,s<3265:A,A}
|
||||
szv{x<2868:ft,x>2976:vkh,s>841:R,rhc}
|
||||
trj{a<2273:jlj,gs}
|
||||
skv{a<2338:A,s>2958:R,s<2678:A,R}
|
||||
xmv{s<2988:A,s<3065:klm,kxv}
|
||||
hx{m>2810:R,A}
|
||||
sc{s<2986:A,R}
|
||||
zqz{s<3128:fg,x>611:jrl,A}
|
||||
frf{s<1691:jl,m<423:hdp,vrr}
|
||||
gsd{m>2232:R,s<2763:R,A}
|
||||
shl{a<2163:rd,x>3349:bp,nd}
|
||||
kr{x<3615:qmz,tc}
|
||||
bc{x<3311:A,s<3351:kf,xd}
|
||||
xgj{s>3591:A,m<548:R,x<3697:R,A}
|
||||
pnl{a>2241:nh,rcn}
|
||||
chx{x<575:lt,a<897:gpt,x>917:fkh,hk}
|
||||
fhs{m>700:R,A}
|
||||
nrh{x>238:R,a>2784:R,a<2732:A,R}
|
||||
hrz{x>1950:hm,a<902:A,m>3685:R,R}
|
||||
pxb{x>1142:mzf,gdx}
|
||||
xvz{s>561:ccg,R}
|
||||
xcs{s<422:A,a<2161:R,A}
|
||||
rx{a<3008:A,m<901:R,A}
|
||||
tbr{a<2365:R,s>3452:A,s>2930:A,R}
|
||||
frp{x>900:htl,s>573:sq,kkq}
|
||||
md{s>1652:vz,s<1077:vbr,rlz}
|
||||
ms{a>2247:fct,a>1974:A,s>2168:A,zc}
|
||||
frs{x<3540:kvn,m>3878:A,xcv}
|
||||
dgd{s>3214:hr,m<644:tnm,x>467:mr,R}
|
||||
lq{s<3221:sc,m<3569:A,x<3563:lvc,ddd}
|
||||
nnv{s>2853:tk,s>2735:snl,m>327:A,fln}
|
||||
qx{a<2498:R,a>2737:A,m<1893:fxf,R}
|
||||
xrr{s<3174:R,m>2190:A,x>908:A,R}
|
||||
hvg{a<1985:A,A}
|
||||
htl{a>2010:R,A}
|
||||
lsp{s<2234:xcj,m>1926:A,skv}
|
||||
rd{s<2503:R,x<3017:fdg,A}
|
||||
jds{x>1157:A,ssh}
|
||||
ddg{m>3417:mfm,x>942:ml,s<466:hvm,A}
|
||||
kv{a<2344:A,A}
|
||||
xdd{m>2260:A,a<992:gv,scv}
|
||||
jc{a<3114:A,R}
|
||||
sql{s<3259:br,a>3232:ggp,mh}
|
||||
snm{m>2141:vhb,m<1213:pv,nhb}
|
||||
vkh{s<955:R,s<1453:A,A}
|
||||
vnv{a>2559:mx,m>739:shl,s<1629:lr,cht}
|
||||
bkz{m<3362:gz,a>1950:hsz,R}
|
||||
slm{x<964:R,s>3235:vp,x<998:R,A}
|
||||
ft{m>3486:R,A}
|
||||
xck{x>451:A,A}
|
||||
hsz{a>2033:A,a<2000:A,m<3504:A,A}
|
||||
vh{a>503:R,s<2712:R,s>2843:A,R}
|
||||
pn{m<3019:fr,s<1453:qqc,x<1554:tl,fjg}
|
||||
px{x<1919:A,a>3411:crq,R}
|
||||
qkp{a<2827:A,m<2764:A,A}
|
||||
hn{a<3478:R,dj}
|
||||
gk{a>2753:nv,s>1384:qv,qtk}
|
||||
ggp{x>2183:R,A}
|
||||
tz{a>850:rp,nxm}
|
||||
jzh{x<856:pnd,s<1629:xvz,jnk}
|
||||
rvm{x<1863:R,m<286:A,A}
|
||||
kcm{x<915:kls,qlk}
|
||||
xp{s>2278:zk,hq}
|
||||
fls{a<1668:R,A}
|
||||
kg{a<833:R,s<541:R,A}
|
||||
td{s<1606:fsl,s>2769:qs,a<2163:pp,dqq}
|
||||
cxg{m<1949:ksd,a>3471:bxb,a<3282:ch,snv}
|
||||
jkx{s<1504:A,kn}
|
||||
rn{a<535:R,A}
|
||||
qh{m<3052:rh,a>2744:mt,x>2911:td,pj}
|
||||
nrl{x>3482:xgj,s>3672:vj,a<577:A,vl}
|
||||
cht{m>330:pmh,bfr}
|
||||
vg{x>366:A,R}
|
||||
fcb{s>2877:R,a<2979:A,m<3367:A,A}
|
||||
rv{s>2225:A,a<2143:R,A}
|
||||
fdq{x>2118:A,A}
|
||||
dz{a<2077:A,m>3350:A,s>221:R,R}
|
||||
cs{m>3766:szs,x<3765:A,R}
|
||||
jlj{x>2392:A,x>2372:A,R}
|
||||
qrf{m>3565:R,s<3757:R,R}
|
||||
pb{a>351:R,a>257:A,A}
|
||||
qnd{a>1151:R,x<1745:R,x>1864:R,A}
|
||||
ck{m>3671:sql,sgs}
|
||||
mq{a<1025:A,s>3611:R,s<3520:R,R}
|
||||
htn{x>503:A,m>3852:R,s>2112:R,A}
|
||||
pz{a<1213:R,s<531:A,A}
|
||||
shc{a<3329:R,s>2874:A,s<2537:A,R}
|
||||
gnl{a<3649:A,R}
|
||||
dqq{a<2368:gd,s<2264:rq,bcq}
|
||||
qr{s>3033:R,s>2249:R,s>1972:R,R}
|
||||
kp{a<2531:R,s<1615:R,a>2828:R,R}
|
||||
xpj{s>2734:A,m<3285:R,x<3369:A,R}
|
||||
sbs{x>2566:pc,x>2455:rzz,x>2351:trj,ms}
|
||||
sv{a>2152:R,a>1957:R,s<2504:A,ktn}
|
||||
ch{x<818:R,s<530:A,A}
|
||||
dc{m>2856:A,x>364:R,a>679:A,R}
|
||||
ccg{a>2984:A,a<2383:A,R}
|
||||
kzq{a>2303:A,xbh}
|
||||
tds{m<1004:R,s<1678:R,x<3470:R,R}
|
||||
stv{x<2625:R,s>1999:R,m>887:A,R}
|
||||
tn{m>3378:R,a>3123:A,A}
|
||||
xrl{x>1894:cv,a>2121:A,x<1674:mn,A}
|
||||
rql{x<292:A,A}
|
||||
bm{s<2693:R,a>530:A,A}
|
||||
jf{s<3466:A,m>3716:A,R}
|
||||
rz{s<154:R,A}
|
||||
nt{m>1697:R,R}
|
||||
sft{s>3185:A,x>1604:dgl,x>1373:xm,pzr}
|
||||
lvc{s>3545:R,s>3369:A,A}
|
||||
rf{a<197:tpm,s>2658:A,s<2248:R,A}
|
||||
tnm{m>562:R,x<697:R,x>882:R,A}
|
||||
nd{a>2411:zj,x>2779:nm,R}
|
||||
jzz{x>717:xf,x>282:A,m>3530:st,bpv}
|
||||
hm{m<3674:A,s>3421:R,a<946:A,A}
|
||||
dht{a>1916:R,a>1856:R,m>3310:fnv,A}
|
||||
lv{a>1547:R,nt}
|
||||
jzq{m>2270:R,A}
|
||||
pbh{a>2740:A,R}
|
||||
rqx{m>877:A,m<466:rql,fhs}
|
||||
jm{m<1319:R,m>1434:A,vvl}
|
||||
bd{x<1278:R,R}
|
||||
phn{s>1047:R,x>1340:R,A}
|
||||
htc{s<1275:R,a<2126:R,m>3702:A,R}
|
||||
bs{m<2785:vm,kzs}
|
||||
tv{s<3016:R,m>1424:R,A}
|
||||
mn{m<3801:A,R}
|
||||
ndr{a<2451:A,R}
|
||||
gjq{s<3377:mqf,R}
|
||||
xdq{x<1040:R,R}
|
||||
tq{m>255:A,x<241:R,m<126:R,A}
|
||||
ktn{m<3428:R,R}
|
||||
sn{a>1291:R,R}
|
||||
lqh{s>1302:A,A}
|
||||
bdt{x<3511:R,R}
|
||||
bfr{a>2244:A,x<3334:A,a>1974:qpb,qr}
|
||||
fp{m>3697:R,a>2058:R,x>1621:R,R}
|
||||
xq{m>820:mzv,m<714:A,sdc}
|
||||
jl{a<3597:xdq,lk}
|
||||
dsz{a<2722:kkp,bx}
|
||||
nhb{a>443:R,m<1590:xjt,A}
|
||||
qtc{m<857:A,A}
|
||||
pv{m>556:qtc,rpq}
|
||||
lp{m>2290:bz,lgs}
|
||||
ml{s>883:A,a<2164:A,s<393:A,A}
|
||||
fg{x<893:A,R}
|
||||
kvx{x<3291:A,x>3337:hqd,x>3313:fdd,mql}
|
||||
mqf{s>3110:R,x<798:R,A}
|
||||
kmt{s<1459:R,m>3633:vb,A}
|
||||
bcq{s<2597:qf,A}
|
||||
fk{m<2037:A,R}
|
||||
hnt{a<2261:R,x<687:A,x<935:A,R}
|
||||
pj{x>2249:sbs,m<3497:lm,s>1474:ccb,hsh}
|
||||
cjv{a>2375:R,a>2069:A,R}
|
||||
bg{x<1849:A,a>2393:R,a<2075:R,R}
|
||||
pdr{s>2635:hrz,a>617:kmt,x>1754:jkx,hkp}
|
||||
fmj{m>2534:kft,m>2093:sgg,jdt}
|
||||
tj{x<1824:A,m<1745:R,x>2008:A,R}
|
||||
hlt{a>2845:R,a>2760:A,x>221:A,A}
|
||||
ljb{a>1200:lpc,s<2627:nsf,a<441:fm,gfb}
|
||||
sh{s<3242:A,s<3602:R,R}
|
||||
zl{s>2245:prt,s>1272:pxb,a>3502:jds,tvv}
|
||||
nxm{s>1200:gtr,s<965:fst,R}
|
||||
nzs{m<882:sg,m>905:nx,x<886:R,R}
|
||||
ssh{x>965:R,a<3788:A,A}
|
||||
mql{x>3299:A,a>3451:A,A}
|
||||
vrr{x<1239:dgd,sft}
|
||||
gxq{m<3686:ndr,m>3886:A,x<829:A,R}
|
||||
xf{s<1136:R,A}
|
||||
jp{m<3305:R,R}
|
||||
bt{x>3254:sr,s<3547:R,s<3826:A,R}
|
||||
qtk{a>2269:rjn,m>3609:frp,x>707:bxd,hc}
|
||||
fml{x>777:A,R}
|
||||
lgs{a>3182:A,x>3362:R,m>2105:A,A}
|
||||
szs{m>3858:R,a<2142:A,R}
|
||||
gjj{x<2561:A,a>3790:A,R}
|
||||
mlv{s>1239:A,m<3825:A,x<1728:A,A}
|
||||
zsq{a<619:R,x<1745:A,x<2145:A,A}
|
||||
qmz{m<2523:R,s<1599:R,qq}
|
||||
zk{x<3150:R,zd}
|
||||
rs{a>1601:A,R}
|
||||
qs{a>2415:lq,bc}
|
||||
gdx{s<1774:R,A}
|
||||
jpp{m<764:R,m<1091:A,R}
|
||||
jt{x>3303:R,x<2817:ttm,s<2710:tf,A}
|
||||
klm{s>3017:A,m>799:A,m<681:R,R}
|
||||
ztt{m>192:R,a>2369:R,qpk}
|
||||
fln{x<3047:R,m>193:A,a<853:R,R}
|
||||
br{x<2460:A,R}
|
||||
hq{m<1545:A,s>849:rtb,mvx}
|
||||
rbt{m<2269:A,x>339:R,a<1074:R,R}
|
||||
ns{s>2422:zqz,a>2120:kzq,bs}
|
||||
dk{x>1017:jh,x>954:lv,s>3140:fv,kcm}
|
||||
sb{s>897:R,s<753:R,R}
|
||||
jdr{s>209:R,m<3863:R,m<3923:R,A}
|
||||
rjn{s>679:jzz,x<530:gl,x>1059:mfn,gxq}
|
||||
gfb{m>2467:bk,m>990:hl,s>3218:cg,bjn}
|
||||
ttm{s<2678:R,A}
|
||||
gvm{a>2405:A,s<2926:A,m<2950:A,A}
|
||||
gtc{a<2342:fp,m<3796:rk,pfs}
|
||||
hb{m<1813:R,A}
|
||||
zkm{m>940:cjj,s<2335:nzs,lxx}
|
||||
sp{s<869:R,m>3063:R,a<1081:R,R}
|
||||
gs{s<1767:A,A}
|
||||
rcn{x>2139:R,R}
|
||||
dpk{a>173:R,s>3240:mnn,hhf}
|
||||
vc{a<1019:R,R}
|
||||
prr{a>765:R,dxq}
|
||||
qlq{s>3515:R,a>727:A,tps}
|
||||
hzm{m>1445:R,R}
|
||||
sq{m>3864:A,m<3760:R,x<438:R,A}
|
||||
xjt{x<2801:R,a>256:R,R}
|
||||
bxp{x>2497:R,R}
|
||||
mr{m>730:R,R}
|
||||
gm{s<2923:pct,m<3485:R,x>2891:R,A}
|
||||
dsv{s>1297:A,m<1434:R,m>1572:R,A}
|
||||
xbl{a<2315:A,a<2548:A,s>2455:R,A}
|
||||
jmc{s<2500:rx,a<2842:R,x<2783:A,nz}
|
||||
ckn{a<715:A,s>1703:sgk,lx}
|
||||
dhj{s>1705:A,rn}
|
||||
nmp{x<937:A,x<974:R,a>973:A,A}
|
||||
|
||||
{x=97,m=3034,a=520,s=1230}
|
||||
{x=48,m=2597,a=1043,s=2427}
|
||||
{x=520,m=825,a=547,s=205}
|
||||
{x=90,m=1232,a=115,s=882}
|
||||
{x=1532,m=1668,a=2430,s=2369}
|
||||
{x=2095,m=753,a=347,s=1636}
|
||||
{x=15,m=3389,a=126,s=2070}
|
||||
{x=793,m=1658,a=310,s=2364}
|
||||
{x=959,m=1660,a=1185,s=681}
|
||||
{x=1109,m=1979,a=109,s=336}
|
||||
{x=415,m=424,a=1721,s=270}
|
||||
{x=323,m=1374,a=905,s=1917}
|
||||
{x=1450,m=1674,a=3109,s=2981}
|
||||
{x=205,m=89,a=1825,s=443}
|
||||
{x=92,m=70,a=712,s=655}
|
||||
{x=209,m=1050,a=320,s=1643}
|
||||
{x=488,m=834,a=1222,s=520}
|
||||
{x=32,m=746,a=577,s=133}
|
||||
{x=1206,m=740,a=223,s=1454}
|
||||
{x=109,m=978,a=3025,s=222}
|
||||
{x=149,m=1568,a=186,s=367}
|
||||
{x=49,m=680,a=375,s=113}
|
||||
{x=1071,m=321,a=194,s=866}
|
||||
{x=1099,m=246,a=767,s=3686}
|
||||
{x=463,m=1245,a=132,s=180}
|
||||
{x=2031,m=2121,a=127,s=99}
|
||||
{x=22,m=384,a=2498,s=1219}
|
||||
{x=1647,m=1199,a=1182,s=450}
|
||||
{x=1383,m=1078,a=240,s=1829}
|
||||
{x=481,m=995,a=475,s=428}
|
||||
{x=1461,m=1352,a=186,s=246}
|
||||
{x=871,m=1677,a=41,s=2389}
|
||||
{x=26,m=3600,a=1,s=2609}
|
||||
{x=229,m=498,a=633,s=325}
|
||||
{x=1893,m=314,a=678,s=505}
|
||||
{x=3819,m=1,a=101,s=734}
|
||||
{x=1247,m=520,a=564,s=390}
|
||||
{x=134,m=1176,a=275,s=1027}
|
||||
{x=873,m=2365,a=667,s=659}
|
||||
{x=271,m=189,a=332,s=826}
|
||||
{x=1928,m=972,a=191,s=2033}
|
||||
{x=403,m=379,a=3351,s=833}
|
||||
{x=629,m=690,a=486,s=1}
|
||||
{x=360,m=3135,a=352,s=583}
|
||||
{x=1066,m=889,a=949,s=402}
|
||||
{x=1953,m=229,a=1595,s=179}
|
||||
{x=861,m=2271,a=700,s=20}
|
||||
{x=9,m=1627,a=81,s=2023}
|
||||
{x=313,m=1388,a=667,s=1091}
|
||||
{x=1137,m=1665,a=124,s=626}
|
||||
{x=1061,m=429,a=54,s=1830}
|
||||
{x=815,m=51,a=550,s=1247}
|
||||
{x=124,m=952,a=897,s=1886}
|
||||
{x=680,m=148,a=2408,s=2}
|
||||
{x=3132,m=1257,a=1604,s=1052}
|
||||
{x=698,m=749,a=81,s=59}
|
||||
{x=2834,m=262,a=1239,s=2597}
|
||||
{x=191,m=218,a=444,s=53}
|
||||
{x=1740,m=750,a=46,s=335}
|
||||
{x=468,m=531,a=2898,s=1772}
|
||||
{x=655,m=1360,a=2860,s=973}
|
||||
{x=854,m=529,a=1226,s=550}
|
||||
{x=486,m=785,a=2418,s=614}
|
||||
{x=534,m=1710,a=2052,s=594}
|
||||
{x=116,m=2580,a=27,s=428}
|
||||
{x=778,m=1090,a=1359,s=1328}
|
||||
{x=405,m=2739,a=3242,s=2159}
|
||||
{x=34,m=2314,a=1055,s=857}
|
||||
{x=1110,m=1263,a=216,s=2526}
|
||||
{x=1177,m=284,a=1042,s=1597}
|
||||
{x=251,m=3649,a=1844,s=1427}
|
||||
{x=872,m=1048,a=1991,s=411}
|
||||
{x=2299,m=154,a=113,s=2699}
|
||||
{x=399,m=432,a=939,s=7}
|
||||
{x=2885,m=756,a=344,s=96}
|
||||
{x=1945,m=2586,a=1677,s=787}
|
||||
{x=1497,m=1101,a=1879,s=349}
|
||||
{x=1066,m=938,a=1124,s=27}
|
||||
{x=285,m=370,a=2779,s=1235}
|
||||
{x=210,m=203,a=1392,s=2350}
|
||||
{x=3118,m=2349,a=342,s=108}
|
||||
{x=1181,m=668,a=1853,s=2686}
|
||||
{x=143,m=662,a=404,s=37}
|
||||
{x=3342,m=2811,a=432,s=630}
|
||||
{x=539,m=432,a=160,s=465}
|
||||
{x=378,m=752,a=1528,s=32}
|
||||
{x=579,m=903,a=1012,s=807}
|
||||
{x=5,m=606,a=2425,s=2214}
|
||||
{x=409,m=493,a=1110,s=3168}
|
||||
{x=1662,m=1930,a=20,s=1684}
|
||||
{x=49,m=2284,a=528,s=29}
|
||||
{x=106,m=1201,a=1842,s=572}
|
||||
{x=2,m=1241,a=489,s=2092}
|
||||
{x=747,m=774,a=1023,s=51}
|
||||
{x=766,m=2744,a=1260,s=35}
|
||||
{x=225,m=85,a=313,s=203}
|
||||
{x=1065,m=3852,a=3001,s=224}
|
||||
{x=1080,m=68,a=2236,s=579}
|
||||
{x=1202,m=709,a=650,s=113}
|
||||
{x=1368,m=50,a=1621,s=72}
|
||||
{x=142,m=761,a=557,s=154}
|
||||
{x=1898,m=77,a=380,s=707}
|
||||
{x=1022,m=155,a=3318,s=556}
|
||||
{x=376,m=1130,a=1293,s=7}
|
||||
{x=268,m=873,a=408,s=453}
|
||||
{x=2057,m=1316,a=1370,s=1291}
|
||||
{x=81,m=285,a=1445,s=2015}
|
||||
{x=2449,m=725,a=1567,s=1198}
|
||||
{x=2550,m=779,a=178,s=9}
|
||||
{x=719,m=574,a=3040,s=2694}
|
||||
{x=272,m=92,a=1526,s=811}
|
||||
{x=10,m=354,a=285,s=476}
|
||||
{x=43,m=2071,a=1017,s=501}
|
||||
{x=680,m=1749,a=2515,s=3395}
|
||||
{x=369,m=1441,a=444,s=820}
|
||||
{x=1946,m=616,a=398,s=1840}
|
||||
{x=693,m=3478,a=53,s=487}
|
||||
{x=2902,m=429,a=237,s=525}
|
||||
{x=442,m=209,a=2734,s=1911}
|
||||
{x=3447,m=953,a=696,s=392}
|
||||
{x=658,m=65,a=1036,s=821}
|
||||
{x=720,m=570,a=40,s=463}
|
||||
{x=1607,m=147,a=952,s=1673}
|
||||
{x=1169,m=1312,a=481,s=2083}
|
||||
{x=709,m=160,a=186,s=1370}
|
||||
{x=1283,m=2187,a=337,s=89}
|
||||
{x=2933,m=2469,a=55,s=1198}
|
||||
{x=1009,m=813,a=1280,s=1980}
|
||||
{x=1128,m=446,a=56,s=2315}
|
||||
{x=320,m=839,a=1176,s=1555}
|
||||
{x=2719,m=1776,a=2869,s=593}
|
||||
{x=1236,m=2786,a=1644,s=131}
|
||||
{x=1806,m=1125,a=196,s=2414}
|
||||
{x=175,m=1618,a=381,s=2136}
|
||||
{x=748,m=58,a=1006,s=676}
|
||||
{x=449,m=56,a=852,s=428}
|
||||
{x=1447,m=515,a=2256,s=550}
|
||||
{x=2372,m=2045,a=845,s=2483}
|
||||
{x=3147,m=1641,a=708,s=702}
|
||||
{x=123,m=426,a=4,s=59}
|
||||
{x=615,m=253,a=1880,s=1551}
|
||||
{x=99,m=1119,a=473,s=987}
|
||||
{x=3070,m=1697,a=1137,s=2525}
|
||||
{x=967,m=2275,a=429,s=106}
|
||||
{x=1615,m=2679,a=405,s=166}
|
||||
{x=1564,m=200,a=307,s=154}
|
||||
{x=74,m=2971,a=1556,s=199}
|
||||
{x=3023,m=1890,a=2602,s=416}
|
||||
{x=2854,m=67,a=662,s=718}
|
||||
{x=95,m=97,a=214,s=252}
|
||||
{x=2025,m=788,a=191,s=880}
|
||||
{x=975,m=485,a=355,s=52}
|
||||
{x=619,m=758,a=491,s=569}
|
||||
{x=197,m=12,a=193,s=2070}
|
||||
{x=839,m=652,a=20,s=24}
|
||||
{x=83,m=92,a=309,s=536}
|
||||
{x=3025,m=501,a=1418,s=1540}
|
||||
{x=42,m=1817,a=170,s=2125}
|
||||
{x=808,m=662,a=41,s=577}
|
||||
{x=30,m=142,a=1692,s=474}
|
||||
{x=854,m=1999,a=3126,s=1189}
|
||||
{x=346,m=1370,a=1116,s=2035}
|
||||
{x=233,m=752,a=516,s=1179}
|
||||
{x=3217,m=3109,a=29,s=73}
|
||||
{x=484,m=2314,a=225,s=2}
|
||||
{x=898,m=2681,a=2313,s=1328}
|
||||
{x=1095,m=1220,a=331,s=1174}
|
||||
{x=3569,m=1665,a=27,s=324}
|
||||
{x=170,m=2228,a=3119,s=618}
|
||||
{x=17,m=186,a=1137,s=5}
|
||||
{x=75,m=938,a=235,s=73}
|
||||
{x=569,m=330,a=1178,s=1201}
|
||||
{x=2288,m=199,a=2644,s=21}
|
||||
{x=741,m=580,a=114,s=1896}
|
||||
{x=234,m=524,a=1372,s=616}
|
||||
{x=1027,m=27,a=905,s=1145}
|
||||
{x=170,m=24,a=888,s=1257}
|
||||
{x=2412,m=2908,a=327,s=627}
|
||||
{x=2041,m=1036,a=1798,s=3228}
|
||||
{x=887,m=164,a=75,s=2456}
|
||||
{x=56,m=595,a=1643,s=86}
|
||||
{x=88,m=394,a=292,s=277}
|
||||
{x=1343,m=1241,a=2035,s=180}
|
||||
{x=50,m=150,a=496,s=378}
|
||||
{x=1414,m=828,a=1585,s=226}
|
||||
{x=3243,m=117,a=1357,s=141}
|
||||
{x=528,m=854,a=259,s=619}
|
||||
{x=40,m=794,a=1497,s=2787}
|
||||
{x=2157,m=388,a=658,s=993}
|
||||
{x=911,m=1159,a=346,s=1165}
|
||||
{x=105,m=916,a=84,s=2514}
|
||||
{x=2577,m=1880,a=601,s=2679}
|
||||
{x=2262,m=1108,a=1022,s=45}
|
||||
{x=780,m=445,a=291,s=201}
|
||||
{x=3173,m=535,a=1280,s=3422}
|
||||
{x=1308,m=49,a=910,s=1391}
|
||||
{x=944,m=158,a=3,s=1409}
|
||||
{x=125,m=340,a=1970,s=3505}
|
||||
{x=145,m=2289,a=1040,s=1482}
|
||||
{x=1395,m=1185,a=224,s=1174}
|
17
day19/input_test.txt
Normal file
17
day19/input_test.txt
Normal file
@ -0,0 +1,17 @@
|
||||
in{s<1351:px,qqz}
|
||||
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}
|
||||
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}
|
187
day19/src/main.rs
Normal file
187
day19/src/main.rs
Normal file
@ -0,0 +1,187 @@
|
||||
use std::cmp;
|
||||
use std::collections::HashMap;
|
||||
use std::fs::read_to_string;
|
||||
use std::ops::Range;
|
||||
use std::time::Instant;
|
||||
use regex::Regex;
|
||||
|
||||
#[derive(Copy, Clone, PartialEq)]
|
||||
#[repr(u8)]
|
||||
enum RuleConditionVariable {
|
||||
X,
|
||||
M,
|
||||
A,
|
||||
S,
|
||||
None,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, PartialEq)]
|
||||
#[repr(u8)]
|
||||
enum RuleConditionOperation {
|
||||
Less,
|
||||
Greater,
|
||||
}
|
||||
|
||||
struct Rule<'a> {
|
||||
variable: RuleConditionVariable,
|
||||
operation: RuleConditionOperation,
|
||||
argument: i32,
|
||||
result: &'a str,
|
||||
}
|
||||
|
||||
fn check_part(workflows: &HashMap<&str, Vec<Rule>>, part: &[i32; 4]) -> bool {
|
||||
let mut workflow: &Vec<Rule> = &workflows["in"];
|
||||
let mut workflow_index: usize = 0;
|
||||
while workflow_index < workflow.len() {
|
||||
let rule = &workflow[workflow_index];
|
||||
let mut passed_condition = true;
|
||||
if rule.variable != RuleConditionVariable::None {
|
||||
match rule.operation {
|
||||
RuleConditionOperation::Less => {
|
||||
passed_condition = part[rule.variable as usize] < rule.argument;
|
||||
}
|
||||
RuleConditionOperation::Greater => {
|
||||
passed_condition = part[rule.variable as usize] > rule.argument;
|
||||
}
|
||||
}
|
||||
}
|
||||
if passed_condition {
|
||||
match rule.result {
|
||||
"R" => return false,
|
||||
"A" => return true,
|
||||
_ => {
|
||||
workflow = &workflows[rule.result];
|
||||
workflow_index = 0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
workflow_index += 1;
|
||||
}
|
||||
}
|
||||
false
|
||||
}
|
||||
|
||||
fn count_options(workflows: &HashMap<&str, Vec<Rule>>,
|
||||
start: &str, parts: &[Range<i32>; 4]) -> u64 {
|
||||
let workflow: &Vec<Rule> = &workflows[start];
|
||||
let mut workflow_index: usize = 0;
|
||||
let mut options = 0u64;
|
||||
let mut checked_parts = parts.clone();
|
||||
let count_ranges_options = |parts: &[Range<i32>; 4], next: &str| {
|
||||
match next {
|
||||
"R" => 0,
|
||||
"A" => parts.iter().fold(1u64, |acc, range| {
|
||||
acc * cmp::max(0, range.end - range.start) as u64
|
||||
}),
|
||||
_ => count_options(workflows, next, parts)
|
||||
}
|
||||
};
|
||||
while workflow_index < workflow.len() {
|
||||
let rule = &workflow[workflow_index];
|
||||
if rule.variable != RuleConditionVariable::None {
|
||||
let mut new_parts = checked_parts.clone();
|
||||
let new_parts_var = &mut new_parts[rule.variable as usize];
|
||||
let checked_parts_var = &mut checked_parts[rule.variable as usize];
|
||||
match rule.operation {
|
||||
RuleConditionOperation::Less => {
|
||||
new_parts_var.end = rule.argument;
|
||||
checked_parts_var.start = rule.argument;
|
||||
}
|
||||
RuleConditionOperation::Greater => {
|
||||
new_parts_var.start = rule.argument + 1;
|
||||
checked_parts_var.end = rule.argument + 1;
|
||||
}
|
||||
}
|
||||
if new_parts_var.start < new_parts_var.end {
|
||||
options += count_ranges_options(&new_parts, rule.result);
|
||||
}
|
||||
if checked_parts_var.start >= checked_parts_var.end {
|
||||
return options;
|
||||
}
|
||||
} else {
|
||||
return options + count_ranges_options(&checked_parts, rule.result);
|
||||
}
|
||||
workflow_index += 1;
|
||||
}
|
||||
panic!("No rules for remaining ranges");
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let time_start = Instant::now();
|
||||
let input_str = read_to_string("input.txt").unwrap();
|
||||
let time_start_no_io = Instant::now();
|
||||
let mut workflows: HashMap<&str, Vec<Rule>> = HashMap::new();
|
||||
let mut parts: Vec<[i32; 4]> = vec![];
|
||||
let mut currently_parsing_rules = true;
|
||||
let rule_re = Regex::new("(?:([xmas])([><])([0-9]+):)?([a-zAR]+),?").unwrap();
|
||||
let part_re = Regex::new("\\{x=([0-9]+),m=([0-9]+),a=([0-9]+),s=([0-9]+)}").unwrap();
|
||||
for line in input_str.lines() {
|
||||
if currently_parsing_rules {
|
||||
let mut workflow_key: &str = "";
|
||||
let mut rules: Vec<Rule> = vec![];
|
||||
for captures in rule_re.captures_iter(line) {
|
||||
if workflow_key.is_empty() {
|
||||
workflow_key = captures.get(4).unwrap().as_str();
|
||||
} else {
|
||||
if let Some(_) = captures.get(1) {
|
||||
rules.push(Rule {
|
||||
variable: match captures[1].as_bytes()[0] {
|
||||
b'x' => RuleConditionVariable::X,
|
||||
b'm' => RuleConditionVariable::M,
|
||||
b'a' => RuleConditionVariable::A,
|
||||
b's' => RuleConditionVariable::S,
|
||||
_ => RuleConditionVariable::None
|
||||
},
|
||||
operation: match captures[2].as_bytes()[0] {
|
||||
b'<' => RuleConditionOperation::Less,
|
||||
_ => RuleConditionOperation::Greater
|
||||
},
|
||||
argument: captures[3].parse::<i32>().unwrap(),
|
||||
result: captures.get(4).unwrap().as_str(),
|
||||
});
|
||||
} else {
|
||||
rules.push(Rule {
|
||||
variable: RuleConditionVariable::None,
|
||||
operation: RuleConditionOperation::Less,
|
||||
argument: 0,
|
||||
result: captures.get(4).unwrap().as_str(),
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
if workflow_key.is_empty() {
|
||||
currently_parsing_rules = false;
|
||||
continue;
|
||||
} else {
|
||||
// Remove useless conditions (those that give the same result as the last)
|
||||
while rules.len() > 1 {
|
||||
if rules[rules.len() - 1].variable == RuleConditionVariable::None
|
||||
&& rules[rules.len() - 1].result == rules[rules.len() - 2].result {
|
||||
rules.remove(rules.len() - 2);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
workflows.insert(workflow_key, rules);
|
||||
}
|
||||
} else {
|
||||
if let Some(capture) = part_re.captures(line) {
|
||||
let mut part = [0; 4];
|
||||
for (i, re_match) in capture.iter().skip(1).enumerate() {
|
||||
part[i] = re_match.unwrap().as_str().parse::<i32>().unwrap();
|
||||
}
|
||||
parts.push(part);
|
||||
}
|
||||
}
|
||||
}
|
||||
let sum1 = parts.iter()
|
||||
.filter(|&part| check_part(&workflows, part))
|
||||
.fold(0, |acc, part| acc + part.iter().sum::<i32>());
|
||||
let sum2 = count_options(&workflows, "in", &[(1..4001), (1..4001), (1..4001), (1..4001)]);
|
||||
let elapsed = time_start.elapsed().as_micros();
|
||||
let elapsed_no_io = time_start_no_io.elapsed().as_micros();
|
||||
println!("Time: {}us", elapsed);
|
||||
println!("Time without file i/o: {}us", elapsed_no_io);
|
||||
println!("Sum1: {}", sum1);
|
||||
println!("Sum1: {}", sum2);
|
||||
}
|
Loading…
Reference in New Issue
Block a user