Cod sursa(job #327588)

Utilizator cotofanaCotofana Cristian cotofana Data 29 iunie 2009 15:19:25
Problema Trapez Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <stdio.h>
#define dim 1001
#define dim2 dim*(dim-1)/2

int n, x[dim], y[dim], nr[dim2], num[dim2], ct=0, fol[dim2];

int main() {
	int i, j, sol, tmp;
	freopen("trapez.in", "r", stdin);
	freopen("trapez.out", "w", stdout);
	scanf("%d\n", &n);
	for (i=1; i<=n; ++i) scanf("%d %d\n", &x[i], &y[i]);
	for (i=1; i<n; ++i)
		for (j=i+1; j<=n; ++j) {
			++ct;
			nr[ct]=y[j]-y[i];
			num[ct]=x[j]-x[i];
		}
	sol=0;
	for (i=1; i<ct; ++i) {
		if (fol[i]) continue;
		fol[i]=1;
		tmp=0;
		for (j=i+1; j<=ct; ++j) {
			if (fol[j]) continue;
			if ((!nr[i] && !nr[j]) || (!num[i] && !num[j]) || (nr[i]*num[j]!=0 && nr[j]*num[i]!=0 && nr[i]*num[j]==nr[j]*num[i])) {
				fol[j]=1;
				tmp++;
			}
		}
		sol+=tmp*(tmp+1)/2;
	}
	printf("%d\n", sol);
	return 0;
}