Cod sursa(job #2051400)

Utilizator NesteazyNastasia Alexandru Nesteazy Data 28 octombrie 2017 22:08:25
Problema Triang Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include<fstream>
#include<cmath>
#include<stdio.h>
using namespace std;
struct punct{
		double x,y;
	};
double dist(punct a,punct b)
{
	return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
bool comparedoub(double a,double b)
{
	if(abs(a-b)<0.001) return 1;
	else return 0;
}


int main()
{
	ifstream fin("triang.in");
	ofstream fout("triang.out");	
	punct p[1500];
	int N;fin>>N;
	int nr=0;
	for(int i=0;i<N;i++)
	{
		fin>>p[i].x;
		fin>>p[i].y;
	}
	double aux;
	for(int i=0;i<N-2;i++)
	{
		for(int j=i+1;j<N-1;j++)
		{
			aux=dist(p[i],p[j]);
			for(int k=j+1;k<N;k++)
			{
				if( comparedoub(aux,dist(p[i],p[k]))) if(comparedoub(aux,dist(p[j],p[k])) ) nr++;
				//printf("%d %d %d %d\n",i,j,k,comparedoub(dist(p[i],p[j]),dist(p[i],p[k]))&&comparedoub(dist(p[i],p[j]),dist(p[j],p[k])) );
			}
		}
	}
/*	double aux;
	//int nr2=0;
	for(int i=0;i<N-2;i++)
	{
		//nr2=0;
		aux=dist(p[i],p[i+1]);
		for(int j=i+2;j<N;j++)
		{
		if(comparedoub(aux,dist(p[j],p[i+1]))) if(comparedoub(aux,dist(p[i+1],p[j]))) nr++;
		printf("%d %d %d %d\n",i,i+1,j,((comparedoub(aux,dist(p[j],p[i+1])))&&(comparedoub(aux,dist(p[i+1],p[j])))));
	}
		
	}
*/	
	
	
	
	
	fout<<nr;
	
	
	
	
}