讨论 / 这题很水,求大牛优化
b249265450 2012-07-14 20:06:00
点我顶贴 收藏 删除
这是我AC的程序,但是每个点都100+ms,最优解好像才40ms。。。

var

i,n,k,j,m:integer;

a,b:array[1..100] of integer;

procedure qsort(l,r:integer);

var

x,y,z,p:integer;

begin

x:=l;y:=r;p:=a[(l+r) div 2];

repeat

while a[x]<p do inc(x);

while a[y]>p do dec(y);

if x<=y then

begin

z:=a[x];a[x]:=a[y];a[y]:=z;

inc(x);dec(y);

end;

until x>y;

if l<y then qsort(l,y);

if x<r then qsort(x,r);

end;

begin

fillchar(a,sizeof(a),0);

readln(n);

for i:=1 to n do read(a[i]);

for i:=2 to n do

begin

for j:=1 to i-1 do

if a[j]=a[i] then a[i]:=1001;

end;

qsort(1,n);

for i:=1 to n do

if a[i]=1001 then

begin

m:=i-1;

break;

end;

writeln(m);

for i:=1 to m do write(a[i],' ');

end.

查看更多回复
提交回复