Cod sursa(job #345829)

Utilizator Alexa_ioana_14Antoche Ioana Alexandra Alexa_ioana_14 Data 4 septembrie 2009 22:23:27
Problema Triang Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<cstdio>
#include<algorithm>
#define N 15001
#define M 37507501
using namespace std;
const double eps=(double)0.0001;
struct triang{double x,y;}v[N];
short int n;
int num;
double a[M];
bool compar(const double &a,const double&b)
{
	return a-b<eps;
}
void citire()
{
	freopen("triang.in","r",stdin);
	freopen("triang.out","w",stdout);
	scanf("%hd",&n);
	for (short int i=1; i<=n; ++i)
	{
		scanf("%lf",&v[i].x);
		scanf("%lf",&v[i].y);
		for (short int j=1; j<i; ++j)
			a[++num]=(v[i].x-v[j].x)*(v[i].x-v[j].x)*1000+(v[i].y-v[j].y)*(v[i].y-v[j].y)*1000;
	}
}
void numar()
{
	int nr=1,rez=0;
	for (int i=1; i<num; ++i)
		if (a[i+1]-a[i]<=eps)
			++nr;
		else
		{
			rez+=nr*(nr-1)/2;
			nr=1;
		}
	printf("%d",rez);
}
int main()
{
	citire();
	sort (a+1,a+1+num,compar);
	numar();
	return 0;
}