Cod sursa(job #2740366)

Utilizator hhhhhhhAndrei Boaca hhhhhhh Data 12 aprilie 2021 18:49:50
Problema Trapez Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
typedef long long ll;
typedef pair<int,int> pii;
ll n,lines,ans;
map<pii,ll> f;
struct point
{
    int x,y;
} v[1005];
pii getval(point a, point b)
{
    if(a.x<b.x)
        swap(a,b);
    ll x=a.x-b.x;
    ll y=a.y-b.y;
    ll gcd=__gcd(abs(x),abs(y));
    x/=gcd;
    y/=gcd;
    return {x,y};
}
int main()
{
    fin>>n;
    for(int i=1;i<=n;i++)
        fin>>v[i].x>>v[i].y;
    for(int i=1;i<=n;i++)
        for(int j=i+1;j<=n;j++)
            f[getval(v[i],v[j])]++;
    for(auto i:f)
        ans=(ans+i.second*(i.second-1)/2);
    fout<<ans;
    return 0;
}