#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
map <double,int> harta;
pair <int,int> v[1001];
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
int n,i,j,cntvert=0;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i].first>>v[i].second;
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
{
if(v[i].first==v[j].first)//verticala
cntvert++;
else
harta[1.00*(v[i].second-v[j].second)/(v[i].first-v[j].first)]++;
}
long long rez=1LL*cntvert*(cntvert-1)/2;
for(auto it:harta)
rez+=1LL*it.second*(it.second-1)/2;
cout<<rez;
return 0;
}