Cod sursa(job #605478)

Utilizator akumariaPatrascanu Andra-Maria akumaria Data 29 iulie 2011 13:57:47
Problema Patrate 3 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#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;
}