Cod sursa(job #2754525)

Utilizator AndreiCroitoruAndrei Croitoru AndreiCroitoru Data 25 mai 2021 23:19:11
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
// trapez - infoarena
#include <bits/stdc++.h>
using namespace std;

struct ura{
	int x,y;
};
ura v[1001];
vector <pair<int,int>> x;
int main()
{
	ifstream cin("trapez.in");
	ofstream cout("trapez.out");
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>v[i].x>>v[i].y;
	}
	for(int i=1;i<=n;i++)	
	{
		for(int j=i+1;j<=n;j++)
		{
			int dl=v[j].x-v[i].x;
			int dc=v[j].y-v[i].y;
			int gcd=__gcd(dl,dc);
			dl/=gcd;
			dc/=gcd;
			x.push_back({dl,dc});
		}
	}
	sort(x.begin(),x.end());
	int ans=0,aux=0;
	for(int i=1;i<(int)x.size();i++)
	{
		if(x[i]==x[i-1])
			aux++;	
		else
			{
				ans+=(aux*(aux-1)/2);
				aux=1;
			}
	}
	cout<<ans;
}