【试题描述】
将一列数从小到大排序,并输出重复最多的数以及其次数。每个数是都大于等于零且小于2000 的整数。
【输入描述】
两行数据
第一行: 表示数的个数(n<=1500)
第二行: n个用空格隔开的整数。
【输出描述】
三行数据
第一行:重复次数最多的数
第二行:最大重复次数
第三行:从小到大排列好的n个数,每个数之间一个空格隔开。
【输入样例】
8
1 2 4 9 4 6 4 6
【输出样例】
4
3
1 2 4 4 4 6 6 9
程序:
var a:array[0..1500] of integer;
b:array[1..2000] of integer;
max,n,i,j,c,a1,k,t,s:longint;
flag:boolean;
begin
max:=0;
readln(n);
for i:=1 to n do
read(a[i]);
for i:=1 to n do
begin
a1:=a[i];
b[a1]:=b[a1]+1;
end;
for i:=1 to n do
if b[i]>max then max:=i;
writeln(max);
writeln(b[max]);
for i:=1 to n-1 do
begin
k:=i;
for j:=i+1 to n do
if a[j]<a[k] then k:=j;
if k<>i then
begin t:=a[i];a[i]:=a[k];a[k]:=t;end;
end;
s:=0;
for i:=1 to n do
inc(s);
if s=n then write(a[i])
else write(a[i],' ');
writeln;
end.