Cod sursa(job #803553)

Utilizator tibi9876Marin Tiberiu tibi9876 Data 27 octombrie 2012 19:43:24
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<fstream>
#include<cmath>
#include<algorithm>
using namespace std;

struct pct
{
	int x,y;
};

const double t=0.000001;
long long s;
double a[1000000];
pct v[1001];
int i,n,m,l,j;

int main()
{
	ifstream f("trapez.in");
	ofstream g("trapez.out");
	f >> n;
	for (i=1;i<=n;i++)
		f >> v[i].x >> v[i].y;
	for (i=1;i<=n;i++)
		for (j=i+1;j<=n;j++)
			a[++m]=fabs(atan2((double)v[i].y-v[j].y,(double)v[i].x-v[j].x));
	sort(a+1,a+m+1);
	for (i=1;i<=m;i++)
	{
		l=1;j=i;
		while ((++j<=n) && (fabs(a[j]-a[i])<t))
			l++;
		i=j-1;
		s+=l*(l-1)/2;
	}
	g << s;
}