#include <bits/stdc++.h>
using namespace std;
struct w {
  int a, b;
  double c;
} wt;
double PI = acos(-1);
double f(const w& a) {
  double u = atan2(a.a, a.b);
  if (u < 0) u += PI;
  if (u - PI >= 0) u -= PI;
  return u;
}
bool operator<(const w& a, const w& b) {
  if (abs(a.c - b.c) < 0.000000001) return false;
  return a.c < b.c;
}
int n;
int x[2005], y[2005];
map<int, int> maa;
map<int, int>::iterator ita;
map<w, int> ma;
map<w, int>::iterator it;
long long int ans, t;
int main() {
  scanf("%d", &n);
  for (int a = 0; a < n; a++) {
    scanf("%d", &x[a]);
    scanf("%d", &y[a]);
  }
  for (int a = 0; a < n; a++) {
    ma = map<w, int>();
    for (int b = 0; b < n; b++)
      if (a != b) {
        wt.a = x[a] - x[b];
        wt.b = y[a] - y[b];
        wt.c = f(wt);
        ma[wt]++;
      }
    for (it = ma.begin(); it != ma.end(); ++it) maa[it->second]++;
  }
  for (ita = maa.begin(); ita != maa.end(); ++ita) {
    t = (ita->first) + 1;
    ans += ((n - t) * (ita->second)) * (ita->first) / 2;
  }
  ans /= 3;
  printf("%I64d\n", ans);
  return 0;
}
