program patrate3;{pre ONI 2007 runda 1}
type sir=array[1..1000,1..2] of real;
var f,g:text;
a:sir;
n,i,k,np,j:integer;
x,mijx,mijy,dx,dy,x2,y2,x3,y3:real;
function verific2(i,j:integer;x2,y2:real;a:sir) :boolean;
var l,c:integer;
begin
l:=i;
while a[l,1]<x2 do l:=l+1;
if a[l,1]>x2 then verific2:=false
else begin
c:=l;
while (a[c,1]=x2) and (a[c,2]<>y2) do c:=c+1;
if (a[c,1]=x2) and (a[c,2]=y2)then verific2:=true
else verific2:=false;
end;
end;
function verific3(i,j:integer;x3,y3:real;a:sir) :boolean;
var l,c:integer;
begin
l:=j;
while a[l,1]>x3 do
l:=l-1;
if a[l,1]<x3 then
verific3:=false
else begin
c:=l;
while (a[c,1]=x3) and (a[c,2]<>y3) do c:=c+1;
if (a[c,1]=x3) and (a[c,2]=y3)then verific3:=true
else verific3:=false;
end;
end;
begin
assign(f,'patrate3.in');reset(f);
assign(g,'patrate.out'); rewrite(g);
readln(f,n);
for i:=1 to n do
readln(f,a[i,1],a[i,2]);
repeat
k:=0;
for i:=1 to n-1 do
if a[i,1]>a[i+1,1] then begin k:=1;
x:=a[i,1]; a[i,1]:=a[i+1,1]; a[i+1,1]:=x;
x:=a[i,2]; a[i,2]:=a[i+1,2]; a[i+1,2]:=x
end
else if( a[i,1]=a[i+1,1]) and ( a[i,2]>a[i+1,2] )then
begin k:=1;
x:=a[i,1]; a[i,1]:=a[i+1,1]; a[i+1,1]:=x;
x:=a[i,2]; a[i,2]:=a[i+1,2]; a[i+1,2]:=x
end;
until k=0;
np:=0;
for i:=1 to n-1 do
for j:=i+1 to n do
begin
mijx:=(a[i,1]+a[j,1])/2; mijy:=(a[i,2]+a[j,2])/2;
dx:=abs(a[i,1]-mijx); dy:=abs(a[i,2]-mijy);
if a[i,2]<a[j,2] then
begin x2:=mijx +dy; y2:=mijy-dx;
if verific2(i,j,x2,y2,a) then
begin
x3:=mijx-dy;y3:=mijy+dx;
if verific3(i,j,x3,y3,a) then np:=np+1;
end
end
else
begin x2:=mijx -dy; y2:=mijy-dx;
if verific3(i,j,x2,y2,a) then
begin
x3:=mijx+dy;y3:=mijy+dx;
if verific2(i,j,x3,y3,a) then np:=np+1;
end
end
end;
writeln(g,np);
close(f);close(g);
end.