讨论 / 为什么我只有50分,求各位大师帮忙看看
wnjgto 2008-11-10 14:01:00
点我顶贴 收藏 删除
我用的是QSort阿,为何,只有50分?

program count;

var

n,i,j,mn:longint;

a:array [1..10000,1..2] of longint;

t:longint;

b:boolean;

procedure qsort;

procedure sort(l,r: longint);

var

i,j,x,y1,y2: longint;

begin

i:=l;

j:=r;

x:=a[(l+r) div 2,1];

repeat

while a[i,1]<x do

inc(i);

while x<a[j,1] do

dec(j);

if not(i>j) then

begin

y1:=a[i,1]; y2:=a[i,2];

a[i,1]:=a[j,1]; a[i,2]:=a[j,2];

a[j,1]:=y1; a[j,2]:=y2;

inc(i);

j:=j-1;

end;

until i>j;

if l<j then

sort(l,j);

if i<r then

sort(i,r);

end;

begin

sort(1,mn-1);

end;

begin

readln(n);

mn:=1;

for i:=1 to n do begin

b:=false;

readln(t);

for j:=1 to mn do

if t=a[j,1] then begin b:=true; break; end;

if not b then begin

a[mn,1]:=t;

a[mn,2]:=1;

mn:=mn+1;

end else a[j,2]:=a[j,2]+1;

end;

qsort;

for i:=1 to mn-1 do writeln(a[i,1], ,a[i,2]);

end.

求各位大师帮忙看看

#1 zhhyoi@2008-11-10 07:51:00
回复 删除
卡快排的题
#2 xiaokeke@2008-11-10 14:01:00
回复 删除
事实上,处理的好用qsort也可以过的
查看更多回复
提交回复