讨论 / 汗
tyr007 2009-04-20 04:47:00
点我顶贴 收藏 删除
题目写的好强...

program Project1;

var

i,j,k,l,m,n:longint;

ss:array[1..1001]of string;

function pan(a,b:string):longint;

var

i,j,k,len:longint;

begin

if length(a)>length(b)

then len:=length(b)

else len:=length(a);

for i:=1 to len do

begin

if ord(a[i])<ord(b[i])

then exit(1);

if ord(b[i])<ord(a[i])

then exit(-1);

end;

if length(a)>length(b)

then exit(-1);

if length(b)>length(a)

then exit(1);

exit(0);

end;

procedure pai(a,b:longint);

var

i,j:longint;

k,t:string;

begin

i:=a;

j:=b;

k:=ss[(a+b)div 2];

repeat

while pan(ss[i],k)=1 do inc(i);

while pan(k,ss[j])=1 do dec(j);

if i<=j

then begin

t:=ss[i];

ss[i]:=ss[j];

ss[j]:=t;

inc(i);

dec(j);

end;

until i>j;

if i<b

then pai(i,b);

if j>a

then pai(a,j);

end;

begin

///

end.

猪都知道中间是what..

查看更多回复
提交回复