Cod sursa(job #346202)

Utilizator indestructiblecont de teste indestructible Data 7 septembrie 2009 10:25:23
Problema Triang Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <stdio.h>
#include <math.h>
#define N 1<<10
#define aprox 0.0001
int n,rez;
double a,b,c;
struct coord
{
	double x,y;
};
coord v[N];
double dist_pcte(coord a,coord b)
{
	return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
int egal(double a,double b)
{
	if (a-b>=(aprox*-1) &&  a-b<=aprox)
		return 1;
	return 0;
}
int main()
{
	freopen("triang.in","r",stdin);
	freopen("triang.out","w",stdout);
	scanf("%d",&n);
	int i,j,k;
	for (i=1; i<=n; i++)
		scanf("%lf%lf",&v[i].x,&v[i].y);
	for (i=1; i<=n-2; i++)
		for (j=i+1; j<=n-1; j++)
			for (k=j+1; k<=n; k++)
			{
				a=dist_pcte(v[i],v[j]);
				b=dist_pcte(v[j],v[k]);
				c=dist_pcte(v[i],v[k]);
				if (egal(a,b) && egal(b,c))
					rez++;
			}
	printf("%d\n",rez);
	return 0;
}