Cod sursa(job #305992)

Utilizator luk17Luca Bogdan luk17 Data 19 aprilie 2009 11:58:43
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<stdio.h>
#include<stdlib.h>

#define NMAX 1001

int x[NMAX],y[NMAX],n;

struct dreapta
{
	int numitor,numarator;
};
dreapta m[NMAX*NMAX];


int cmp(const void* a,const void* b)
{
	dreapta x,y;
	x=*(dreapta*)a;
	y=*(dreapta*)b;

	if(x.numarator*y.numitor>x.numitor*y.numarator)
		return 1;
	else
		if(x.numarator*y.numitor<x.numitor*y.numarator)
			return -1;
		else
			return 0;
}

int main()
{
	int i,j,contor=0,lung=0;

	freopen("trapez.in","r",stdin);
	freopen("trapez.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		scanf("%d%d",&x[i],&y[i]);

	for(i=1;i<n;i++)
		for(j=1;j<=n;j++)
		if(i!=j)
		{
			m[++lung].numarator=x[i]-x[j];
			m[lung].numitor=y[i]-y[j];
		}
		qsort(m,lung,sizeof(dreapta),cmp);


	for(i=1;i<lung;i++)
	{
		if(m[i].numarator*m[i+1].numitor==m[i].numitor*m[i+1].numarator)
			contor++;
	}
	printf("%d",contor/2);
	return 0;
}