Cod sursa(job #2876732)

Utilizator AndreidreiGresoiu Liviu-Andrei Andreidrei Data 23 martie 2022 15:07:49
Problema Trapez Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>
#define din cin
#define dout out
#define pi 3.14159265359
#define sw(x,y) x^=y,y^=x,x^=y
#define bmin(a,b)((a<b)?(a):(b))
#define bmax(a,b)((a>b)?(a):(b))
#define bminify(a,b)a=bmin(a,b)
#define bmaxify(a,b)a=bmax(a,b)
#define forq(i,ii,n)for(i=ii;i<n;i++)
using namespace std;
typedef long long ll;
ifstream in("trapez.in");
ofstream out("trapez.out");
ll n,x[1000],y[1000],i,e,f,k,j;map<ll,ll>a;
int main()
{
in>>n;
for(i=0;i<n;i++)in>>x[i]>>y[i];
for(i=0;i<n;i++)
    for(j=i+1;j<n;j++)
{
e=x[i]-x[j],f=y[i]-y[j],k=__gcd(e,f),e/=k,f/=k;if(e<0)e*=-1,f*=-1;++a[f|(e<<32)];
}
n=0;
for(auto i=a.begin();i!=a.end();i++)\
    n+=i->second*(i->second-1)/2;
out<<n;
}