Cod sursa(job #687095)

Utilizator noemirkNoemi Noemi noemirk Data 22 februarie 2012 08:37:20
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
typedef struct {int x,y;} PUNCT;
ifstream fi("trapez.in");
ofstream fo("trapez.out");
int a,b,n,i,j,k,rez;
PUNCT P[1005];
double D[1000005],t1;
int main()
{
	fi>>n;
	for (i=1;i<=n;i++)
		fi>>P[i].x>>P[i].y;
	k=0;
	for (i=1;i<=n;i++)
		for (j=i+1;j<=n;j++)
		{
			k++;
			a=P[i].y-P[j].y;
			b=P[i].x-P[j].x;
			D[k]=(double)a/b;
		}
	/*
	for (i=1;i<=k;i++)
	{
		t1=D[i].a;
		t2=D[i].b;
		cout<<P[t1].x<<" "<<P[t1].y<<" "<<P[t2].x<<" "<<P[t2].y<<" "<<D[i].aa<<" "<<D[i].bb<<" "<<D[i].p<<endl;
	}
	*/
	sort(D+1,D+k+1);
	rez=0;
	a=1;
	t1=D[1];
	for (i=2;i<=k;i++)
	{
		if (D[i]==t1)
			a++;
		else
		{
			rez+=(a*(a-1))/2;
			a=1;
		}
		t1=D[i];
	}
	
	fo<<rez<<endl;
	
	return 0;
}