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.