Cod sursa(job #704021)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 2 martie 2012 15:59:55
Problema Trapez Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <algorithm>
using namespace std;

int n,x[1010],y[1010],lung,sol;
double p[1000100];
inline double panta(int x1,int y1,int x2,int y2)
{
	return 1.0*((1.0*(x2-x1))/(1.0*(y2-y1)));
}

inline bool cmp(double a,double b)
{
	return a<b;
}

int main()
{
	ifstream in("trapez.in");
	ofstream out("trapez.out");
	
	in>>n;
	for(int i=1;i<=n;++i)
	{
		in>>x[i]>>y[i];
		
		for(int j=i-1;j>=1;--j)
		{
			p[++lung]=panta(x[i],y[i],x[j],y[j]);
		}
	}
	
	sort(p+1,p+lung+1,cmp);
	
	for(int i=1;i<=lung;++i)
	{
		int sv=i,nr=0;
		while(p[sv]==p[i])
		{
			++i;
			++nr;
		}
		
		sol=sol+nr*(nr-1)/2;
	}
	
	out<<sol<<'\n';
	out.close();
	return 0;
}