Pagini recente » Cod sursa (job #3273068) | Cod sursa (job #2744521) | Cod sursa (job #2360447) | Cod sursa (job #504210) | Cod sursa (job #1356177)
#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;
bool operator()(const point &a, const point &b)
{
return a.x*b.y<a.y*b.x;
}
}pl[DMAX];
map<pi, int> m;
vector <point> 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);
// int g=__gcd(X, Y);
// X/=g;
// Y/=g;
point l;
l.x=X;
l.y=Y;
v.push_back(l);
}
sort(v.begin(), v.end(),point());
int k=1;
for(int i=1;i<v.size();i++)
{
if(v[i].x*v[i-1].y == v[i].y*v[i-1].x)
k++;
else{
ans+=(k*(k-1)/2);
k=1;
}
}
ans+=(k*(k-1)/2);
cout<<ans<<'\n';
return 0;
}