#include <bits/stdc++.h>
using namespace std;
int gi() {
  int x = 0, w = 1;
  char ch = getchar();
  while ((ch < '0' || ch > '9') && ch != '-') ch = getchar();
  if (ch == '-') w = 0, ch = getchar();
  while (ch >= '0' && ch <= '9')
    x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
  return w ? x : -x;
}
const int N = 305;
struct point {
  int x, y;
  point operator-(const point &b) { return (point){x - b.x, y - b.y}; }
  long long operator*(const point &b) { return 1ll * x * b.y - 1ll * y * b.x; }
} p[N];
int n;
long long ans1, ans2;
bitset<N> a[N][N];
int main() {
  n = gi();
  for (int i = 1; i <= n; ++i) p[i].x = gi(), p[i].y = gi();
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= n; ++j)
      if (j != i)
        for (int k = 1; k <= n; ++k)
          if (k != i && k != j) a[i][j][k] = (p[j] - p[i]) * (p[k] - p[i]) > 0;
  for (int i = 1; i <= n; ++i)
    for (int j = i + 1; j <= n; ++j)
      for (int k = i + 1; k <= n; ++k)
        if (k != j && a[i][j][k]) {
          int s = (a[i][j] & a[j][k] & a[k][i]).count();
          ans1 += s;
          ans2 += s * (s - 1) >> 1;
        }
  printf("%lld\n", 1ll * n * (n - 1) * (n - 2) * (n - 3) * (n - 4) / 120 -
                       ans1 * (n - 4) / 2 + ans2);
  return 0;
}
