Cod sursa(job #387847)

Utilizator Balmus_MaximBalmus Maximilian Balmus_Maxim Data 28 ianuarie 2010 16:48:24
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <stdio.h>
#include <algorithm>
using namespace std;

double a[500001];

int main()
{
	int n,i;
	long x[1004],y[1004];
	freopen("trapez.in","r",stdin);
	freopen("trapez.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		scanf("%d",&x[i]);
		scanf("%d",&y[i]);
	}
	int j,l=1;
	for(i=1;i<=n;i++){
		for(j=i+1;j<=n;j++){
			if(x[i]==x[j]){
				a[l]=100000;
			}else{
				a[l]=(double) (y[j]-y[i])/(double) (x[j]-x[i]);
			}
			//printf("%lf\n",a[l]);
			l=l+1;
			//printf("%d\n",l);
		}
	}
	l=l-1;
	int s=0,m=1;
	sort(a+1,a+l+1);
	for(i=2;i<=l;i++){
		if(a[i]==a[i-1]){
			m=m+1;
		}else{
			s=s+m*(m-1)/2;
			m=1;
		}
	}
	printf("%d",s);
	return 0;
}