#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
#define MAXN 1000
#define STEEP 2e12 + 1
double a[MAXN * MAXN];
int sizeA;
double m[MAXN][2];
int main() {
int n, i, i2, nr;
long long ans;
fin >> n;
sizeA = 0;
for ( i = 0; i < n; i++ ) {
fin >> m[i][0] >> m[i][1];
for ( i2 = 0; i2 < i; i2++ ) {
if ( m[i][0] != m[i2][0] )
a[sizeA] = (m[i][1] - m[i2][1]) / (m[i][0] - m[i2][0]);
else
a[sizeA] = STEEP;
sizeA++;
}
}
sort(a, a + sizeA);
ans = 0;
for ( i = 1; i < sizeA; i++ ) {
nr = 1;
while ( a[i - 1] == a[i] && i < sizeA ) {
nr++;
i++;
}
ans = ans + (long long) (nr - 1) * nr / 2;
}
fout << ans;
return 0;
}