#include <bits/stdc++.h>
using namespace std;
long long n, tot, ans;
long double xie[3005];
struct papa {
  long double x, y;
} a[3005];
inline long long read() {
  register long long w = 0, X = 0;
  register char ch = 0;
  while (!isdigit(ch)) {
    w |= ch == '-';
    ch = getchar();
  }
  while (isdigit(ch)) {
    X = (X << 1) + (X << 3) + (ch ^ 48);
    ch = getchar();
  }
  return w ? -X : X;
}
int main() {
  n = read();
  for (register long long i = 1; i <= n; i++) a[i].x = read(), a[i].y = read();
  for (register long long i = 1; i <= n; i++) {
    tot = 0;
    for (register long long j = 1; j <= n; j++)
      if (i != j) xie[++tot] = 1.0 * atan2(a[j].y - a[i].y, a[j].x - a[i].x);
    sort(xie + 1, xie + tot + 1);
    register long long j = 1, k = 1;
    for (; j <= tot && xie[j] <= 1e-10; j++) {
      while (k <= tot && xie[k] < xie[j] + acos(-1)) k++;
      ans += (k - j - 1) * (k - j - 2) * (tot - k + j) * (tot - k + j - 1) / 2;
    }
  }
  printf("%lld\n", ans >> 1);
  return 0;
}
