Cod sursa(job #497337)

Utilizator drywaterLazar Vlad drywater Data 2 noiembrie 2010 10:35:08
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>
#include <algorithm>
using namespace std;
FILE *f=fopen("trapez.in","r"),*g=fopen("trapez.out","w");
int n,i,j,k;
long long sol;
struct punct{int x;int y;};

punct a[1001];
double z[1000001];

int main(void)
{
	fscanf(f,"%d",&n);
	k=0;
	for (i=1;i<=n;i++)
	{
		fscanf(f,"%d%d",&a[i].x,&a[i].y);
		for (j=1;j<i;j++)
		{
			if (a[i].x-a[j].x!=0)
			{
			z[++k]=(a[i].y-a[j].y);
			z[k]/=(a[i].x-a[j].x);}
			else z[++k]=123456;
		
		}
	}
	sort(z+1,z+k+1);
	i=1;
	while (i<k)
	{
		int c=1;
		while (z[i]==z[i+1] && i<k)
			{i++; c++;}
		sol+=c*(c-1)/2;
		if (c==1) i++;
	}
	fprintf(g,"%lld\n",sol);
	return 0;
}