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..