#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2005;
const double eps = 1e-8;
const double PI = acos(-1.0);
template <typename T>
inline void read(T &AKNOI) {
  T x = 0, flag = 1;
  char ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') flag = -1;
    ch = getchar();
  }
  while (isdigit(ch)) {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  AKNOI = flag * x;
}
int n, tot;
double ang[MAXN];
struct point {
  int x, y;
} p[MAXN];
inline int C2(int x) { return x * (x - 1) >> 1; }
void init() {
  read(n);
  for (int i = 1; i <= n; ++i) {
    read(p[i].x);
    read(p[i].y);
  }
}
void solve() {
  long long ans = 0;
  for (int i = 1; i <= n; ++i) {
    tot = 0;
    for (int j = 1; j <= n; ++j) {
      if (i == j) continue;
      ang[++tot] = atan2(p[j].y - p[i].y, p[j].x - p[i].x);
    }
    sort(ang + 1, ang + tot + 1);
    for (int j = 1, k = 1; j <= tot && ang[j] <= eps; ++j) {
      while (k <= tot && ang[k] < ang[j] + PI) {
        ++k;
      }
      ans += 1LL * C2(k - j - 1) * C2(tot - k + j);
    }
  }
  printf("%lld\n", ans);
}
int main() {
  init();
  solve();
  return 0;
}
