Pagini recente » Cod sursa (job #465543) | Cod sursa (job #3265441) | Cod sursa (job #1391401) | Cod sursa (job #325179) | Cod sursa (job #605478)
Cod sursa(job #605478)
#include<stdio.h>
#define eps 0.001
struct point
{float x,y;};
int n;
point p[1010];
float a[1010][1010];
inline float abs(float x)
{
if(x>eps)
return x;
if(x<0-eps)
return -x;
return 0;
}
int find( int x, int y)
{
int i,j,nr=0;
for(i=y+1;i<=n;++i)
if(!abs(a[x][y]-a[x][i]))
for(j=x+1;j<=n;++j)
if(!abs(a[x][y]-a[j][i])&&!abs(a[x][y]-a[j][y]))
++nr;
return nr;
}
int main()
{
freopen("patrate3.in","r",stdin);
freopen("patrate3.out","w",stdout);
int i,j,nr=0;
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%f%f",&p[i].x,&p[i].y);
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
a[i][j]=a[j][i]=(p[i].x-p[j].x)*(p[i].x-p[j].x)+(p[i].y-p[j].y)*(p[i].y-p[j].y);
for(i=1;i<=n;++i)
for(j=i+1;j<=n;++j)
nr=nr+find(i,j);
printf("%d\n",nr);
return 0;
}