Cod sursa(job #518680)

Utilizator ms-ninjacristescu liviu ms-ninja Data 2 ianuarie 2011 18:44:44
Problema Triang Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
using namespace std;
#define dim 0.001
struct lista
{
	float a,b;
}v[1501];

int cmp(lista x, lista y)
{
	return x.a<y.a || (x.a==y.a && x.b<y.b);
};

int main()
{
	ifstream fin("triang.in");
	ofstream fout("triang.out");
	int n, i , j , k;
	fin>>n;
	
	for(i=1;i<=n;++i)
		fin>>v[i].a >>v[i].b;
	
	sort(v+1,v+n+1,cmp);
	int nr=0;
	for(i=1;i<=n-2;++i)
		for(j=i+1;j<=n-1;++j)
			for(k=j+1;k<=n;++k)
			{
				float aux1=0,aux2=0,aux3=0;
				aux1=(v[i].a-v[j].a)*(v[i].a-v[j].a)+(v[i].b-v[j].b)*(v[i].b-v[j].b);
				aux2=(v[i].a-v[k].a)*(v[i].a-v[k].a)+(v[i].b-v[k].b)*(v[i].b-v[k].b);
				aux3=(v[k].a-v[j].a)*(v[k].a-v[j].a)+(v[k].b-v[j].b)*(v[k].b-v[j].b);
				
				if(aux1==aux2 || aux1==aux2-dim || aux1-dim==aux2)
					if(aux1==aux3 || aux1==aux3-dim || aux1-dim==aux3)
						if(aux3==aux2 || aux3==aux2-dim || aux3-dim==aux2)
							++nr;
			}
	fout<<nr;
	return 0;
}