#include<bits/stdc++.h>
using namespace std;
int xy[2][410];//二维数组存放横纵坐标
int length(int x1,int y1,int x2,int y2)
{
return (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);//计算两点间距离的平方
}
bool panduan(int x1,int y1,int x2,int y2,int x3,int y3)
{
if(x1+x3==2*x2&&y1+y3==2*y2)//共线
return false;
else if(x1+x2==2*x3&&y1+y2==2*y3)
return false;
else if(x2+x3==2*x1&&y2+y3==2*y1)
return false;
else if(length(x1,y1,x2,y2)==length(x1,y1,x3,y3))//等腰
return true;
else if(length(x1,y1,x2,y2)==length(x2,y2,x3,y3))
return true;
else if(length(x1,y1,x3,y3)==length(x2,y2,x3,y3))
return true;
else
return false;
}
int main()
{
int n,i=0;
cin>>n;
for(i=0;i<n;i++)
{
cin>>xy[0][i]>>xy[1][i];
}
int a,b,c,cnt=0;
for(a=0;a<n-2;a++)//三层循环枚举三个坐标
{
for(b=a+1;b<n-1;b++)
{
for(c=b+1;c<n;c++)
{
if(panduan(xy[0][a],xy[1][a],xy[0][b],xy[1][b],xy[0][c],xy[1][c]))
//cout<<a<<b<<c<<endl;
cnt++;//计数
//cout<<a<<b<<c<<endl;
}
}
}
cout<<cnt;输出
return 0;
}