Cod sursa(job #346204)

Utilizator indestructiblecont de teste indestructible Data 7 septembrie 2009 10:29:23
Problema Triang Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 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,bun;
	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++)
		{
			bun=0;
			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++;
					bun=1;
				}
				else
					if (bun)
						break;
			}
		}
	printf("%d\n",rez);
	return 0;
}