Cod sursa(job #387851)

Utilizator stef2503Stefan Stan stef2503 Data 28 ianuarie 2010 17:01:10
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
#include <algorithm>
using namespace std;

double v[500001];

int main () {
	freopen("trapez.in", "r", stdin);
	freopen("trapez.out", "w", stdout);
	int n, i, j, k, z, t=0, nu=2000000001;
	int x[1001], y[1001];
	scanf("%d", &n);
	for (i=1; i<=n; i++) {
		scanf("%d %d", &x[i], &y[i]);
	}
	k=1;
	for (i=1; i<=n; i++) {
		for (j=i+1; j<=n; j++) {
			if (x[i]!=x[j]) {
				v[k]=(double) (y[i]-y[j])/(double)(x[i]-x[j]);
				k++;
			} else {
				v[k]=nu;
				k++;
			}
		}
	}
	k--;
	sort (v+1, v+k+1);
	for (i=1; i<k; i++) {
		z=1;
		while (v[i]==v[i+1]) {
			z++;
			i++;
		}
		t+=(z-1)*z/2;
	}
	printf("%d", t);
	return 0;
}