Cod sursa(job #1981393)

Utilizator raisacmtAxenie Raisa raisacmt Data 15 mai 2017 16:15:34
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <cstdio>
#include<vector>
#include<algorithm>
#include<math.h>
using namespace std;
const double eps=1.e-14;
const double INF=2000000000;
vector <double> m;
struct POINT 
{
	int x,y;
};
POINT v[1005];
double panta (POINT a,POINT b)
{
	if(b.x==a.x)
	return INF;
	return (1.0*b.y-a.y)/(b.x-a.x);
}
int main()
{
    freopen("trapez.in","r",stdin);
    freopen("trapez.out","w",stdout);
    int k=0,n,i,j,tempx,tempy;
    scanf("%d",&n);
    for(i=1; i<=n; i++)
    {
    	scanf("%d%d",&tempx,&tempy);
    	v[i].x=tempx;
    	v[i].y=tempy;
    }
    for(i=1; i<n; i++)
		for(j=i+1; j<=n; j++)
		{
			m.push_back(panta(v[i],v[j]));
		}
		k=m.size();
	sort(m.begin(),m.end());
	int l1=1,s=0;
	double nr=m[0];
	for(i=1; i<k; i++)
	{
		if(fabs(m[i]-nr)<eps)
			l1++;
			else
			s+=l1*(l1-1)/2,l1=1,nr=m[i];
	}
	printf("%d",s);
    return 0;
}