Cod sursa(job #343777)

Utilizator Alexa_ioana_14Antoche Ioana Alexandra Alexa_ioana_14 Data 27 august 2009 12:26:15
Problema Trapez Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<cstdio>
#define N 1024
#define M 500501
struct trapez{long long x,y;}v[N],p[M];
short int n;
long long num=0,dr=0;
bool b[M];void citire()
{
	freopen("trapez.in","r",stdin);
	freopen("trapez.out","w",stdout);
	scanf("%hd",&n);
	for (short int i=1; i<=n; ++i)
		scanf("%lld%lld",&v[i].x,&v[i].y);
}
void gasesc()
{
	for (int i=1; i<=n; ++i)
		for (int j=i+1; j<=n; ++j)
		{
			p[++num].y=v[i].y-v[j].y;
			p[num].x=v[i].x-v[j].x;
		}
	n=num;
	num=1;
	dr=0;
	int i=1;
	for ( i=1;i<n; ++i)
	{
		num=1;
		for (int j=i+1; j<=n; ++j)
		{
			if (!b[j])
				if (p[i].x*p[j].y==p[j].x*p[i].y)
				{
				++num;
				b[j]=true;
				}
		}
		dr+=(num-1)*num/2;
	}
	printf("%lld",dr);
}
int main()
{
	citire();
	gasesc();
	return 0;
}