AUCTION - Going Once, Going Twice, Gone!
Tác giả: flashmt
Ngôn ngữ: Pascal
var a:array[1..1000] of longint;
n,m,pos:integer;
re:longint;
procedure rf;
var i:integer;
begin
readln(n,m);
for i:=1 to m do readln(a[i]);
end;
procedure sort(l,r:integer);
var i,j:integer; x,y:longint;
begin
i:=l; j:=r; x:=a[(i+j) div 2];
repeat
while a[i]<x do i:=i+1;
while a[j]>x do j:=j-1;
if i<=j then
begin
y:=a[i]; a[i]:=a[j]; a[j]:=y;
i:=i+1; j:=j-1;
end;
until i>j;
if i<r then sort(i,r);
if j>l then sort(l,j);
end;
procedure pr;
var i,j,t:integer;
f:text;
begin
sort(1,m);
re:=0; pos:=0;
for i:=1 to m do
begin
if m-i+1<=n then t:=m-i+1
else t:=n;
if a[i]*t>re then
begin
re:=a[i]*t;
pos:=i;
end;
end;
write(a[pos],' ',re);
end;
begin
rf;
pr;
end.