Cod sursa(job #2637002)

Utilizator loraclorac lorac lorac Data 20 iulie 2020 21:33:25
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 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];
vector<pair<ll,ll> > v;
int main()
{
    ll n;
    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;
        v.push_back({dx,dy});
    }
    sort(v.begin(),v.end());
    ll ans=0,nr=1;
    for(ll i=1;i<v.size();++i)
    if(v[i]==v[i-1])
        ans+=nr++;
    else nr=1;
    out<<ans<<'\n';
    return 0;
}