Cod sursa(job #569589)

Utilizator rootsroots1 roots Data 1 aprilie 2011 19:05:57
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>
#include <algorithm>

#define INF 2000000002
#define Dim 1001

using namespace std;

struct vector
{
	int x,y;
}v[Dim];

double p[Dim*(Dim+1)/2];

int main()
{
	int sol,nr,i,j,size,N;

	freopen("trapez.in","r",stdin);

	scanf("%d",&N);
	for(i=1;i<=N;i++) scanf("%d%d",&v[i].x,&v[i].y);

	size=0;
	for(i=1;i<=N;i++)
		for(j=i+1;j<=N;j++)
			if(v[i].x!=v[j].x) p[++size]=(double)(v[i].y-v[j].y)/(v[i].x-v[j].x);
			else p[++size]=INF;

	sort(p+1,p+size+1);

	sol=0;
	nr=1;

	for(i=2;i<=size;i++)
		if(p[i]==p[i-1]) nr++;
		else
		{
			sol+=nr*(nr-1)/2;
			nr=1;
		}
	sol+=nr*(nr-1)/2;

	freopen("trapez.out","w",stdout);

	printf("%d\n",sol);

	return 0;
}