summaryrefslogtreecommitdiff
path: root/o.c
diff options
context:
space:
mode:
authorn <@>2023-01-14 03:15:09 +0200
committern <@>2023-01-14 03:15:09 +0200
commit213309ca4adc0c3f3cc1249489d3012973aca6e7 (patch)
tree56e14efce8e466c34f98d37d4b91c0acacd7bd17 /o.c
parentd4ace7d8b7ceb45d0d15eaf11a24b4e38669c626 (diff)
o.c
Diffstat (limited to 'o.c')
-rw-r--r--o.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/o.c b/o.c
index 88c4b9d2..1fa1f748 100644
--- a/o.c
+++ b/o.c
@@ -8,11 +8,14 @@ S L o0(Lv)_(t(v-o))A1(of0,Q(xtlL);Ay=an(xn,xt-tl+tf);i(PD(xn,xL),yl=o0(xl))x-y?x
S I ql(Li,Lj)_(i<j?-1:i>j)I qf(F u,Fv)_(ql(o1(*(L*)&u),o1(*(L*)&v)))I qA(Ax,Ay/*00*/)_(P(mtc_(x,y),0)P(xtf&&ytf,qf(*xF,*yF))P(xtzc&&ytf,qf(gl_(x),*yF))P(xtf&&ytzc,qf(*xF,gl_(y)))
Iv=TS[xt]-TS[yt];P(v,v)Xzc(ql(gl_(x),gl_(y)))Xf(qf(*xF,*yF))Xs(SQ(qs(&x),qs(&y)))I(!xtP,Iv=ql(xn,yn);XT(i(min(xn,yn),Az=ii(x,i),u=ii(y,i);I d=qA(z,u);mr(z(u));P(d,d))v))ql(x,y))
S I*ascZ(O UC*v,UC*g,I*a,I*b,In,I w)_(UI c[257];tilV(a,n,2);j(w,Ms(c,0,SZ c);i(n,g[i]=v[w*a[i]+j])i(n,c[g[i]+1]++)I(c[1+*g]-n,i(255,c[i+1]+=c[i])i(n,b[c[g[i]]++]=a[i])SWP(b,a)))a)
-S V mrg(OA*v,I*p,I*p1,I*q,I*q1,I*r){W(p<p1&&q<q1,*r++=qA(v[*p],v[*q])<=0?*p++:*q++)Mc(r,p<p1?p:q,p1-p+q1-q<<2);}
-S V ascA(OA*v,I*a,In,I*b){P(n<2,I(n,*b=*a);)I m=n/2;ascA(v,a+m,n-m,b+m);ascA(v,a,m,a+m);mrg(v,a+m,a+2*m,b+m,b+n,b);}
S A grdm(Ax/*1*/,A1 f)_(Ay=kv(&x);x(x1(Nx(f(y)))))
-A1(asc,Xt(opn(x))Xm(grdm(x,asc))XM(K1("{(!#x){x@<y x}/|.+x}",x))XS(asc(str(x)))XF(asc(of1(x)))In=xn;P(n-xn,ez1(x))
- XA(Im=n/2;OA*v=xA;Ay=aI(n),z=aI(n-m);I*a=yV,*b=zV;tilV(a,n,2);ascA(v,a+m,n-m,b);ascA(v,a,m,a+n-m);mrg(v,a+n-m,a+n,b,b+n-m,a);x(z(y)))
- x=N(K1("{x-&/x}",x));Ay=aC(n),z=aI(n),u=aI(n);xe(ye(ascZ(xV,yV,zV,uV,n,xW)==zV?u(z):z(u))))
+
+S V mrg(Ax/*0*/,I*p,I*q,I*b,I*d,Ik){I*r=p-q+b;W(1,I(qA(xA[*p],xA[*b])<k,*r++=*p++;P(p==q))E(*r++=*b++;B(b==d)))Mc(r,p,q-p<<2);}//merge(k=1),mergeR(k=0)
+S V cis(Ax/*0*/,I*p,I*q,I*r){Nn=q-p;I*s=r;W(p<q,Iv=*p++;Ay=xA[v];I*t=r;W(t<s&&qA(xA[*t],y)<=0,t++)Mm(t+1,t,s-t<<2);*t=v;s++)}//copying_insertionsort
+S V cms(Ax/*0*/,I*p,I*q,I*r){Nn=q-p;P(n<=16,cis(x,p,q,r);)N h=n/2;I*s=p+h;cms(x,s,q,r+h);cms(x,p,s,s);mrg(x,s,s+h,r+h,r+n,1);}//copying_mergesort
+A1(ascA,Nn=xn,h=n/2;Ay=aI(n-h),z=aI(n);I*p=zI,*q=zI+n,*t=yI;tilV(p,n,2);I(n<=16,cis(x,p,q,p))E(cms(x,p+h,q,t);cms(x,p,p+h,q-h);mrg(x,t,t+n-h,q-h,q,0))x(y(z)))//mergesort
+
+A1(asc,Xt(opn(x))Xm(grdm(x,asc))XM(K1("{(!#x){x@<y x}/|.+x}",x))XS(asc(str(x)))XF(asc(of1(x)))P(xn-(I)xn,ez1(x))XA(ascA(x))
+ x=N(K1("{x-&/x}",x));Nn=xn;Ay=aC(n),z=aI(n),u=aI(n);xe(ye(ascZ(xV,yV,zV,uV,n,xW)==zV?u(z):z(u))))
A1(dsc,XMT(x=rev(asc(rev(x)));sub(ai(xN-1),x))Xm(grdm(x,dsc))Xz(cls(gl(x)))et1(x))
A1(grp,Xz(K1("{$[x;@[&x;;:;1]'!x;0 0#0]}",x))Xt(et1(x))Xm(Ay=kv(&x);y=Nx(grp(y));yy=x(i1(x,yy));y)K1("{$[#x;(x[(!0),*'g])!g@:<g:(&(!0),~x~':x i)_i:<x;x!0#,!0]}",x))