Cod sursa(job #2975083)

Utilizator alexdmnDamian Alexandru alexdmn Data 5 februarie 2023 12:55:04
Problema Trapez Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <algorithm>

using namespace std;
struct dreapta
{
		long long int dy, dx;
}f[1000005];
long long int a[1005], b[1005];

long long int cmp(dreapta x, dreapta y)
{
	return x.dy*y.dx<x.dx*y.dy;
}
int main()
{
		ifstream cin("trapez.in");
		ofstream cout("trapez.out");

		long long int n, h=0, cnt=1, s=0;
		cin>>n;

		for(int i=0;i<n;i++)
		{
			cin>>a[i]>>b[i];
		}

		for(int i=0;i<n-1;i++)
		{
			for(int j=i+1;j<n;j++)
			{
				f[h].dx=a[i]-a[j];
				f[h].dy=b[i]-b[j];
				h++;
			}
		}

		sort(f, f+h, cmp);

		for(int i=1;i<h;i++)
		{
			if(f[i-1].dy*f[i].dx==f[i-1].dx*f[i].dy)
				cnt++;
			else
			{
        s+=(cnt*(cnt-1)/2);
        cnt=1;
			}
		}
		s+=(cnt*(cnt-1)/2);

		cout<<s;

    return 0;
}