先计算出凸包再在凸包上枚举对角线然后用旋转卡壳求最大四边形面积
var
n,i,a1:longint;
x,y:array[1..2000] of real;
a:array[1..4000] of longint;
ans:real;
function cj(k,i,j:longint):real;
begin
cj:=(x[i]-x[k])*(y[j]-y[k])-(x[j]-x[k])*(y[i]-y[k]);
end;
function jl(i,j:longint):real;
begin
jl:=sqrt(sqr(x[i]-x[j])+sqr(y[i]-y[j]));
end;
procedure tb;
var
p,q,s:real;
i,t,u,w:longint;
begin
p:=maxlongint;
q:=maxlongint;
for i:=1 to n do
if (x[i]<p)or(x[i]=p)and(y[i]<q) then
begin
p:=x[i];
q:=y[i];
u:=i;
end;
t:=0;
a1:=1;
a[1]:=u;
while t<>u do
begin
if t=0 then t:=u;
for i:=1 to n do
if i<>t then
begin
w:=i;
break;
end;
for i:=1 to n do
begin
s:=cj(t,w,i);
if (s>0)or(s=0)and(jl(t,w)<jl(t,i)) then w:=i;
end;
inc(a1);
a[a1]:=w;
t:=w;
end;
dec(a1);
end;
procedure xzkk;
var
i,j,b,c:longint;
s:real;
begin
for i:=1 to a1 do
begin
b:=i mod a1+1;
c:=(i+1) mod a1+1;
for j:=i+2 to a1 do
begin
while (abs(cj(a[i],a[j],a[b]))<abs(cj(a[i],a[j],a[b mod a1+1])))and(b mod a1+1<>j) do
b:=b mod a1+1;
while (abs(cj(a[i],a[j],a[c]))<abs(cj(a[i],a[j],a[c mod a1+1])))and(c mod a1+1<>i) do
c:=c mod a1+1;
s:=abs(cj(a[i],a[j],a[b]))/2+abs(cj(a[i],a[j],a[c]))/2;
if s>ans then ans:=s;
end;
end;
end;
begin
readln(n);
for i:=1 to n do
readln(x[i],y[i]);
tb;
xzkk;
writeln(ans:0:3);
end.