Cod sursa(job #717037)

Utilizator Oancea.CatalinOancea Catalin Oancea.Catalin Data 19 martie 2012 16:14:39
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<cstdio>
#include<fstream>
#include<iomanip>
using namespace std;
#define IN "trapez.in"
#define OUT "trapez.out"
#define INF 0x3f3f3f3f
#define MaxN 500005
#define MaxM 1005
fstream f(IN, ios::in), g(OUT, ios::out);
double panta[MaxN];
struct{
	double x, y;
}point[MaxM];
unsigned long long i, j, n, N,cate, nr;
int main()
{
	f>>n;
	for(i=1; i<=n; i++)
		f>>point[i].x>>point[i].y;
	
	for(i=1; i<=n; i++)
	{
		for(j=i+1; j<=n; j++)
		{
			N++;
			if(point[i].x==point[j].x)
				panta[N]=INF;
			else
				panta[N]=(point[j].y-point[i].y)/(point[j].x-point[i].x);
		}
	}
	sort(panta+1,panta+N+1);
	nr=1;
	for(i=1; i<N; i++)
	{
		if(panta[i]==panta[i+1])
			nr++;
		else
		{
			cate+=nr*(nr-1)/2;
			nr=1;
		}
	}
	g<<cate<<endl;
	
}