Cod sursa(job #792811)
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
#define mp make_pair
#define f first
#define s second
using namespace std;
vector<pair<int,int > > v;
vector<double> pante;
int main()
{
int a,n,b;
freopen("trapez.in","r", stdin);
freopen("trapez.out","w", stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d %d",&a,&b);
v.push_back(mp(a,b));
}
for(int i=0;i<v.size();i++)
for(int j=i+1;j<v.size();j++)
if(i!=j)
{
if(v[i].f!=v[j].f)
pante.push_back((double)(v[j].s-v[i].s)/(v[j].f-v[i].f));
else
pante.push_back(double(1<<30));
}
sort(pante.begin(),pante.end());
long long S=0;
int nr=0;
for(int i=1;i<pante.size();i++)
{
if(pante[i]==pante[i-1])
++nr;
else
nr=1;
if(nr>=2)
S+=nr*(nr-1)/2;
}
printf("%lld",S);
return 0;
}