Compare commits
3 commits
823b56e695
...
526f9a0dc9
Author | SHA1 | Date | |
---|---|---|---|
|
526f9a0dc9 | ||
|
b6bdd16242 | ||
|
68fa0587fe |
9 changed files with 1121 additions and 12 deletions
|
@ -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}
|
742
res/19/input
Normal file
742
res/19/input
Normal file
|
@ -0,0 +1,742 @@
|
|||
fxr{x>387:R,a<752:R,s>1381:fb,sn}
|
||||
dds{m<1139:jr,s<1864:jct,R}
|
||||
dt{m<2896:vr,xt}
|
||||
sz{s<1606:cnp,R}
|
||||
zzb{m<3467:rnc,s>3815:R,qqs}
|
||||
kh{m<3815:A,s>592:R,A}
|
||||
jj{x<2953:sfj,m>549:R,A}
|
||||
qzl{x>2819:gvl,s<3517:xz,s<3728:htx,fsq}
|
||||
xz{a<1471:gxc,mp}
|
||||
dlv{s>1732:A,x>704:tzs,fq}
|
||||
jh{m>1781:R,R}
|
||||
tzn{x<275:R,m>3397:R,kcv}
|
||||
vdl{s<1312:ppg,s<1688:bd,m>1062:jmk,zbh}
|
||||
zm{m<2770:vb,thf}
|
||||
dxd{a>3268:R,m<3138:R,s>515:R,A}
|
||||
mrv{a<3117:A,R}
|
||||
ngd{m<796:A,x>809:A,x>685:R,A}
|
||||
fzd{s>1412:qcj,A}
|
||||
xtl{m<2980:kjb,m<3130:dxn,R}
|
||||
fsg{s>1661:rm,zmt}
|
||||
zt{m<3631:A,a>993:A,m<3685:R,R}
|
||||
bn{s>2462:A,R}
|
||||
znn{s<2343:mb,kzn}
|
||||
hgd{s<2100:cx,A}
|
||||
bgk{x<3493:R,dl}
|
||||
kq{x<1598:crq,m>3282:brb,a>1327:A,A}
|
||||
mvb{x>1700:A,R}
|
||||
dfg{a>1208:brc,m<952:hmk,tmk}
|
||||
pcb{m>710:zrc,x>2685:A,tdg}
|
||||
bqq{m>1206:ckf,s<3406:nkt,m<739:fqg,fch}
|
||||
xrg{a>1435:R,x>3728:A,x<3711:knr,zhj}
|
||||
gd{s<639:R,x>800:R,m>3655:A,A}
|
||||
ds{s<3740:zqv,x<3251:R,a>1748:lb,fl}
|
||||
ff{s>3133:A,m>2918:R,m>2744:A,A}
|
||||
klt{s<780:A,x<2427:R,a>1562:A,A}
|
||||
hs{x>2064:R,A}
|
||||
qcj{s<1497:A,s<1512:A,R}
|
||||
kc{s<1570:A,R}
|
||||
lzr{a<2023:R,A}
|
||||
mms{s>2760:A,m<916:zb,mq}
|
||||
kks{s>1321:df,x>1286:mfj,hgx}
|
||||
dh{x<2779:A,m>572:R,R}
|
||||
bc{s>2724:R,a<262:R,R}
|
||||
hn{s>2717:R,m>3726:fkv,m>3413:sq,R}
|
||||
cx{s>778:A,m>1497:R,A}
|
||||
gvn{a<3079:R,m<3064:R,A}
|
||||
lsm{a<3319:lz,m<929:xc,R}
|
||||
jv{m<276:A,R}
|
||||
nmr{x<3119:cl,xqj}
|
||||
hnj{m<554:zx,s>2350:A,x<3578:cxl,rbh}
|
||||
tr{s<179:A,A}
|
||||
zr{s<2483:A,A}
|
||||
fn{x<3543:A,R}
|
||||
jpz{s<253:A,m<272:A,x>2789:A,A}
|
||||
hq{s<1702:mqn,x<3035:cqm,m>866:sj,lzr}
|
||||
lz{a>2980:R,s<3374:A,m<1157:A,R}
|
||||
hrx{a>869:R,m<2843:A,s<2361:R,A}
|
||||
sjd{s>3443:A,a<3057:nvj,x<740:A,A}
|
||||
xb{x>920:lpj,a<523:A,x<382:A,A}
|
||||
pxh{s>526:A,A}
|
||||
qd{x>1997:R,s>2030:R,x>1917:A,R}
|
||||
xl{a<192:rv,vdr}
|
||||
jbx{a>3649:R,mvb}
|
||||
vh{a>1478:R,m<3088:A,A}
|
||||
nd{x>2524:A,m<1268:R,A}
|
||||
zrc{a>1035:A,A}
|
||||
hjk{s>1250:dnn,a>1163:ndf,m>1379:zcv,rjb}
|
||||
bp{s>1723:mxk,hjp}
|
||||
nvj{s<2798:R,m<1158:R,s>3174:A,R}
|
||||
rxx{x<2792:A,s>351:R,R}
|
||||
kdj{m>2780:A,A}
|
||||
tzs{s>844:R,R}
|
||||
fr{m>3789:R,a>1717:R,m>3644:R,R}
|
||||
bvq{x<3598:qxz,x>3763:npf,x<3701:cc,xrg}
|
||||
clj{s<3489:qt,a>1043:R,s<3828:R,A}
|
||||
brb{s>809:R,R}
|
||||
fnd{a>1376:R,m>2369:A,R}
|
||||
xhx{a>1184:R,s<2676:R,m<3079:R,A}
|
||||
zrk{x<451:nb,A}
|
||||
dhg{s<3172:A,a>1399:R,x<2368:A,A}
|
||||
tg{x<1271:nk,zdg}
|
||||
mm{s>2916:gg,rxj}
|
||||
hpx{a>862:A,m<787:vsv,a<807:cfh,xpb}
|
||||
fts{x<2853:dds,m>1519:sx,s<1369:dhz,mms}
|
||||
sdk{s<1095:A,s<1756:R,A}
|
||||
tmk{x<3193:R,s>3521:A,A}
|
||||
drj{m>1575:hpd,x>605:hgd,s<1335:kgm,fg}
|
||||
jlt{m>2719:R,m<2606:R,x>325:R,R}
|
||||
vsq{x<1755:A,s<2371:R,A}
|
||||
pc{a>2493:rg,a>2002:gq,bp}
|
||||
svq{m>2556:A,x>2672:A,s<2453:R,R}
|
||||
sqh{a<1445:js,s>1591:R,s>1477:R,A}
|
||||
grb{s>2580:lsm,a<3313:rt,hk}
|
||||
rqg{s<3949:A,A}
|
||||
zpd{s>794:A,x<2667:A,R}
|
||||
rqt{a>1658:mx,a<777:dxq,s<2616:hjk,pkm}
|
||||
gtb{s>3730:R,s<3589:A,s<3676:A,A}
|
||||
zlh{x<1712:R,a>427:R,x<1771:sdk,cm}
|
||||
td{m>3499:A,m>3414:gt,a<494:A,kgq}
|
||||
dgt{a>825:ct,pxh}
|
||||
km{s>654:nqs,nmn}
|
||||
ppg{m>1247:A,A}
|
||||
slk{x>2763:A,x<2485:R,s<966:R,R}
|
||||
trv{x>539:sjd,x<264:cfd,a>2787:bqq,lpr}
|
||||
snv{s>305:A,x<556:A,s<183:R,A}
|
||||
gg{s<3016:A,s<3084:A,R}
|
||||
dns{m>3482:fzd,xvg}
|
||||
sq{x<2606:A,a>322:A,x<2839:A,A}
|
||||
pvk{s>1304:A,m<2685:A,R}
|
||||
rxq{m>2599:qg,m<2492:bq,zq}
|
||||
pn{a<589:R,m>1655:A,a>992:R,A}
|
||||
lv{m<3175:vf,a<3191:vt,x<751:cn,jbx}
|
||||
ct{s<558:snv,a<1249:dzx,jvt}
|
||||
dzx{m<2863:R,a>1097:A,A}
|
||||
js{m<512:A,A}
|
||||
fpr{a<986:R,x<2658:R,A}
|
||||
gz{a<1509:A,x<3783:A,R}
|
||||
zjm{a>1035:A,m<3225:A,A}
|
||||
xsm{a<1660:R,a<1844:R,x>2014:A,A}
|
||||
mls{m>424:ln,zrk}
|
||||
grj{x>1079:A,A}
|
||||
kn{s>142:R,a<1016:R,A}
|
||||
mxk{a<1780:A,a>1859:R,m>3461:A,R}
|
||||
vn{s<1454:sl,R}
|
||||
njz{m<1859:R,A}
|
||||
dzk{x>3558:kcd,nf}
|
||||
zsk{a>476:A,x>530:ngd,x>267:cfl,A}
|
||||
zd{m>616:R,s>838:ddb,A}
|
||||
qxk{m>2824:qkg,qx}
|
||||
nrr{m>1084:A,s>971:R,s>789:A,A}
|
||||
hm{m>3025:vfv,nz}
|
||||
lpj{m>3793:R,s>1805:A,R}
|
||||
mf{x<2463:R,s<3847:zjt,rqg}
|
||||
gvj{s>223:zkv,x<3876:kn,a>1010:R,dr}
|
||||
fbs{x<3091:qdb,mxf}
|
||||
psz{m>3320:fpr,m>3250:R,x<2725:tq,R}
|
||||
jhj{m>3760:A,m>3731:A,A}
|
||||
gt{m<3463:R,x<722:A,R}
|
||||
hx{m>886:A,m>732:A,A}
|
||||
kg{x>3062:jsh,R}
|
||||
bxh{m>1510:A,a>677:A,m>1488:R,R}
|
||||
vfv{s>3630:A,a<1123:A,m<3122:R,R}
|
||||
tv{s>2870:pmp,m>1164:qj,bc}
|
||||
bnz{s>2128:ktr,vdl}
|
||||
cjd{m>2809:R,R}
|
||||
rf{a<1243:R,m>2603:R,A}
|
||||
mfs{x>3237:A,A}
|
||||
xh{m>3128:R,s<3715:R,A}
|
||||
jp{a>2848:fhg,s>2879:A,R}
|
||||
rh{s<180:xst,a>1234:xsm,qnj}
|
||||
ndh{x>3590:A,A}
|
||||
qxz{m>1434:xr,s<417:jds,x>3320:A,ffq}
|
||||
sdj{a>703:R,s>233:A,m>1528:A,A}
|
||||
csm{x>2471:R,s>3581:A,R}
|
||||
ps{x>2328:A,A}
|
||||
mnl{s<3342:xjb,x>2880:zn,hg}
|
||||
sg{s>3292:vl,vsz}
|
||||
nc{s>863:R,A}
|
||||
fv{a>724:R,a<329:R,A}
|
||||
qr{a>985:R,x>2015:R,x>1932:R,A}
|
||||
rdl{s<1344:A,s>2529:mj,s>2040:A,R}
|
||||
xc{m<479:R,m>684:R,a<3738:A,R}
|
||||
zbh{m<549:R,a<2124:R,a<3008:xx,vgc}
|
||||
md{s>824:A,s>535:A,A}
|
||||
vs{a<3669:R,s<2516:R,m>3794:A,R}
|
||||
zj{a>3051:R,R}
|
||||
mqn{m>1072:mfs,a>2014:A,m>664:jrv,nsk}
|
||||
fkv{m>3849:A,s<2506:A,R}
|
||||
lxq{a>1465:R,s<3588:A,x>2736:R,A}
|
||||
zrn{m<2517:qjr,s<2143:gc,zs}
|
||||
kx{x<2618:gcr,a>458:rrm,slm}
|
||||
crq{m<3432:R,m>3631:R,R}
|
||||
ntx{m<153:A,a>1706:A,A}
|
||||
llr{x>1921:A,a>1003:R,R}
|
||||
hcr{s>3586:R,x<2442:R,A}
|
||||
hzs{a>3176:R,R}
|
||||
jkv{m<3505:R,s<3505:A,R}
|
||||
xk{m>2872:A,s>1806:R,m>2825:R,R}
|
||||
fq{x>604:A,x>560:A,A}
|
||||
mhr{s<533:R,m<3751:R,m<3850:R,A}
|
||||
rbh{a<507:R,A}
|
||||
tnl{a<962:R,m>1767:A,R}
|
||||
qtk{m<1445:A,s>1979:A,x>1611:A,A}
|
||||
gvl{s<3240:dbz,x>3507:nx,a<1452:kg,vj}
|
||||
xj{m>1276:A,m>739:A,a<2261:A,A}
|
||||
tlp{x>2776:R,x>2418:A,m<2983:A,A}
|
||||
tq{s>3596:R,a<1059:R,R}
|
||||
zz{x>362:tk,a<688:R,A}
|
||||
rt{m<1209:A,a>3063:hzs,a>2949:A,R}
|
||||
kcv{a<3269:R,x>395:R,R}
|
||||
ddb{x>3833:R,a>970:R,m>251:R,A}
|
||||
hk{m>1324:njz,A}
|
||||
sm{s<2928:A,x<2433:A,R}
|
||||
vr{s<2227:qsq,x>3540:qc,A}
|
||||
tn{s<3175:R,s<3690:A,a>908:R,R}
|
||||
ln{s<3229:A,s>3702:fv,cj}
|
||||
hql{m<2948:lh,m<3270:vlh,nmr}
|
||||
txr{a<949:chl,xcv}
|
||||
zdg{s<880:qq,mrv}
|
||||
mb{m>2828:md,x>3659:mhl,R}
|
||||
slm{s<3600:R,a>231:txt,R}
|
||||
in{x>2187:rqt,zrn}
|
||||
cdj{m>3680:A,A}
|
||||
zn{x<3349:R,s>3779:A,R}
|
||||
nh{m>3074:A,s>3081:nfz,s>2486:jlt,hrx}
|
||||
nxh{s<467:rh,sp}
|
||||
ml{x<3377:R,a>1817:R,R}
|
||||
pj{a>1449:A,fnd}
|
||||
xkx{m>478:gx,s<1114:kb,R}
|
||||
tf{x<2576:lmr,m>3034:R,qmn}
|
||||
dr{a<958:A,A}
|
||||
gbz{x>3659:R,A}
|
||||
cj{s<3426:A,A}
|
||||
tfj{s<3594:R,s>3615:R,x>2437:R,A}
|
||||
ckf{a>3590:R,x>438:A,s<3110:R,A}
|
||||
rkv{s<958:A,x>2427:R,A}
|
||||
gs{a<322:A,m<1834:A,A}
|
||||
pv{s<1719:R,a>185:R,A}
|
||||
kd{m>3623:R,a>3055:A,A}
|
||||
vt{x<774:A,m>3551:mrs,R}
|
||||
dzl{m>1548:R,m<832:A,R}
|
||||
dbz{m>2501:hp,m>1237:fn,x<3271:R,A}
|
||||
vl{s>3563:A,R}
|
||||
sp{x>2041:jjj,m>3338:pd,a>672:R,ns}
|
||||
mcc{a>843:kfc,m<3321:xtl,m<3672:td,xb}
|
||||
sgv{x<2402:qgn,a<1075:A,csm}
|
||||
bst{a>1595:jjx,nh}
|
||||
dnn{a<1179:fbs,ck}
|
||||
lm{m>1644:R,m>950:R,m>453:A,R}
|
||||
jds{x>3345:R,A}
|
||||
xr{x>3440:A,x>3338:A,m>2689:R,A}
|
||||
sl{s<1413:R,m>3475:A,s<1439:A,R}
|
||||
htb{s>3626:A,s<3564:dpm,a<1533:smk,tfj}
|
||||
hh{m>3184:pz,x<1598:hth,s<1273:R,kdj}
|
||||
df{s<1339:R,a>712:R,A}
|
||||
fl{m<373:R,m<825:R,A}
|
||||
cqs{m>3246:hn,a>438:mmj,s>2690:mm,bdg}
|
||||
cm{m>3143:A,a<271:R,A}
|
||||
lnp{s<2823:R,a>1198:R,A}
|
||||
dpm{x<2406:A,R}
|
||||
rnc{x<1260:A,A}
|
||||
kf{x<2523:A,gsc}
|
||||
st{a<984:A,x>3040:R,A}
|
||||
grh{a<968:vsq,x<1710:R,x>1980:pft,A}
|
||||
mxf{m>2589:R,s<1878:A,A}
|
||||
tlr{x>212:R,m<1300:lmz,x>134:R,A}
|
||||
pmp{s>2984:R,x<2750:R,A}
|
||||
kgm{s>684:bxh,sdj}
|
||||
nz{s>3680:A,x<2711:R,A}
|
||||
hj{m>468:R,a>1334:A,jpz}
|
||||
nsk{s<606:R,R}
|
||||
gc{a>1942:tg,x>1452:cvq,s<1213:kps,rlm}
|
||||
rjb{x>3046:rcm,bzs}
|
||||
nn{a>893:A,R}
|
||||
dpt{s>3560:R,qhc}
|
||||
vkn{s>3622:A,a<976:R,R}
|
||||
kl{s>3176:R,A}
|
||||
zmt{m<3605:fck,a<750:A,A}
|
||||
bd{s>1443:R,xj}
|
||||
jjx{s<3339:lfz,s>3750:srf,A}
|
||||
rkt{s>1835:A,x>2035:R,m<3485:A,R}
|
||||
nhc{x>2569:R,R}
|
||||
mrs{x>1458:A,x<1018:A,A}
|
||||
bq{x>2850:A,x>2439:A,R}
|
||||
rxn{s>2537:R,x>2737:R,a<289:A,A}
|
||||
nzg{m<636:R,a>790:A,A}
|
||||
rpj{s<1966:A,s>2074:A,x>2072:A,R}
|
||||
xf{s<815:msz,m<1861:sz,hcq}
|
||||
qx{m<2037:bf,m<2524:R,A}
|
||||
rxj{s<2816:R,x<2803:A,A}
|
||||
zf{x<2538:jc,m<3187:hm,psz}
|
||||
vv{a<1290:nrr,m>1076:slk,a>1321:hx,A}
|
||||
px{x>115:R,A}
|
||||
jr{m<598:R,x>2591:R,A}
|
||||
kjb{a<384:A,a>621:A,R}
|
||||
hz{s<2399:ffj,trv}
|
||||
vf{x<945:A,bn}
|
||||
lf{m>1109:hsd,s<2503:sh,s<3454:jj,ds}
|
||||
hsd{s<1932:A,x<3025:ch,A}
|
||||
jtr{s<142:R,a>1018:cr,qss}
|
||||
vg{m<3527:A,m<3758:R,a<349:R,R}
|
||||
jrv{a>1928:R,x<3118:A,a>1902:R,A}
|
||||
qdb{x>2536:tnl,jrn}
|
||||
rz{m>3013:pc,rxq}
|
||||
jnd{a<699:R,s>1253:A,a>1511:R,A}
|
||||
xcv{m<3557:A,a>1498:fr,m>3708:kh,gd}
|
||||
nr{s>498:dh,x>2708:R,s>242:A,A}
|
||||
vlh{s>2857:R,a<981:R,s>2724:zk,xhx}
|
||||
qkg{a<943:nbb,zjm}
|
||||
pzg{m>3036:gp,pk}
|
||||
qvg{m<3693:sk,s<3471:pvg,jcb}
|
||||
jc{a>1089:A,xh}
|
||||
vch{a<1432:zpd,m<2773:km,s>505:fhn,kf}
|
||||
xzk{m>2079:A,x<470:R,A}
|
||||
rlm{s>1542:mcc,x<662:pzg,x>1156:lgp,dns}
|
||||
dfc{m>2382:R,A}
|
||||
pvc{s<2759:A,s>3572:A,m<1375:R,R}
|
||||
vb{s>1675:qr,m<2628:A,x<1961:pvk,hs}
|
||||
vgc{s>1902:R,A}
|
||||
knn{x>2559:A,s<2146:R,m<3157:R,R}
|
||||
pls{a>1057:A,R}
|
||||
sfj{x>2695:A,R}
|
||||
cvq{x<1846:tj,s<1069:nxh,m>3148:fsg,zm}
|
||||
npf{a>1493:A,a<1330:A,a<1421:A,R}
|
||||
qgn{x<2318:R,m<2680:A,m>2804:R,R}
|
||||
ck{s>2096:pdc,x>3055:bx,m>1372:tf,sqh}
|
||||
fck{s<1426:R,A}
|
||||
bk{s>2778:R,m>844:R,A}
|
||||
drx{x<2517:sgv,dpt}
|
||||
pq{s<642:R,R}
|
||||
zcv{s<576:vrs,qxk}
|
||||
mj{m>1761:A,m<1570:A,m>1692:A,A}
|
||||
dfk{m<3042:R,R}
|
||||
knr{a>1293:R,R}
|
||||
szf{x<370:R,R}
|
||||
hjp{a<1852:A,R}
|
||||
qf{x<753:bst,sg}
|
||||
nmn{a<1510:A,m<2097:A,s>242:R,R}
|
||||
zq{x>2996:A,a<3146:lts,svq}
|
||||
smk{s>3585:A,A}
|
||||
ph{s>677:A,a>963:mv,s<316:nn,A}
|
||||
vrs{s<292:jtr,vdk}
|
||||
vzq{x<445:A,A}
|
||||
dxz{m<675:R,R}
|
||||
hgx{m<3378:R,x<1215:R,A}
|
||||
kzn{x<3718:fxt,x>3812:A,a<649:nzc,A}
|
||||
zgq{a>1606:R,m>3298:A,A}
|
||||
sh{a>1766:ml,m>411:A,x>3272:ndh,ntx}
|
||||
jmk{m>1801:dmh,a<2515:R,qtk}
|
||||
qc{x>3775:R,a<254:R,A}
|
||||
vz{a<1402:A,R}
|
||||
kps{m<3310:dgt,txr}
|
||||
chl{x<880:cdj,m>3584:mhr,grj}
|
||||
hnt{m>2869:A,A}
|
||||
vrq{m<391:A,s>728:A,x<3519:R,R}
|
||||
xvg{a>799:A,x<882:hnt,xqq}
|
||||
kfd{s<3625:R,s<3792:R,a>1104:R,R}
|
||||
lgc{m<859:llr,R}
|
||||
hlc{a>1087:A,a<562:R,R}
|
||||
kfc{a<1396:A,s<1784:A,tsc}
|
||||
cr{x<3091:R,R}
|
||||
bdg{m>2790:rxn,A}
|
||||
nfz{x<462:R,x<620:A,A}
|
||||
tc{a<597:A,A}
|
||||
sr{a>1117:dfg,a<915:lcl,mnl}
|
||||
cn{m>3623:vs,x>327:stz,A}
|
||||
qq{a<2978:hxd,a>3368:R,a<3205:gvn,dxd}
|
||||
vj{m<1523:A,mcq}
|
||||
tsc{x>688:A,A}
|
||||
vsz{x>1670:R,m<3429:mdc,xn}
|
||||
clt{x>3309:R,x<3040:R,A}
|
||||
fxt{x<3470:R,a>608:R,a>547:R,R}
|
||||
htx{x>2607:gvq,m<1444:htb,pj}
|
||||
fjs{m<2300:A,m<2373:A,px}
|
||||
nbb{a<878:A,R}
|
||||
rrm{a<652:R,pvj}
|
||||
dxn{a<400:R,A}
|
||||
fhn{a>1534:zgq,m<3262:dgx,m>3663:R,nc}
|
||||
gj{s<3492:A,m>2866:R,R}
|
||||
lcl{a>848:qv,x<2916:zcp,kz}
|
||||
rrz{m<1945:R,s>358:R,A}
|
||||
sj{s<3166:njn,hf}
|
||||
thf{s<1521:A,m>2938:dfk,a<1001:xk,bs}
|
||||
lts{a<2459:R,m<2530:A,x<2496:A,R}
|
||||
fsq{m<1600:mf,dmj}
|
||||
dxg{s>2375:mls,cp}
|
||||
qz{m<2151:lqj,x>537:dlv,x>300:fxr,fjs}
|
||||
sf{s<541:hj,a>1380:bt,m<538:mfb,vv}
|
||||
tdg{a<1031:A,R}
|
||||
pft{x<2060:R,a<1308:R,s<2438:R,A}
|
||||
rmd{x>2881:lk,qvg}
|
||||
cfh{x<3792:R,R}
|
||||
srf{a>2141:A,x<268:A,R}
|
||||
qj{m<1485:R,s>2769:A,A}
|
||||
qvx{s<3612:gj,bgk}
|
||||
msz{m>1978:tlp,rxx}
|
||||
pkm{a>1336:qzl,m<2346:sr,m>3445:rmd,pkh}
|
||||
jrn{m<1804:R,m<2588:R,A}
|
||||
nqs{s>1016:A,A}
|
||||
rtx{m<1176:R,m<1507:bcn,a>292:vjm,zr}
|
||||
lgp{s>1365:vn,s>1283:kks,jnd}
|
||||
cl{m>3382:A,A}
|
||||
jct{m<1542:R,s>897:A,m>1926:R,A}
|
||||
gp{m<3394:R,s>1431:A,szf}
|
||||
nf{a>545:A,a>415:A,R}
|
||||
bx{m<1737:A,vh}
|
||||
mdc{s<2717:R,x>1320:A,A}
|
||||
gth{m<900:A,R}
|
||||
jjj{s<668:A,m<3223:A,x>2117:R,A}
|
||||
qqs{x>1370:R,x<634:A,s<3751:R,A}
|
||||
cfd{m>1163:tt,m<540:jv,x<125:A,R}
|
||||
hcl{m<2815:A,A}
|
||||
fz{s>2594:tv,rtx}
|
||||
zkv{m>688:R,m>414:R,m>222:A,A}
|
||||
tk{a>654:A,A}
|
||||
fb{a>1065:A,A}
|
||||
cxl{a<593:A,a>657:R,m<880:A,R}
|
||||
xn{m<3765:R,a>1121:A,A}
|
||||
vdk{m>2574:R,s>477:st,rrz}
|
||||
zs{a>2464:nl,qf}
|
||||
xqq{s>1384:A,a<354:A,m>3046:A,R}
|
||||
nzc{a<598:A,s<3148:R,R}
|
||||
pct{s>2183:R,a<1518:R,A}
|
||||
nl{s>3041:fvr,lv}
|
||||
sk{s>3236:kfd,R}
|
||||
lmr{m<2601:R,a>1422:A,m>3266:R,R}
|
||||
zsj{s<2295:xf,s>3148:kx,m>1925:cqs,fz}
|
||||
rv{x<3564:A,s>2553:A,R}
|
||||
cqb{m>1544:A,m<1535:A,s>2351:A,R}
|
||||
qnj{a<592:R,a<853:R,R}
|
||||
gsc{a<1578:A,R}
|
||||
dhz{m>953:R,vrq}
|
||||
ffq{a>1434:R,a>1308:R,R}
|
||||
zqv{x>2889:R,R}
|
||||
pk{s>1393:hcl,m<2713:R,x<325:hlc,R}
|
||||
mhl{s<1312:A,m>2356:R,A}
|
||||
qhc{a>1046:A,m<2557:A,A}
|
||||
vsv{a>830:R,R}
|
||||
mcq{a>1556:A,s<3584:A,m<3077:R,A}
|
||||
ss{s>785:A,s>309:R,a<991:A,tr}
|
||||
xpb{m<1158:A,a>840:R,s<277:A,A}
|
||||
gcr{s<3558:gs,R}
|
||||
rg{a>3475:A,s>2442:R,R}
|
||||
rcm{x<3644:ph,s>454:zd,a<918:hpx,gvj}
|
||||
zb{x<3303:A,s>2217:R,x<3658:R,A}
|
||||
kdp{x<362:tlr,gmc}
|
||||
ktr{a>1904:jp,x<1408:pvc,s<2789:grh,lgc}
|
||||
gxc{x>2599:A,m<2068:dhg,m<3120:vz,rzd}
|
||||
hg{a>1032:hcr,x>2532:A,m>1001:R,vkn}
|
||||
cqm{x>2686:A,s<2691:R,R}
|
||||
txt{s>3799:A,x<2877:R,R}
|
||||
rm{a<1221:rpj,s>1945:qd,rkt}
|
||||
zk{m>3150:R,x<3068:A,A}
|
||||
jsh{s>3499:R,R}
|
||||
zx{s>2688:R,m>212:A,R}
|
||||
bt{x>2795:R,s<912:klt,s>1027:dxz,rkv}
|
||||
lfz{x>354:A,A}
|
||||
qsq{x>3672:R,m<2539:A,A}
|
||||
hth{s<894:A,a>1762:R,R}
|
||||
sx{x<3576:clt,A}
|
||||
xst{m<3436:A,R}
|
||||
fx{s>3411:gtb,x<3262:zt,A}
|
||||
kb{s<576:A,A}
|
||||
stz{x<538:R,A}
|
||||
cfl{a<288:R,A}
|
||||
nx{s>3743:A,s>3424:lm,s>3354:vc,gz}
|
||||
vc{m<2127:R,A}
|
||||
kz{a<802:R,x>3343:R,s<3157:R,A}
|
||||
cp{m<550:zz,s>1058:vzq,zsk}
|
||||
ptn{a<330:xl,m>1216:rdl,s<1500:dzk,hnj}
|
||||
qbn{m>1670:R,s<444:A,x<3665:R,R}
|
||||
qv{a<882:dzl,m<1431:gth,a<900:vk,tn}
|
||||
pd{x>1973:R,R}
|
||||
fvr{s<3633:jxd,zzb}
|
||||
hp{x<3528:R,a>1546:A,x>3734:A,R}
|
||||
dxq{x>3246:jcs,zsj}
|
||||
lqj{m>1939:xzk,R}
|
||||
qjr{x>955:bnz,a>1343:hz,m<1178:dxg,qqq}
|
||||
dmf{m>1992:A,a<1865:R,A}
|
||||
rzd{s<2980:R,s<3176:A,R}
|
||||
jn{a>2806:grb,a>2170:fts,a<1863:lf,hq}
|
||||
lk{m>3740:clj,fx}
|
||||
lh{s>3014:A,a<1066:A,x>3035:rf,lnp}
|
||||
pdc{x<3382:R,s>2340:R,a<1441:A,pct}
|
||||
hxd{m>3095:A,A}
|
||||
qmn{s<1644:R,A}
|
||||
xqj{s<3059:R,A}
|
||||
mmj{x>2544:pbq,s>2822:rq,m>2713:ps,tc}
|
||||
mq{a>2494:R,R}
|
||||
pkh{s<3318:hql,x>2874:qvx,m<2884:drx,zf}
|
||||
cc{m<2619:qbn,m>3237:ls,a>1363:R,gbz}
|
||||
bs{m<2841:A,s>1819:A,A}
|
||||
rq{a<611:R,a>685:R,R}
|
||||
ffj{m>1170:mbv,xkx}
|
||||
lmz{m<1255:A,s>1599:A,s<833:R,R}
|
||||
mfj{m<3463:R,m>3773:R,x<1389:A,R}
|
||||
ns{a<309:A,x>1942:R,A}
|
||||
gx{x>485:R,x>184:A,a>2713:R,A}
|
||||
xt{x>3687:pv,A}
|
||||
bdr{m<3074:A,R}
|
||||
lb{x<3626:A,A}
|
||||
hcq{m<3054:kc,vg}
|
||||
zhj{m<2308:R,s>657:A,A}
|
||||
zjt{m<811:R,A}
|
||||
kcd{x>3716:A,x<3658:A,R}
|
||||
xjb{x<3023:nd,s<2914:bk,a>1026:pls,A}
|
||||
pvj{s<3618:A,R}
|
||||
njn{a<2025:A,A}
|
||||
bzs{x<2498:ss,a>925:pcb,nr}
|
||||
lpr{a>2156:A,a>1708:A,A}
|
||||
qt{s<2992:R,A}
|
||||
brc{a>1274:A,m<1235:A,A}
|
||||
tj{a<1086:zlh,a>1462:hh,kq}
|
||||
mp{s>3203:A,m<2433:R,sm}
|
||||
fch{m<902:A,m>1042:R,R}
|
||||
tt{s<3117:R,a<2593:A,m<1794:R,R}
|
||||
mfb{s>899:A,R}
|
||||
ls{a>1464:R,s>707:A,s<275:A,R}
|
||||
hf{x<3413:R,s>3585:A,m>1596:A,R}
|
||||
jxd{s>3256:jkv,m>3335:kd,ff}
|
||||
gmc{a<826:A,R}
|
||||
hmk{a>1154:A,A}
|
||||
fjb{m<1554:R,s>3071:R,R}
|
||||
qqq{m>1695:qz,m>1456:drj,kdp}
|
||||
fg{m<1522:A,a>520:cqb,s>2397:fjb,A}
|
||||
qg{a<2533:cjd,s>2230:R,a<3328:zj,R}
|
||||
dgx{m<3008:R,R}
|
||||
zcp{a>806:R,m<1282:nzg,A}
|
||||
bf{m<1701:R,s<947:A,a<915:R,R}
|
||||
vjm{s>2448:R,x<2795:R,A}
|
||||
jvt{s<984:R,R}
|
||||
nkt{m<465:A,R}
|
||||
jcs{m<2095:ptn,a<511:dt,znn}
|
||||
pz{a>1750:R,A}
|
||||
sn{s<885:A,x<335:R,R}
|
||||
dmj{m>3082:A,s>3831:A,dfc}
|
||||
jcb{s>3713:A,nhc}
|
||||
xx{x<1726:R,s<1933:R,A}
|
||||
hpd{s>1881:A,m<1645:R,m>1662:pq,pn}
|
||||
xp{x<3212:R,x<3735:R,m<3680:A,R}
|
||||
fhg{x>1483:A,a>3298:R,A}
|
||||
mx{m<2349:jn,rz}
|
||||
qss{m>3082:R,s>205:A,R}
|
||||
nb{a>633:R,R}
|
||||
mv{m>674:A,A}
|
||||
vk{x<2918:R,A}
|
||||
bcn{a<407:R,s<2493:A,R}
|
||||
pbq{m<2422:A,A}
|
||||
dl{s>3818:R,a>1030:A,A}
|
||||
dmh{a<2446:R,s<1865:A,x<1709:A,R}
|
||||
ndf{x>3135:bvq,m<1374:sf,vch}
|
||||
mbv{a>2892:jh,x<629:dmf,R}
|
||||
cnp{s>1241:R,A}
|
||||
fqg{s<3752:A,x>380:R,A}
|
||||
kgq{x<654:R,m<3379:R,A}
|
||||
ch{m>1843:A,m>1397:R,R}
|
||||
gvq{m<2229:A,lxq}
|
||||
gq{m>3374:xp,x>3269:A,a<2230:R,knn}
|
||||
pvg{x<2553:kl,m>3879:A,jhj}
|
||||
vdr{s>1460:A,A}
|
||||
nk{x<497:tzn,bdr}
|
||||
|
||||
{x=1344,m=7,a=841,s=655}
|
||||
{x=349,m=44,a=343,s=2649}
|
||||
{x=746,m=22,a=1245,s=147}
|
||||
{x=1293,m=341,a=231,s=38}
|
||||
{x=1730,m=1036,a=212,s=309}
|
||||
{x=14,m=1402,a=1521,s=1297}
|
||||
{x=583,m=618,a=1081,s=831}
|
||||
{x=2278,m=1047,a=857,s=1119}
|
||||
{x=87,m=1659,a=175,s=376}
|
||||
{x=149,m=524,a=1025,s=669}
|
||||
{x=1208,m=709,a=494,s=1877}
|
||||
{x=1791,m=1443,a=767,s=491}
|
||||
{x=571,m=3666,a=675,s=613}
|
||||
{x=1038,m=1625,a=418,s=240}
|
||||
{x=1365,m=2734,a=385,s=867}
|
||||
{x=2713,m=127,a=2637,s=428}
|
||||
{x=714,m=976,a=2819,s=520}
|
||||
{x=395,m=462,a=799,s=369}
|
||||
{x=2421,m=2679,a=81,s=2634}
|
||||
{x=542,m=1258,a=54,s=2221}
|
||||
{x=1628,m=125,a=767,s=934}
|
||||
{x=1329,m=58,a=1566,s=1925}
|
||||
{x=37,m=230,a=489,s=2915}
|
||||
{x=2842,m=1518,a=200,s=514}
|
||||
{x=1144,m=55,a=2330,s=6}
|
||||
{x=302,m=347,a=1906,s=2678}
|
||||
{x=94,m=1910,a=1554,s=2994}
|
||||
{x=2266,m=853,a=1224,s=468}
|
||||
{x=58,m=36,a=1316,s=1623}
|
||||
{x=42,m=690,a=742,s=3281}
|
||||
{x=389,m=757,a=469,s=511}
|
||||
{x=1402,m=136,a=1401,s=2003}
|
||||
{x=911,m=1732,a=1039,s=2192}
|
||||
{x=1468,m=1436,a=322,s=1027}
|
||||
{x=363,m=1849,a=404,s=1642}
|
||||
{x=2474,m=1690,a=1435,s=1554}
|
||||
{x=1600,m=2719,a=441,s=208}
|
||||
{x=229,m=587,a=355,s=307}
|
||||
{x=668,m=1438,a=203,s=47}
|
||||
{x=2002,m=576,a=650,s=2785}
|
||||
{x=2040,m=735,a=517,s=2140}
|
||||
{x=1586,m=337,a=924,s=528}
|
||||
{x=971,m=641,a=79,s=138}
|
||||
{x=2262,m=708,a=2570,s=630}
|
||||
{x=159,m=1081,a=2184,s=109}
|
||||
{x=1966,m=43,a=57,s=2215}
|
||||
{x=2219,m=2151,a=609,s=614}
|
||||
{x=897,m=212,a=2484,s=650}
|
||||
{x=131,m=569,a=1297,s=606}
|
||||
{x=1890,m=1920,a=757,s=417}
|
||||
{x=2953,m=702,a=3238,s=1299}
|
||||
{x=111,m=191,a=3139,s=361}
|
||||
{x=99,m=149,a=18,s=281}
|
||||
{x=232,m=170,a=942,s=2884}
|
||||
{x=1998,m=423,a=684,s=37}
|
||||
{x=2591,m=2,a=149,s=1553}
|
||||
{x=1538,m=359,a=774,s=280}
|
||||
{x=1062,m=243,a=38,s=1991}
|
||||
{x=729,m=1491,a=169,s=810}
|
||||
{x=304,m=3158,a=2124,s=1770}
|
||||
{x=203,m=139,a=885,s=58}
|
||||
{x=62,m=419,a=83,s=1739}
|
||||
{x=1046,m=448,a=112,s=2881}
|
||||
{x=133,m=897,a=658,s=2968}
|
||||
{x=1150,m=1829,a=1683,s=2455}
|
||||
{x=2215,m=1609,a=525,s=1292}
|
||||
{x=7,m=820,a=300,s=72}
|
||||
{x=159,m=2927,a=337,s=301}
|
||||
{x=1237,m=470,a=1637,s=2072}
|
||||
{x=1898,m=168,a=2929,s=775}
|
||||
{x=216,m=2823,a=108,s=51}
|
||||
{x=1508,m=803,a=63,s=62}
|
||||
{x=930,m=90,a=220,s=187}
|
||||
{x=1112,m=78,a=1668,s=725}
|
||||
{x=570,m=1180,a=2015,s=1112}
|
||||
{x=1943,m=378,a=2345,s=2763}
|
||||
{x=2427,m=258,a=600,s=441}
|
||||
{x=2317,m=708,a=1108,s=183}
|
||||
{x=169,m=153,a=1666,s=1157}
|
||||
{x=721,m=1581,a=1487,s=1527}
|
||||
{x=321,m=3244,a=1751,s=67}
|
||||
{x=1691,m=2264,a=86,s=46}
|
||||
{x=1561,m=494,a=152,s=1832}
|
||||
{x=383,m=2150,a=20,s=1507}
|
||||
{x=311,m=1190,a=679,s=744}
|
||||
{x=600,m=865,a=1200,s=445}
|
||||
{x=2019,m=80,a=886,s=80}
|
||||
{x=1031,m=1503,a=390,s=27}
|
||||
{x=122,m=3010,a=947,s=2248}
|
||||
{x=1075,m=2302,a=620,s=1920}
|
||||
{x=390,m=653,a=837,s=415}
|
||||
{x=46,m=1948,a=116,s=1161}
|
||||
{x=1385,m=603,a=903,s=272}
|
||||
{x=1320,m=169,a=393,s=165}
|
||||
{x=1338,m=505,a=25,s=233}
|
||||
{x=220,m=1431,a=216,s=1804}
|
||||
{x=246,m=2975,a=1265,s=108}
|
||||
{x=652,m=1410,a=1054,s=614}
|
||||
{x=232,m=2082,a=2317,s=1503}
|
||||
{x=1697,m=225,a=24,s=313}
|
||||
{x=140,m=885,a=2597,s=1326}
|
||||
{x=789,m=1925,a=228,s=518}
|
||||
{x=456,m=902,a=81,s=1581}
|
||||
{x=2241,m=2249,a=629,s=1443}
|
||||
{x=30,m=289,a=909,s=542}
|
||||
{x=455,m=33,a=547,s=396}
|
||||
{x=629,m=471,a=1246,s=647}
|
||||
{x=1,m=1178,a=33,s=320}
|
||||
{x=358,m=1131,a=2958,s=773}
|
||||
{x=21,m=449,a=1148,s=1841}
|
||||
{x=1282,m=759,a=662,s=1436}
|
||||
{x=1668,m=466,a=997,s=3275}
|
||||
{x=150,m=3273,a=2261,s=1610}
|
||||
{x=2334,m=1559,a=1846,s=1977}
|
||||
{x=1388,m=321,a=1549,s=312}
|
||||
{x=1936,m=84,a=2290,s=1447}
|
||||
{x=877,m=1088,a=1209,s=286}
|
||||
{x=905,m=1204,a=540,s=2556}
|
||||
{x=505,m=1002,a=1827,s=1102}
|
||||
{x=250,m=881,a=1345,s=1985}
|
||||
{x=843,m=40,a=1618,s=1871}
|
||||
{x=485,m=1375,a=598,s=67}
|
||||
{x=40,m=1653,a=414,s=389}
|
||||
{x=598,m=320,a=202,s=2110}
|
||||
{x=1161,m=1336,a=1170,s=632}
|
||||
{x=487,m=227,a=234,s=2130}
|
||||
{x=157,m=654,a=1779,s=1091}
|
||||
{x=372,m=1982,a=238,s=131}
|
||||
{x=2305,m=1274,a=1266,s=2316}
|
||||
{x=280,m=13,a=3000,s=2368}
|
||||
{x=2114,m=3767,a=900,s=992}
|
||||
{x=2981,m=1005,a=1574,s=735}
|
||||
{x=2103,m=690,a=1271,s=2328}
|
||||
{x=175,m=1216,a=152,s=215}
|
||||
{x=39,m=1554,a=1293,s=3521}
|
||||
{x=1504,m=1077,a=517,s=619}
|
||||
{x=2679,m=770,a=2796,s=967}
|
||||
{x=1,m=1854,a=853,s=8}
|
||||
{x=1538,m=1407,a=873,s=1696}
|
||||
{x=85,m=2806,a=1525,s=426}
|
||||
{x=312,m=1626,a=471,s=81}
|
||||
{x=1428,m=656,a=485,s=1373}
|
||||
{x=204,m=430,a=2401,s=744}
|
||||
{x=2908,m=333,a=1120,s=72}
|
||||
{x=142,m=382,a=1228,s=12}
|
||||
{x=1132,m=2874,a=290,s=1321}
|
||||
{x=1048,m=1243,a=722,s=1280}
|
||||
{x=1502,m=278,a=905,s=210}
|
||||
{x=2785,m=676,a=423,s=2215}
|
||||
{x=1081,m=211,a=334,s=803}
|
||||
{x=910,m=20,a=621,s=378}
|
||||
{x=48,m=1739,a=324,s=1457}
|
||||
{x=567,m=905,a=1612,s=491}
|
||||
{x=2625,m=1047,a=631,s=521}
|
||||
{x=1877,m=1100,a=2296,s=994}
|
||||
{x=610,m=369,a=781,s=126}
|
||||
{x=2296,m=3098,a=759,s=627}
|
||||
{x=2390,m=1107,a=699,s=408}
|
||||
{x=187,m=2415,a=1346,s=493}
|
||||
{x=972,m=73,a=724,s=928}
|
||||
{x=1043,m=118,a=64,s=653}
|
||||
{x=620,m=537,a=2541,s=150}
|
||||
{x=918,m=160,a=53,s=230}
|
||||
{x=313,m=655,a=2019,s=128}
|
||||
{x=1373,m=615,a=1832,s=1137}
|
||||
{x=191,m=1495,a=476,s=267}
|
||||
{x=646,m=458,a=2324,s=26}
|
||||
{x=58,m=157,a=2613,s=781}
|
||||
{x=272,m=294,a=2026,s=1422}
|
||||
{x=7,m=313,a=213,s=789}
|
||||
{x=352,m=75,a=2648,s=437}
|
||||
{x=193,m=1677,a=160,s=1863}
|
||||
{x=1188,m=832,a=757,s=334}
|
||||
{x=563,m=312,a=1435,s=20}
|
||||
{x=940,m=558,a=954,s=557}
|
||||
{x=567,m=899,a=829,s=2068}
|
||||
{x=657,m=168,a=204,s=1320}
|
||||
{x=2212,m=2918,a=461,s=428}
|
||||
{x=149,m=898,a=6,s=981}
|
||||
{x=363,m=1021,a=852,s=2766}
|
||||
{x=18,m=131,a=290,s=534}
|
||||
{x=1502,m=37,a=1440,s=579}
|
||||
{x=87,m=86,a=495,s=1699}
|
||||
{x=668,m=1952,a=742,s=902}
|
||||
{x=300,m=1201,a=835,s=385}
|
||||
{x=2798,m=206,a=1230,s=548}
|
||||
{x=577,m=718,a=31,s=2703}
|
||||
{x=33,m=1952,a=360,s=827}
|
||||
{x=1320,m=2522,a=15,s=810}
|
||||
{x=288,m=505,a=308,s=2551}
|
||||
{x=1850,m=2090,a=3001,s=313}
|
||||
{x=814,m=185,a=792,s=320}
|
||||
{x=675,m=1278,a=3606,s=2682}
|
||||
{x=85,m=120,a=2269,s=1983}
|
||||
{x=86,m=159,a=1858,s=2377}
|
||||
{x=2523,m=797,a=2783,s=1324}
|
||||
{x=270,m=600,a=62,s=39}
|
||||
{x=650,m=1989,a=1351,s=470}
|
||||
{x=1533,m=297,a=3,s=2810}
|
||||
{x=3115,m=1584,a=357,s=1250}
|
5
res/20/example1
Normal file
5
res/20/example1
Normal file
|
@ -0,0 +1,5 @@
|
|||
broadcaster -> a, b, c
|
||||
%a -> b
|
||||
%b -> c
|
||||
%c -> inv
|
||||
&inv -> a
|
5
res/20/example2
Normal file
5
res/20/example2
Normal file
|
@ -0,0 +1,5 @@
|
|||
broadcaster -> a
|
||||
%a -> inv, con
|
||||
&inv -> b
|
||||
%b -> con
|
||||
&con -> output
|
58
res/20/input
Normal file
58
res/20/input
Normal file
|
@ -0,0 +1,58 @@
|
|||
%hb -> mj
|
||||
%mx -> mt, xz
|
||||
%xh -> qc
|
||||
%tg -> cq
|
||||
%kp -> xz, nj
|
||||
%mj -> jj, lv
|
||||
%cq -> jm
|
||||
%mt -> sj, xz
|
||||
&jj -> hb, lz, rk, xv, vj, vh, lv
|
||||
%rm -> bz, xq
|
||||
%hx -> bz
|
||||
%xv -> lz
|
||||
%xx -> kp, xz
|
||||
%pt -> vx
|
||||
&xz -> bq, gr, sj, rv, zf
|
||||
%vx -> gf, cv
|
||||
%xb -> xz, bq
|
||||
%xk -> gf, rd
|
||||
%lv -> zk
|
||||
&rk -> gh
|
||||
%kn -> gf, tz
|
||||
&gh -> rx
|
||||
%sj -> vp
|
||||
%jm -> vm, bz
|
||||
%rr -> rv, xz
|
||||
%tz -> rz
|
||||
%gg -> kn
|
||||
&cd -> gh
|
||||
%qc -> kh, bz
|
||||
%kb -> gf
|
||||
%vp -> xz, xx
|
||||
%fb -> bz, tg
|
||||
%rd -> cp
|
||||
%qn -> vh, jj
|
||||
%xr -> jj
|
||||
%tp -> rm, bz
|
||||
%cp -> gg
|
||||
&bz -> qx, cq, xh, fb, tg
|
||||
%qq -> pt, gf
|
||||
%xq -> bz, hx
|
||||
%gx -> jj, qv
|
||||
%bq -> rr
|
||||
%cv -> gf, kb
|
||||
%zk -> jj, xv
|
||||
&zf -> gh
|
||||
&qx -> gh
|
||||
%vh -> gx
|
||||
%qv -> xr, jj
|
||||
%lz -> qn
|
||||
broadcaster -> fb, xk, gr, vj
|
||||
%nj -> xz
|
||||
%gr -> xz, xb
|
||||
%kh -> tp, bz
|
||||
%vm -> bz, xh
|
||||
%rz -> qq, gf
|
||||
&gf -> tz, cd, rd, xk, pt, cp, gg
|
||||
%rv -> mx
|
||||
%vj -> hb, jj
|
157
src/days/d19.rs
157
src/days/d19.rs
|
@ -1,16 +1,163 @@
|
|||
use std::fs;
|
||||
use std::{collections::HashMap, fs};
|
||||
|
||||
use rayon::prelude::*;
|
||||
use regex::Regex;
|
||||
|
||||
pub fn solve() {
|
||||
let path = "res/19/example";
|
||||
let path = "res/19/input";
|
||||
|
||||
let mut _contents = fs::read_to_string(path).expect("I/O error, wrong path?");
|
||||
let contents = fs::read_to_string(path).expect("I/O error, wrong path?");
|
||||
//let contents = BufReader::new(fs::File::open(path).expect("I/O error, wrong path?"));
|
||||
|
||||
let result: usize = 0;
|
||||
let (rules, parts) = contents.split_once("\n\n").unwrap();
|
||||
|
||||
let rules: HashMap<&str, (Vec<(u8, bool, usize, String)>, String)> = rules
|
||||
.lines()
|
||||
.map(|line| {
|
||||
let (name, rest) = line.split_once("{").unwrap();
|
||||
let rest = rest.replace("}", "");
|
||||
let mut rules: Vec<&str> = rest.split(",").collect();
|
||||
let default = String::from(rules.pop().unwrap());
|
||||
let rules: Vec<(u8, bool, usize, String)> = rules
|
||||
.iter()
|
||||
.map(|rule| {
|
||||
let re = Regex::new(
|
||||
r"^(?P<var>[a-z])(?P<op>[><])(?P<num>\d+):(?P<target>[a-zA-Z]+)$",
|
||||
)
|
||||
.unwrap();
|
||||
let captures = re.captures(rule).unwrap();
|
||||
let var = captures["var"].to_string();
|
||||
let op = captures["op"].to_string();
|
||||
let num = captures["num"].parse::<usize>().unwrap();
|
||||
let target = captures["target"].to_string();
|
||||
let var = match var.as_ref() {
|
||||
"x" => 0,
|
||||
"m" => 1,
|
||||
"a" => 2,
|
||||
_ => 3,
|
||||
};
|
||||
(var, op == String::from(">"), num, target)
|
||||
})
|
||||
.collect();
|
||||
(name, (rules, default))
|
||||
})
|
||||
.collect();
|
||||
|
||||
let parts: Vec<[usize; 4]> = parts
|
||||
.lines()
|
||||
.map(|line| {
|
||||
let (x, m, a, s) = scan_fmt!(
|
||||
line,
|
||||
"{{x={d},m={d},a={d},s={d}}}",
|
||||
usize,
|
||||
usize,
|
||||
usize,
|
||||
usize
|
||||
)
|
||||
.unwrap();
|
||||
[x, m, a, s]
|
||||
})
|
||||
.collect();
|
||||
|
||||
let result: usize = parts
|
||||
.par_iter()
|
||||
.map(|part| {
|
||||
let mut curr = "in";
|
||||
while curr != "A" && curr != "R" {
|
||||
let rule = &rules[&curr];
|
||||
let mut applied = false;
|
||||
rule.0.iter().for_each(|r| {
|
||||
if applied {
|
||||
return;
|
||||
}
|
||||
match r.1 {
|
||||
false => {
|
||||
// <
|
||||
if part[r.0 as usize] < r.2 {
|
||||
curr = r.3.as_ref();
|
||||
applied = true;
|
||||
}
|
||||
}
|
||||
true => {
|
||||
// >
|
||||
if part[r.0 as usize] > r.2 {
|
||||
curr = r.3.as_ref();
|
||||
applied = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if !applied {
|
||||
curr = rule.1.as_ref()
|
||||
}
|
||||
}
|
||||
if curr == "A" {
|
||||
return part.iter().sum();
|
||||
}
|
||||
0
|
||||
})
|
||||
.sum();
|
||||
|
||||
println!("Result 1: {result}");
|
||||
|
||||
let result: usize = 0;
|
||||
//let mut ranges: HashMap<&str, Vec<(&str, [(usize,usize);4])>> = HashMap::new();
|
||||
let mut ranges: Vec<(&str, [(usize, usize); 4])> = vec![("in", [(1, 4000); 4])];
|
||||
let mut accept: Vec<[(usize, usize); 4]> = vec![];
|
||||
|
||||
while !ranges.is_empty() {
|
||||
let (curr, mut vals) = ranges.pop().unwrap();
|
||||
|
||||
if curr == "A" {
|
||||
accept.push(vals);
|
||||
continue;
|
||||
}
|
||||
if curr == "R" {
|
||||
continue;
|
||||
}
|
||||
|
||||
let rule = &rules[&curr];
|
||||
rule.0.iter().for_each(|r| {
|
||||
if vals[r.0 as usize] == (0, 0) {
|
||||
return;
|
||||
}
|
||||
match r.1 {
|
||||
false => {
|
||||
// <
|
||||
if vals[r.0 as usize].0 < r.2 {
|
||||
let mut new_ranges = vals.clone();
|
||||
new_ranges[r.0 as usize].1 = vals[r.0 as usize].1.min(r.2 - 1);
|
||||
ranges.push((r.3.as_ref(), new_ranges));
|
||||
if vals[r.0 as usize].1 < r.2 {
|
||||
vals[r.0 as usize] = (0, 0)
|
||||
} else {
|
||||
vals[r.0 as usize].0 = r.2
|
||||
}
|
||||
}
|
||||
}
|
||||
true => {
|
||||
// >
|
||||
if vals[r.0 as usize].1 > r.2 {
|
||||
let mut new_ranges = vals.clone();
|
||||
new_ranges[r.0 as usize].0 = vals[r.0 as usize].0.max(r.2 + 1);
|
||||
ranges.push((r.3.as_ref(), new_ranges));
|
||||
if vals[r.0 as usize].0 > r.2 {
|
||||
vals[r.0 as usize] = (0, 0)
|
||||
} else {
|
||||
vals[r.0 as usize].1 = r.2
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
if vals.iter().any(|p| *p != (0, 0)) {
|
||||
ranges.push((rule.1.as_ref(), vals))
|
||||
}
|
||||
}
|
||||
let result: usize = accept
|
||||
.iter()
|
||||
.map(|vals| vals.iter().map(|(l, u)| *u - *l + 1).product::<usize>())
|
||||
.sum();
|
||||
|
||||
println!("Result 2: {result}");
|
||||
}
|
||||
|
|
145
src/days/d20.rs
145
src/days/d20.rs
|
@ -1,16 +1,151 @@
|
|||
use std::fs;
|
||||
use std::{
|
||||
collections::{HashMap, VecDeque},
|
||||
fs,
|
||||
};
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
enum ModuleTypes {
|
||||
Broadcast,
|
||||
FlipFlop(bool),
|
||||
Conjunction(HashMap<String, bool>),
|
||||
}
|
||||
|
||||
pub fn solve() {
|
||||
let path = "res/20/example";
|
||||
let path = "res/20/input";
|
||||
|
||||
let mut _contents = fs::read_to_string(path).expect("I/O error, wrong path?");
|
||||
let contents = fs::read_to_string(path).expect("I/O error, wrong path?");
|
||||
//let contents = BufReader::new(fs::File::open(path).expect("I/O error, wrong path?"));
|
||||
|
||||
let result: usize = 0;
|
||||
let mut modules: HashMap<String, (ModuleTypes, Vec<String>)> = contents
|
||||
.lines()
|
||||
.map(|line| {
|
||||
let (t, outputs) = line.split_once(" -> ").unwrap();
|
||||
let outputs: Vec<String> = outputs.split(", ").map(|out| String::from(out)).collect();
|
||||
if t.starts_with("%") {
|
||||
(t.replace("%", ""), (ModuleTypes::FlipFlop(false), outputs))
|
||||
} else if t.starts_with("&") {
|
||||
(
|
||||
t.replace("&", ""),
|
||||
(ModuleTypes::Conjunction(HashMap::new()), outputs),
|
||||
)
|
||||
} else {
|
||||
(String::from(t), (ModuleTypes::Broadcast, outputs))
|
||||
}
|
||||
})
|
||||
.collect();
|
||||
|
||||
let mut tmp_map: HashMap<String, HashMap<String, bool>> = HashMap::new();
|
||||
|
||||
for (mod_name, module) in modules.iter() {
|
||||
module.1.iter().for_each(|name| {
|
||||
if name.as_str() == "output" || !modules.contains_key(name) {
|
||||
return;
|
||||
}
|
||||
|
||||
match modules.get(name).unwrap().0 {
|
||||
ModuleTypes::Conjunction(_) => {
|
||||
let entry = tmp_map.entry(name.clone()).or_insert(HashMap::new());
|
||||
entry.insert(mod_name.clone(), false);
|
||||
}
|
||||
_ => {}
|
||||
};
|
||||
})
|
||||
}
|
||||
|
||||
for (name, map) in tmp_map {
|
||||
modules.get_mut(&name).unwrap().0 = ModuleTypes::Conjunction(map)
|
||||
}
|
||||
|
||||
let mut cycle_finder: HashMap<u8, (usize, bool)> = HashMap::new();
|
||||
|
||||
let mut high_cnt: usize = 0;
|
||||
let mut low_cnt: usize = 0;
|
||||
let mut queue: VecDeque<(String, String, bool)> = VecDeque::new();
|
||||
let mut rx_cnt: usize = 0;
|
||||
'outer: for i in 0..1000000 {
|
||||
low_cnt += 1; // button pressed
|
||||
modules["broadcaster"]
|
||||
.1
|
||||
.iter()
|
||||
.for_each(|item| queue.push_back((String::from("broadcaster"), item.clone(), false)));
|
||||
|
||||
while !queue.is_empty() {
|
||||
let (prev, next, val) = queue.pop_front().unwrap();
|
||||
|
||||
if i < 1000 {
|
||||
if val {
|
||||
high_cnt += 1
|
||||
} else {
|
||||
low_cnt += 1
|
||||
}
|
||||
}
|
||||
|
||||
if next.as_str() == "output" {
|
||||
continue;
|
||||
}
|
||||
|
||||
if next.as_str() == "rx" {
|
||||
let parent = match &modules["gh"].0 {
|
||||
ModuleTypes::Conjunction(par_map) => par_map,
|
||||
_ => panic!(),
|
||||
};
|
||||
if parent.iter().any(|(_, v)| *v) {
|
||||
let mut parent: Vec<(String, bool)> =
|
||||
parent.iter().map(|(s, v)| (s.clone(), *v)).collect();
|
||||
parent.sort();
|
||||
let par_val: u8 = parent
|
||||
.iter()
|
||||
.enumerate()
|
||||
.map(|(i, (_, v))| if *v { 1 << i } else { 0 })
|
||||
.sum();
|
||||
|
||||
if !cycle_finder.contains_key(&par_val) {
|
||||
cycle_finder.insert(par_val, (i + 1, false));
|
||||
} else {
|
||||
let v = cycle_finder[&par_val];
|
||||
if !v.1 && v.0 != (i+1) {
|
||||
cycle_finder.insert(par_val, ((i+1) - v.0, true));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if cycle_finder.len() == 4 && cycle_finder.iter().all(|(_,(_,v))| *v) {
|
||||
rx_cnt = cycle_finder.iter().map(|(_, (v, _))| *v).fold(1, |x, y| num::integer::lcm(x, y));
|
||||
break 'outer;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
let entry = modules.get_mut(&next).unwrap();
|
||||
|
||||
match entry.0 {
|
||||
ModuleTypes::FlipFlop(ref mut ff_val) => {
|
||||
if !val {
|
||||
*ff_val = !(*ff_val);
|
||||
entry
|
||||
.1
|
||||
.iter()
|
||||
.map(|name| (next.clone(), name.clone(), *ff_val))
|
||||
.for_each(|tpl| queue.push_back(tpl));
|
||||
}
|
||||
}
|
||||
ModuleTypes::Conjunction(ref mut c_map) => {
|
||||
c_map.insert(prev, val);
|
||||
entry
|
||||
.1
|
||||
.iter()
|
||||
.map(|name| (next.clone(), name.clone(), !c_map.iter().all(|(_, v)| *v)))
|
||||
.for_each(|tpl| queue.push_back(tpl));
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
}
|
||||
let result: usize = low_cnt * high_cnt;
|
||||
|
||||
println!("Result 1: {result}");
|
||||
|
||||
let result: usize = 0;
|
||||
let result: usize = rx_cnt;
|
||||
|
||||
println!("Result 2: {result}");
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ extern crate scan_fmt;
|
|||
use std::time::Instant;
|
||||
|
||||
fn main() {
|
||||
days::d17::solve()
|
||||
days::d20::solve()
|
||||
//_all_days()
|
||||
}
|
||||
|
||||
|
@ -85,7 +85,6 @@ fn _all_days() {
|
|||
days::d18::solve();
|
||||
time = _print_elapsed(time);
|
||||
|
||||
/*
|
||||
println!("\nDay 19");
|
||||
days::d19::solve();
|
||||
time = _print_elapsed(time);
|
||||
|
@ -94,6 +93,7 @@ fn _all_days() {
|
|||
days::d20::solve();
|
||||
time = _print_elapsed(time);
|
||||
|
||||
/*
|
||||
println!("\nDay 21");
|
||||
days::d21::solve();
|
||||
time = _print_elapsed(time);
|
||||
|
|
Loading…
Reference in a new issue