Pagini recente » Cod sursa (job #1355112) | Cod sursa (job #715693) | Cod sursa (job #1076846) | Cod sursa (job #2082302) | Cod sursa (job #1356145)
#include <bits/stdc++.h>
#define DMAX 1020
#define x first
#define y second
#define pi pair<long long, long long>
using namespace std;
long long n, ans,a, b;
struct point
{
long long x, y;
}pl[DMAX];
map<pi, long long> m;
vector <pi> v;
int main()
{
freopen("trapez.in", "r", stdin);
freopen("trapez.out", "w", stdout);
//freopen("in.txt", "r", stdin);
scanf("%i", &n);
for(long long i=1;i<=n;i++)
{
scanf("%i %i", &a, &b);
point p;
p.x=a;
p.y=b;
pl[i]=p;
}
for(long long i=1;i<n;i++)
for(long long j=i+1;j<=n;j++)
{
long long X=abs(pl[i].x-pl[j].x);
long long Y=abs(pl[i].y-pl[j].y);
if(X&&Y)
{
long long g=__gcd(X, Y);
X/=g;
Y/=g;
}
else{
if(X==0)
Y=1;
if(Y==0)
X==1;
}
pair<long long, long long> l;
l.x=X;
l.y=Y;
if(m.find(l)==m.end())
{
m[l]=1;
v.push_back(l);
}
else{
m[l]++;
}
}
for(long long i=0;i<v.size();i++)
{
long long k=m[v[i]];
ans+=(k*(k-1)/2);
}
cout<<ans<<'\n';
return 0;
}