Cod sursa(job #2636767)

Utilizator loraclorac lorac lorac Data 19 iulie 2020 19:10:03
Problema Trapez Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("trapez.in");
ofstream out("trapez.out");
typedef long long ll;
#define x first
#define y second
pair<ll,ll> p[1005];
map<pair<ll,ll>,ll> m;
int main()
{
    ll n,ans=0;
    in>>n;
    for(ll i=1;i<=n;++i)
        in>>p[i].x>>p[i].y;
    for(ll i=1;i<=n-1;++i)
    for(ll j=i+1;j<=n;++j)
    {
        ll x=p[i].x;
        ll y=p[i].y;
        ll xx=p[j].x;
        ll yy=p[j].y;
        if(x>xx) {swap(x,xx);swap(y,yy);}
        ll d=__gcd(xx-x,abs(yy-y));
        ll dx=(xx-x)/d;
        ll dy=(yy-y)/d;
        ans+=(m[{dx,dy}]++);
    }
    out<<ans<<'\n';
    return 0;
}