Cod sursa(job #221676)

Utilizator allynaAlina S allyna Data 17 noiembrie 2008 17:08:29
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream.h>
#include<iostream.h>
#include<algorithm>
using namespace std;
struct punct
{
	double x,y;
};
int n,i,j,k,inc=1,sf,xx,yy;
double d[1000010];
punct a[1010];


double panta( punct p1, punct p2)
{
	double p;
	if(p1.y==p2.y) p=-1;
	else 
	p=(p1.x-p2.x)/(p1.y-p2.y);
/*	if (p == 0.25) {
		cout<<p1.x<<p1.y<<endl;
		cout<<p2.x<<p2.y<<endl;
	}*/
	return p;
}
	
int main()
{
	ifstream in("trapez.in");
	ofstream out("trapez.out");
	in>>n;
	for(i=1;i<=n;i++)
		in>>a[i].x>>a[i].y;
	for(i=1;i<n;i++)
		for(j=i+1;j<=n;j++)
			d[++k]=panta(a[i],a[j]);
	sort(d+1,d+k+1);
	inc=1;
	for(i=1;i<=k;i++) {
		if(d[i+1]==d[i])
			sf++;
			else
			{
				sf++;
				xx=sf-inc+1;
				yy=yy+((xx*(xx-1))/2);
				inc=i+1;
				
		}
	}
out<<yy<<endl;
return 0;
}