Cod sursa(job #46695)

Utilizator yoyolichIoana Ardeleanu yoyolich Data 2 aprilie 2007 21:14:15
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
#define oo 2000000001
using namespace std;
FILE *f=fopen("trapez.in","r"), *g=fopen("trapez.out","w");
struct nod{int x, y;} a[1001];
int n,nr,k,m,i,j,ok,t1,t2,p,aux;
double b[1002001];
int comp(double * a, double * b)
{
	if(* a > * b) return 1;
	return 0;
}
int main()
{
	fscanf(f,"%d",&n);
	for(i=1;i<=n;i++)
		fscanf(f,"%d %d",&a[i].x,&a[i].y);
	fclose(f);
	for(i=1;i<n;i++)
		for(j=i+1;j<=n;j++)
			{
			 t1=a[i].y-a[j].y;
			  t2=a[i].x-a[j].x;			 
			  if(t1==0) b[++m]=oo;
			  else if(t2==0) b[++m]=0;
			  else
			     b[++m]=(double)t1/t2;
			}
	sort(b+1,b+m+1);
	for(i=1;i<m;i=j)
	{j=i+1;k=0;
	 while(b[i]==b[j]) {j++;k++;}
	 nr+=k*(k+1)/2;
	}
	//for(i=1;i<=m;i++) fprintf(g,"%lf ",b[i]);
	fprintf(g,"%d\n",nr);
		fclose(g);
		return 0;
}