#include <bits/stdc++.h>
using namespace std;
const int N = 3030;
const double Pi = acos(-1.);
int n, s, c[2][3], bl[N];
struct P {
  int x, y, c, id;
  double k;
  bool operator<(const P &b) const { return k < b.k; }
} p[N];
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++)
    scanf("%d%d", &p[i].x, &p[i].y), p[i].id = i, p[i].c = 0;
  P o;
  long long tmp, ans = 0;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++)
      if (p[j].id == i) {
        s = j;
        break;
      }
    o = p[s];
    int k = o.c;
    for (int j = 1; j <= n; j++) {
      p[j].k = (p[j].id != i) ? atan2(p[j].y - o.y, p[j].x - o.x) : 1e9;
      if (p[j].k <= 0) p[j].k += Pi;
    }
    sort(p + 1, p + n + 1);
    memset(c, 0, sizeof(c));
    for (int j = 1; j <= n - 1; j++)
      if (p[j].y < o.y || (p[j].y == o.y && p[j].x > o.x))
        c[bl[j] = 0][p[j].c]++;
      else
        c[bl[j] = 1][p[j].c]++;
    for (int j = 1; j <= n - 1; j++) {
      c[bl[j]][p[j].c]--;
      tmp = 1;
      tmp *= 1LL * (c[0][0]) * (c[0][0] - 1) / 2 * c[1][0] * (c[1][0] - 1) / 2;
      ans += tmp * 2;
      c[bl[j] ^= 1][p[j].c]++;
    }
  }
  printf("%lld\n", ans >> 2);
  return 0;
}
