我的对拍代码库 - Hoblovski's Blog - 想拿Ag的蒟蒻.已经Ag滚出.
最小割的代价建模四题

我的对拍代码库

Hoblovski posted @ 2014年9月06日 22:17 in Notes with tags unit duipai , 806 阅读

退役了想说什么,但是没什么可说的.

发一发对拍代码库吧,Author Hoblovski.

使用的话直接在程序头加uses duipai_stl;

可能有些代码会有错?别在意.

看到吉丽又开始屯题了简直Orz

 

{$INLINE ON,OPTIMIZATION ON LEVEL2}
unit duipai_stl;

interface

        const maxd=517;
              base=10000;
              ulen=4;
              s0='0000';
              intsize=50017;

        type ptreapnode=^ttreapnode;
             ttreapnode=record
                v,p,w,size:longint;
                l,r:ptreapnode;
             end;
             treap=ptreapnode;
             matrix=array[0..maxd,0..maxd] of longint;
             vector=array[0..maxd] of longint;
             compnum=record x,y:extended; end;
             int=array[0..intsize] of longint;

        const maxn=1000017;
              maxv=40017;
              e1=10;
              e2=100;
              e3=1000;
              e4=10000;
              e5=100000;
              e6=1000000;
              e7=10000000;
              e8=100000000;
              e9=1000000000;
              maxint=longint($3f3f3f3f);
              minint=longint($c0c0c0c0);
              maxint64=int64($3f3f3f3f3f3f3f3f);
              minint64=int64($c0c0c0c0c0c0c0c0);
              eps=1e-9;

        var p,perm:array[1..maxn] of longint;
	    g:array[1..maxv,1..maxv] of boolean;
            buf:array[0..intsize*ulen] of char;
            null:ptreapnode;

        procedure swap(var i,j:longint); inline;
        procedure genint(n:longint;var l,r:longint); inline;
        function min(i,j:int64):int64; inline;
        function max(i,j:int64):int64; inline;
        function sgn(r:extended):longint; inline;
        function randsgn(n:int64):int64; inline;
        function randsgn(n:extended):extended; inline;
        function rand(l,r:longint):longint; inline;
        function rand(l,r:char):char; inline;
        function rand(n:extended):extended; inline;
        function rand(n:longint):longint; inline;
        function rand(n:int64):int64; inline;
        procedure randline(n,maxw:longint);
        procedure randtree(n:longint);
        procedure randtree(n,maxw:longint);
        procedure randdag(n,m:longint);
        procedure randdag(n,m,maxw:longint);
        procedure randgraph(n,m:longint);
        procedure randgraph(n,m,maxw:longint);
        procedure randmatrix(n,m,maxw:longint);
        function isprime(n:int64):boolean; inline;
        procedure randperm(n:longint);
        procedure treap_init(var root:ptreapnode);
        procedure lrot(var i:ptreapnode); inline;
        procedure rrot(var i:ptreapnode); inline;
        procedure insert(var i:ptreapnode;j:longint);
        procedure delete(var i:ptreapnode;j:longint);
        function find(i:ptreapnode;j:longint):ptreapnode;
        function rank(i:ptreapnode;j:longint):longint;
        function select(i:ptreapnode;j:longint):ptreapnode;
        function pred(i:ptreapnode;j:longint):longint;
        function succ(i:ptreapnode;j:longint):longint;
        function gcd(i,j:int64):int64; inline;
        function lcm(i,j:int64):int64; inline;
        procedure mul(n:longint;var a,b,c:matrix);
        procedure mul(n:longint;var a:matrix;var b,c:vector);
        function cnum(x,y:extended):compnum; inline;
        function add(a,b:compnum):compnum; inline;
        function sub(a,b:compnum):compnum; inline;
        function mul(a,b:compnum):compnum; inline;
        function dyv(a,b:compnum):compnum; inline;
        operator +(var a,b:compnum) c:compnum; inline;
        operator -(var a,b:compnum) c:compnum; inline;
        operator *(var a,b:compnum) c:compnum; inline;
        operator /(var a,b:compnum) c:compnum; inline;
        operator =(var a,b:compnum) c:boolean; inline;
        procedure add(var a,b,c:int); inline;
        procedure sub(var a,b,c:int); inline;
        procedure mul(var a,b,c:int); inline;
        operator +(var a,b:int) c:int; inline;
        operator -(var a,b:int) c:int; inline;
        operator *(var a,b:int) c:int; inline;
        procedure scan(var a:int); inline;
        procedure print(var a:int); inline;

implementation

        procedure swap(var i,j:longint); inline; var k:longint; begin k:=i; i:=j; j:=k; end;

        procedure genint(n:longint;var l,r:longint); inline; begin l:=random(n)+1; r:=random(n+1-l)+l; end;

        function min(i,j:int64):int64; inline; begin if i<j then exit(i) else exit(j); end;

        function max(i,j:int64):int64; inline; begin if i>j then exit(i) else exit(j); end;

        function sgn(r:extended):longint; inline; begin if r<-eps then exit(-1); if r>eps then exit(1); exit(0); end;

        function randsgn(n:int64):int64; inline; begin exit(random(n<<1+1)-n); end;

        function randsgn(n:longint):longint; inline; begin exit(random(n<<1+1)-n); end;

        function randsgn(n:extended):extended; inline; begin exit(random*n*2-n); end;

        function rand(l,r:longint):longint; inline; begin exit(l+random(r-l+1)); end;

        function rand(l,r:char):char; inline; begin exit(chr(rand(ord(l),ord(r)))); end;

        function rand(n:longint):longint; inline; begin exit(random(n)+1); end;

        function rand(n:int64):int64; inline; begin exit(random(n)+1); end;

        function rand(n:extended):extended; inline; begin exit(random*n); end;

        procedure randline(n,maxw:longint);
        var i:longint;
        begin
        for i:=1 to n-1 do write(rand(maxw),' '); writeln(rand(maxw));
        end;

        procedure randlines(n,maxw:longint);
        var i:longint;
        begin
        for i:=1 to n do writeln(rand(maxw));
        end;

        procedure randtree(n:longint);
        var i,j,u,v:longint;
        begin
        fillchar(p,sizeof(p),0);
        for i:=2 to n do p[i]:=rand(i-1);
        for i:=1 to n do perm[i]:=i;
        for i:=1 to n do swap(perm[i],perm[rand(i)]);
        for i:=2 to n do writeln(perm[i],' ',perm[p[i]]);
        end;

        procedure randtree(n,maxw:longint);
        var i,j,u,v:longint;
        begin
        fillchar(p,sizeof(p),0);
        for i:=2 to n do p[i]:=rand(i-1);
        for i:=1 to n do perm[i]:=i;
        for i:=1 to n do swap(perm[i],perm[rand(i)]);
        for i:=2 to n do writeln(perm[i],' ',perm[p[i]],' ',rand(maxw));
        end;

        procedure randdag(n,m:longint);
        var i,u,v:longint;
        begin
        for i:=1 to n do perm[i]:=i; for i:=n downto 1 do swap(perm[i],perm[rand(i)]);
        fillchar(g,sizeof(g),0); while m>0 do begin dec(m);
                u:=rand(n); v:=rand(u); while (u=v)or(g[u,v]) do begin
                        u:=rand(n); v:=rand(u);
                end; g[u,v]:=true; writeln(perm[u],' ',perm[v]);
        end;
        end;

        procedure randdag(n,m,maxw:longint);
        var i,u,v:longint;
        begin
        for i:=1 to n do perm[i]:=i; for i:=n downto 1 do swap(perm[i],perm[rand(i)]);
        fillchar(g,sizeof(g),0); while m>0 do begin dec(m);
                u:=rand(n); v:=rand(u); while (u=v)or(g[u,v]) do begin
                        u:=rand(n); v:=rand(u);
                end; g[u,v]:=true; writeln(perm[u],' ',perm[v],' ',rand(maxw));
        end;
        end;

        procedure randgraph(n,m:longint);
        var u,v:longint;
        begin
        fillchar(g,sizeof(g),0); while m>0 do begin dec(m);
                u:=rand(n); v:=rand(n);
                while (u=v)or(g[u,v]) do begin
                        u:=rand(n); v:=rand(n);
                end; g[u,v]:=true; g[v,u]:=true;
                writeln(u,' ',v);
        end;
        end;

        procedure randgraph(n,m,maxw:longint);
        var u,v:longint;
        begin
        fillchar(g,sizeof(g),0); while m>0 do begin dec(m);
                u:=rand(n); v:=rand(n); while (u=v)or(g[u,v]) do begin
                        u:=rand(n); v:=rand(n);
                end; g[u,v]:=true; g[v,u]:=true;
                writeln(u,' ',v,' ',rand(maxw));
        end;
        end;

        procedure randmatrix(n,m,maxw:longint);
        var i,j:longint;
        begin
        for i:=1 to n do begin
                for j:=1 to m do write(rand(maxw),' ');
                writeln;
        end;
        end;

        procedure randperm(n:longint);
        var i:longint;
        begin
        for i:=1 to n do perm[i]:=i;
        for i:=n downto 1 do swap(perm[i],perm[rand(i)]);
        for i:=1 to n-1 do write(perm[i],' '); writeln(perm[n]);
        end;

        function isprime(n:int64):boolean; inline;
        var i:longint;
        begin
        for i:=2 to trunc(sqrt(n)) do
                if n mod i = 0 then exit(false);
        exit(true);
        end;

        procedure treap_init(var root:ptreapnode);
        begin
        new(null); randomize; with null^ do begin
                v:=0; p:=maxint; w:=0; size:=0; l:=null; r:=null;
        end; root:=null;
        end;

        procedure lrot(var i:ptreapnode); inline;
        var j:ptreapnode;
        begin
        j:=i^.r; i^.r:=j^.l; j^.l:=i; j^.size:=i^.size;
        i^.size:=i^.l^.size+i^.r^.size+i^.w; i:=j;
        end;

        procedure rrot(var i:ptreapnode); inline;
        var j:ptreapnode;
        begin
        j:=i^.l; i^.l:=j^.r; j^.r:=i; j^.size:=i^.size;
        i^.size:=i^.l^.size+i^.r^.size+i^.w; i:=j;
        end;

        procedure insert(var i:ptreapnode;j:longint);
        begin
        if i=null then begin
                new(i); with i^ do begin
                        v:=j; p:=random(maxint); w:=1; size:=1; l:=null; r:=null;
                end;
        end else if j<i^.v then begin
                insert(i^.l,j); inc(i^.size);
                if i^.l^.p<i^.p then rrot(i);
        end else if j>i^.v then begin
                insert(i^.r,j); inc(i^.size);
                if i^.r^.p<i^.p then lrot(i);
        end else begin
                inc(i^.size); inc(i^.w);
        end;
        end;

        procedure delete(var i:ptreapnode;j:longint);
        begin
        if j=i^.v then
                if i^.w>1 then begin
                        dec(i^.size); dec(i^.w);
                end else if i^.l=null then i:=i^.r
                else if i^.r=null then i:=i^.l
                else if i^.l^.p<i^.r^.p then begin
                        rrot(i); dec(i^.size); delete(i^.r,j);
                end else begin
                        lrot(i); dec(i^.size); delete(i^.l,j);
                end
        else if j<i^.v then begin
                dec(i^.size); delete(i^.l,j);
        end else begin
                dec(i^.size); delete(i^.r,j);
        end;
        end;

        function find(i:ptreapnode;j:longint):ptreapnode;
        begin
        while i<>null do begin
                if j=i^.v then exit(i);
                if j<i^.v then i:=i^.l else i:=i^.r;
        end; exit(null);
        end;

        function rank(i:ptreapnode;j:longint):longint;
        begin
        rank:=0;
        while i<>null do begin
                if j=i^.v then exit(rank+i^.l^.size+1)
                else if j<i^.v then i:=i^.l
                else begin
                        inc(rank,i^.l^.size+i^.w); i:=i^.r;
                end;
        end;
        end;

        function select(i:ptreapnode;j:longint):ptreapnode;
        begin
        while i<>null do begin
                if (j>i^.l^.size)and(j<=i^.l^.size+i^.w) then exit(i)
                else if j<=i^.l^.size then i:=i^.l
                else begin
                        dec(j,i^.l^.size+i^.w); i:=i^.r;
                end;
        end; exit(null);
        end;

        function pred(i:ptreapnode;j:longint):longint;
        begin
        if i=null then exit(minint);
        if i^.v>=j then exit(pred(i^.l,j));
        pred:=pred(i^.r,j); if pred=-1 then pred:=i^.v;
        end;

        function succ(i:ptreapnode;j:longint):longint;
        begin
        if i=null then exit(-1);
        if i^.v<=j then exit(succ(i^.r,j));
        succ:=succ(i^.l,j); if succ=-1 then succ:=i^.v;
        end;

        function gcd(i,j:int64):int64; inline;
        var k:int64;
        begin
        while j<>0 do begin
                k:=i mod j;
                i:=j;
                j:=k;
        end; exit(i);
        end;

        function lcm(i,j:int64):int64; inline;
        begin
        exit( i div gcd(i,j) * j );
        end;

        procedure mul(n:longint;var a,b,c:matrix);
        var i,j,k:longint;
        begin
        fillchar(c,sizeof(c),0); for i:=1 to n do for k:=1 to n do if a[i,k]<>0 then
                for j:=1 to n do inc(c[i,j],a[i,k]*b[k,j]);
        end;

        procedure mul(n:longint;var a:matrix;var b,c:vector);
        var i,j:longint;
        begin
        fillchar(c,sizeof(c),0); for i:=1 to n do for j:=1 to n do inc(c[i],a[i,j]*b[j]);
        end;

        function cnum(x,y:extended):compnum; inline; begin cnum.x:=x; cnum.y:=y; end;

        function add(a,b:compnum):compnum; inline; begin add.x:=a.x+b.x; add.y:=a.y+b.y; end;

        function sub(a,b:compnum):compnum; inline; begin sub.x:=a.x-b.x; sub.y:=a.y-b.y; end;

        function mul(a,b:compnum):compnum; inline; begin mul.x:=a.x*b.x-a.y*b.y; mul.y:=a.x*b.y+b.x*a.y; end;

        function dyv(a,b:compnum):compnum; inline;
        var r:extended;
        begin
        r:=b.x*b.x+b.y*b.y; dyv.x:=(a.x*b.x+a.y*b.y)/r; dyv.y:=(b.x*a.y-a.x*b.y)/r;
        end;

        operator +(var a,b:compnum) c:compnum; inline; begin c.x:=a.x+b.x; c.y:=a.y+b.y; end;

        operator -(var a,b:compnum) c:compnum; inline; begin c.x:=a.x-b.x; c.y:=a.y-b.y; end;

        operator *(var a,b:compnum) c:compnum; inline; begin c.x:=a.x*b.x-a.y*b.y; c.y:=a.x*b.y+b.x*a.y; end;

        operator /(var a,b:compnum) c:compnum; inline; var r:extended; begin
        r:=b.x*b.x+b.y*b.y; c.x:=(a.x*b.x+a.y*b.y)/r; c.y:=(b.x*a.y-a.x*b.y)/r; end;

        operator =(var a,b:compnum) c:boolean; inline; begin exit((sgn(a.x-b.x)=0)and(sgn(a.y-b.y)=0)); end;

        procedure add(var a,b,c:int);
        var i:longint;
        begin
        fillchar(c,sizeof(c),0); c[0]:=max(a[0],b[0]); for i:=1 to c[0] do begin
                inc(c[i],a[i]+b[i]); if c[i]>=base then begin dec(c[i],base); inc(c[i+1]); end;
        end; inc(c[0],byte(c[c[0]+1]<>0));
        end;

        procedure sub(var a,b,c:int);
        var i:longint;
        begin
        fillchar(c,sizeof(c),0); c[0]:=a[0]; for i:=1 to c[0] do begin
                inc(c[i],a[i]-b[i]); if c[i]<0 then begin inc(c[i],base); dec(c[i+1]); end;
        end; while c[c[0]]=0 do dec(c[0]);
        end;

        procedure mul(var a,b,c:int);
        var i,j:longint;
        begin
        fillchar(c,sizeof(c),0); c[0]:=a[0]+b[0]-1;
        for i:=1 to a[0] do for j:=1 to b[0] do begin
                inc(c[i+j-1],a[i]*b[j]); inc(c[i+j],c[i+j-1]div base); c[i+j-1]:=c[i+j-1]mod base;
        end; inc(c[0],byte(c[c[0]+1]<>0));
        end;

        operator +(var a,b:int) c:int; inline;
        var i:longint;
        begin
        fillchar(c,sizeof(c),0); c[0]:=max(a[0],b[0]); for i:=1 to c[0] do begin
                inc(c[i],a[i]+b[i]); if c[i]>=base then begin dec(c[i],base); c[i+1]:=1; end;
        end; inc(c[0],byte(c[c[0]+1]<>0));
        end;

        operator -(var a,b:int) c:int; inline;
        var i:longint;
        begin
        fillchar(c,sizeof(c),0); c[0]:=a[0]; for i:=1 to c[0] do begin
                inc(c[i],a[i]-b[i]); if c[i]<0 then begin inc(c[i],base); c[i+1]:=-1; end;
        end; while c[c[0]]=0 do dec(c[0]);
        end;

        operator *(var a,b:int) c:int; inline;
        var i,j:longint;
        begin
        fillchar(c,sizeof(c),0); c[0]:=a[0]+b[0]-1;
        for i:=1 to a[0] do for j:=1 to b[0] do begin
                inc(c[i+j-1],a[i]*b[j]); inc(c[i+j],c[i+j-1]div base); c[i+j-1]:=c[i+j-1]mod base;
        end; inc(c[0],byte(c[c[0]+1]<>0));
        end;

        procedure scan(var a:int);
        var i,j,k:longint;
            ch:char;
        begin
        k:=0; while not seekeoln do begin inc(k); read(buf[k]); end; readln;
        for i:=1 to k>>1 do begin ch:=buf[i]; buf[i]:=buf[k+1-i]; buf[k+1-i]:=ch; end;
        fillchar(a,sizeof(a),0); i:=0; while i+ulen<=k do begin inc(a[0]);
                for j:=ulen downto 1 do a[a[0]]:=a[a[0]]*10+ord(buf[i+j])-48; inc(i,ulen);
        end; if i<k then begin inc(a[0]);
                for j:=k downto i+1 do a[a[0]]:=a[a[0]]*10+ord(buf[j])-48;
        end;
        end;

        procedure print(var a:int);
        var i,j,k:longint;
            s:string[ulen];
        begin
        write(a[a[0]]); for i:=a[0]-1 downto 1 do begin s:=s0; k:=ulen; j:=a[i];
                while j>0 do begin s[k]:=chr(j mod 10+48); j:=j div 10; dec(k); end;
                write(s);
        end; writeln;
        end;

initialization
finalization
end.

以下是对拍的检查模块的,你可以认为是file/diff模块

unit dpchk_stl;

interface

        const maxline=500000;
              maxchar=21000017;
              eps=1e-9;
              omiteolnspaces=true;
              omiteoflines=false;
              omitinvalidchar=false;
              allowance='ID';

        type tstrarr=array[0..maxline] of string[43];
             tnumarr=array[0..maxline] of extended;
             tchrarr=array[0..maxchar] of char;
             tlstrarr=array[0..maxline] of ansistring;

        var s1,s2:tstrarr;
            r1,r2:tnumarr;
            c1,c2:tchrarr;
            ls1,ls2:tlstrarr;
            n1,n2:longint;

        function min(i,j:longint):longint;
        function max(i,j:longint):longint;
        procedure freopen(s:string;flag:char);
        procedure fclose(flag:char);
        procedure fread(ad:string;var a:tstrarr;var n:longint);
        procedure fread(ad:string;var a:tnumarr;var n:longint);
        procedure fread(ad:string;var a:tchrarr;var n:longint);
        procedure fread(ad:string;var a:tlstrarr;var n:longint);
        procedure compare(var s1,s2:tstrarr;var n1,n2:longint);
        procedure compare(var s1,s2:tnumarr;var n1,n2:longint;r:extended);
        procedure compare(var s1,s2:tchrarr;var n1,n2:longint);
        procedure compare(var s1,s2:tlstrarr;var n1,n2:longint);
        procedure stdfilecmp(ad1,ad2:string);

implementation

        function min(i,j:longint):longint; begin
        if i<j then exit(i) else exit(j);  end;

        function max(i,j:longint):longint; begin
        if i>j then exit(i) else exit(j);  end;

        procedure freopen(s:string;flag:char);
        begin
        if flag='r' then begin
                assign(input,s); reset(input)
        end else if flag='w' then begin
                assign(output,s); rewrite(output);
        end;
        end;

        procedure fclose(flag:char);
        begin
        if flag='r' then close(input) else if flag='w' then close(output);
        end;

        procedure fread(ad:string;var a:tstrarr;var n:longint);
        begin
        assign(input,ad); reset(input);
        n:=0; while not seekeof do begin
                inc(n); readln(a[n]);
                while (omiteolnspaces)and(length(a[n])>1)and(a[n][length(a[n])]=' ') do
                        a[n]:=copy(a[n],1,length(a[n])-1);
        end; close(input); while (omiteoflines)and(a[n]='') do dec(n);
        end;

        procedure fread(ad:string;var a:tnumarr;var n:longint);
        begin
        assign(input,ad); reset(input);
        n:=0; while not seekeof do begin
                inc(n); read(a[n]);
                readln;
        end; close(input);
        end;

        procedure fread(ad:string;var a:tchrarr;var n:longint);
        begin
        assign(input,ad); reset(input);
        n:=0; while not seekeof do begin
                inc(n); read(a[n]);
        end; close(input);
        end;

        procedure fread(ad:string;var a:tlstrarr;var n:longint);
        begin
        assign(input,ad); reset(input);
        n:=0; while not seekeof do begin
                inc(n); readln(a[n]);
                while (omiteolnspaces)and(length(a[n])>1)and(a[n][length(a[n])]=' ') do
                        a[n]:=copy(a[n],1,length(a[n])-1);
        end; close(input); while (omiteoflines)and(a[n]='') do dec(n);
        end;

        procedure compare(var s1,s2:tstrarr;var n1,n2:longint);
        var i:longint;
        begin
        for i:=1 to max(n1,n2) do
                if (s1[i]<>s2[i])and(s1[i]<>allowance)and(s2[i]<>allowance) then begin
                        writeln('Fail at Line *** ',i);
                        writeln('File 1 *** ',s1[i],' ***');
                        writeln('File 2 *** ',s2[i],' ***');
                        while true do ;
                end;
        writeln('Success');
        end;

        procedure compare(var s1,s2:tnumarr;var n1,n2:longint;r:extended);
        var i:longint;
        begin
        if r<3e-3 then
                for i:=1 to max(n1,n2) do
                        if abs(s1[i]-s2[i])>r then begin
                                writeln('Fail at Line *** ',i);
                                writeln('File 1 *** ',s1[i]:0:15,' ***');
                                writeln('File 2 *** ',s2[i]:0:15,' ***');
                                while true do ;
                        end else
        else    for i:=1 to max(n1,n2) do
                        if s2[i]<>0 then
                                if abs(s1[i]/s2[i]-1)>r then begin
                                        writeln('Fail at Line *** ',i);
                                        writeln('File 1 *** ',s1[i]:0:15,' ***');
                                        writeln('File 2 *** ',s2[i]:0:15,' ***');
                                        writeln('Fix *** ',s1[i]/s2[i]-1:0:15,' ***');
                                        while true do ;
                                end else
                        else    if (s1[i]>r*1e-3) then begin
                                        writeln('Fail at Line *** ',i);
                                        writeln('File 1 *** ',s1[i]:0:15,' ***');
                                        writeln('File 2 *** ',s2[i]:0:15,' ***');
                                        while true do ;
                                end;
        writeln('Success');
        end;

        procedure compare(var s1,s2:tchrarr;var n1,n2:longint);
        var i:longint;
        begin
        for i:=1 to max(n1,n2) do
                if (s1[i]<>s2[i])and((not omitinvalidchar)and(not(ord(s1[i])in[0..31])and(not(ord(s2[i])in[0..31])))) then begin
                        writeln('Fail at Byte *** ',i);
                        writeln('File 1 *** ',s1[i],' ***');
                        writeln('File 2 *** ',s2[i],' ***');
                        writeln('ASCII *** ',ord(s1[i]),' ',ord(s2[i]));
                        while true do ;
                end;
        writeln('Success');
        end;

        procedure compare(var s1,s2:tlstrarr;var n1,n2:longint);
        var i:longint;
        begin
        for i:=1 to max(n1,n2) do
                if (s1[i]<>s2[i])and(s1[i]<>allowance)and(s2[i]<>allowance) then begin
                        writeln('Fail at Line *** ',i);
                        writeln('File 1 *** ',s1[i],' ***');
                        writeln('File 2 *** ',s2[i],' ***');
                        while true do ;
                end;
        writeln('Success');
        end;

        procedure stdfilecmp(ad1,ad2:string);
        begin
        fread(ad1,ls1,n1); fread(ad2,ls2,n2); compare(ls1,ls2,n1,n2);
        end;

initialization

finalization

end.

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter