Cod sursa(job #358851)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 24 octombrie 2009 18:29:46
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

FILE *f,*s;

int n,i,j,k,rez;

double v2[1000005];

struct punct
{
	double x;
	double y;
};	

punct v1[1005];

int cmp(punct a, punct b)
{
	if(a.x!=b.x)
		return a.x<b.x;
	else
		return a.y<b.y;
}

int main()
{
	f=fopen("trapez.in","r");
	s=fopen("trapez.out","w");
	
	fscanf(f,"%d",&n);
	
	for(i=1;i<=n;i++)
		fscanf(f,"%lf %lf",&v1[i].x,&v1[i].y);
	
	for(i=1;i<n;i++)
		for(j=i+1;j<=n;j++)
			v2[++k]=(v1[j].y-v1[i].y)/(v1[j].x-v1[i].x);
		
	sort(v2+1,v2+k+1);
		
	n=0;
	for(i=1;i<=k;i++)
	{
		if(v2[i]==v2[i-1])
			n++;
		else
		{
			rez+=n*(n+1)/2;
			n=0;
		}
	}	

	fprintf(s,"%d",rez);
	
	fclose(s);
	
	return 0;
}