Cod sursa(job #42551)

Utilizator znakeuJurba Andrei znakeu Data 29 martie 2007 12:05:19
Problema Trapez Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>

struct punct
{
	long long x,y;	
};
double d[2000][5];

int main()
{
	float panta;
	long long n,i,j,m,l,k,x=0;
	punct v[2000];
	
	FILE *in=fopen("trapez.in","r"),*out=fopen("trapez.out","w");
	fscanf(in,"%lld",&n);
	for (i=0; i<n; i++)
		fscanf(in,"%lld%lld",&v[i].x,&v[i].y);
	fclose(in);
	
	m=0;
	for (i=0; i<n-1; i++)
		for (j=i+1; j<n; j++)
		{
			k=0;
			if (v[i].x-v[j].x!=0)
				panta=((float) v[i].y - v[j].y )/((float) v[i].x - v[j].x );
			else
				panta=9999999;
			for (l=0; l<m; l++)
				if (panta==d[l][0])
				{
					d[l][1]+=1;
					l=m;
					k=1;
				}
			if (!k)
			{
				d[m][0]=panta;
				d[m][1]=1;
				m++;
			}
		}
		
	for (i=0; i<m; i++)
		x+=(int)(d[i][1]*(d[i][1]-1)/2);
	fprintf(out,"%lld\n",x);
	fclose(out);
	return 0;
}