program stock;
type
fxz=array[1..1000] of real;
var
f1,f2:text;
i,j,q,n,v:longint;
p,ls:real;
a:fxz;
begin assign(f1,'stock.in');
assign(f2,'stock.out');
reset(f1);rewrite(f2);
readln(f1,n);
for i:=1 to n do
read(f1,a[i]);
readln(f1);
readln(f1,v);
ls:=0;q:=0;
for i:=1 to n-1 do
for j:=i+1 to n do begin inc(q);
if (a[j]>a[i])and(a[i]<=v) then
if trunc(v/a[i])*(a[j]-a[i])>=ls then ls:=trunc(v/a[i])*(a[j]-a[i]);
end;
writeln(f2,ls:0:3);
p:=0;
for i:=1 to n-1 do
for j:=i+1 to n do if (trunc(v/a[i])*(a[j]-a[i])>0)and(a[i]<=v) then p:=p+1/q;
writeln(f2,p:0:3);
close(f1);close(f2);
end.