Cod sursa(job #2745716)

Utilizator Alexandru_GaloiuAlexandru Galoiu Alexandru_Galoiu Data 26 aprilie 2021 22:14:39
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <algorithm>
#include <cmath>
using namespace std;
ifstream cin("trapez.in");
ofstream cout("trapez.out");
long double panta[1000*1001/2];
struct POINT
{
    int x,y;
}v[1001];

int main()
{
    int n,k=0;
	cin>>n;
	for (int i=1;i<=n;i++)
	{
		cin>>v[i].x>>v[i].y;
		for(int j=1;j<i;j++)
		{
			long double r;
			if (v[i].x!=v[j].x)
				r=1.0*(v[i].y-v[j].y)/(v[i].x-v[j].x);
			else r=1e9;
			panta[++k]=r;
		}
	}
//	for(int i=1;i<=k;i++)
//        cout<<panta[i]<<" ";
//    cout<<'\n';
	sort(panta+1,panta+k+1);
	int i=1;

	long long cnt=0;
	while (i<=k)
	{
		int nrp=1;
		while(i<=k&&panta[i+1]==panta[i])
		{
			i++;
			nrp++;
		}
		i++;
		cnt+=nrp*(nrp-1)/2;
	}
	cout<<cnt;
	return 0;
}