Cod sursa(job #775994)

Utilizator alex_ovidiunituAlex Ovidiu Nitu alex_ovidiunitu Data 9 august 2012 16:02:19
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<iostream>
#include<algorithm>
#include<fstream>
using namespace std;
struct punct{double x,y;};
punct P[1012];
double a[1010*1010/2],x,y;
int main(void)
{
	fstream f,g;
	f.open("trapez.in",ios::in);
	g.open("trapez.out",ios::out);
	int i,n,N=0,paraleloy=0,q=0,rez=0,j;
	f>>n;
	for (i=1;i<=n;i++)
		f>>P[i].x>>P[i].y;
	for (i=1;i<=n;i++)
		for (j=i+1;j<=n;j++)
		{
			x=P[j].x-P[i].x;
			y=P[j].y-P[i].y;
			if (y==0)
				paraleloy++;
			else
				a[++N]=x/y;
		}
	sort(a+1,a+1+N);
	for (i=1;i<N;i++)
		if (a[i+1]==a[i])
			q++;
		else
		{
			rez=rez+q*(q+1)/2;
			q=0;
		}
	rez=rez+q*(q+1)/2;
	rez=rez+paraleloy*(paraleloy+1)/2;
	g<<rez;
}