Cod sursa(job #476679)

Utilizator andrei.dAndrei Diaconeasa andrei.d Data 12 august 2010 00:39:07
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <cstdio>
#include <algorithm>

using namespace std;

#define file_in "trapez.in"
#define file_out "trapez.out"

int nr=0,n,a[1010],b[1010],e=0;
double v[1<<20];

void citire()
{
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%d", &n);
	for (int i=1;i<=n;++i)
	{
		scanf("%d %d ", &a[i], &b[i]);
		
		for (int j=1;j<i;++j)
		{
			if (b[i]==b[j])
			     e++;
			else
				v[++nr]=(double)(a[i]-a[j])/(double)(b[i]-b[j]);
		}
	}
}

void solve()
{
	int i,j,sol;
	sol=0;
	sort(v+1,v+nr+1);
	for (i=1;i<nr;++i)
		 for (j=i+1;j<=nr && v[i]==v[j];++j,sol++);
	printf("%d", sol+e*(e-1)/2);
}		 

int main()
{
	citire();
	solve();
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
}