Pagini recente » Cod sursa (job #2650565) | Cod sursa (job #913202) | Cod sursa (job #670556) | Cod sursa (job #2831103) | Cod sursa (job #1356108)
#include <bits/stdc++.h>
#define DMAX 1020
#define x first
#define y second
#define pi pair<int, int>
using namespace std;
int n, ans,a, b;
struct point
{
int x, y;
}pl[DMAX];
map<pi, int> 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(int i=1;i<=n;i++)
{
scanf("%i %i", &a, &b);
point p;
p.x=a;
p.y=b;
pl[i]=p;
}
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
{
int X=abs(pl[i].x-pl[j].x);
int Y=abs(pl[i].y-pl[j].y);
if(X&&Y)
{
int g=__gcd(X, Y);
X/=g;
Y/=g;
}
else{
if(X==0)
Y=1;
if(Y==0)
X==1;
}
pair<int, int> l;
l.x=X;
l.y=Y;
if(m.find(l)==m.end())
{
m[l]=1;
v.push_back(l);
}
else{
m[l]++;
}
}
for(int i=0;i<v.size();i++)
{
int k=m[v[i]]-1;
ans+=(k*(k+1)/2);
}
cout<<ans;
return 0;
}