#include <bits/stdc++.h>
using namespace std;
inline int gi() {
  int x = 0, f = 1;
  char ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (isdigit(ch)) {
    x = (x << 3) + (x << 1) + ch - 48;
    ch = getchar();
  }
  return x * f;
}
template <typename T>
inline bool Max(T &a, T b) {
  return a < b ? a = b, 1 : 0;
}
template <typename T>
inline bool Min(T &a, T b) {
  return b < a ? a = b, 1 : 0;
}
const double INF = 1.0 * 1e14, pi = acos(-1.0);
const int N = 4004;
int n;
long long ans;
double ang[N], x[N], y[N];
long long C(int n) { return 1ll * n * (n - 1) / 2; }
int main() {
  n = gi();
  for (int i = 1; i <= n; ++i) scanf("%lf%lf", &x[i], &y[i]);
  for (int o = 1; o <= n; ++o) {
    int ndc = 0;
    for (int i = 1; i <= n; ++i)
      if (o ^ i) ang[++ndc] = atan2(y[i] - y[o], x[i] - x[o]);
    sort(ang + 1, ang + ndc + 1);
    for (int i = 1; i <= n - 1; ++i) ang[++ndc] = ang[i] + 2 * pi;
    for (int i = 1, j = 1; i < n; ++i) {
      while (ang[j] - ang[i] <= pi) ++j;
      int l = j - i - 1, r = n - 2 - l;
      ans += C(l) * C(r);
    }
  }
  printf("%lld\n", ans >> 1);
  return 0;
}
