Pagini recente » Cod sursa (job #611455) | Cod sursa (job #576663) | Cod sursa (job #740682) | Cod sursa (job #2974373) | Cod sursa (job #2636775)
#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];
unordered_map<ll,ll> ump;
const ll A=4999999799;
const ll B=4999999937;
int main()
{
ll n;
in>>n;
for(ll i=1;i<=n;++i)
in>>p[i].x>>p[i].y;
ll ans=0;
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+2e9;
ll h=(dx*A+dy)%B;
ans+=(ump[h]++);
}
out<<ans<<'\n';
return 0;
}