#include <bits/stdc++.h>
using namespace std;
struct pt {
  int x, y;
  pt() : x(0), y(0) {}
  pt(int _x, int _y) : x(_x), y(_y) {}
};
long long cross(const pt &l, const pt &r) {
  return (long long)l.x * r.y - (long long)l.y * r.x;
}
pt operator-(const pt &l, const pt &r) { return pt(l.x - r.x, l.y - r.y); }
int main() {
  const int N(2011);
  int n, i, j, k;
  long long ans(0), c;
  pt p[N], t[N];
  scanf("%d", &n);
  for (i = 0; i < n; ++i) scanf("%d%d", &p[i].x, &p[i].y);
  for (i = 0; i < n; ++i) {
    for (j = 0; j < n; ++j) t[j] = p[j] - p[i];
    t[i] = t[n - 1];
    sort(t, t + n - 1, [](const pt &l, const pt &r) {
      return l.y >= 0 && r.y < 0 || !(l.y < 0 && r.y >= 0) && cross(l, r) > 0;
    });
    t[n - 1] = t[0];
    for (j = k = 0, c = 1; j < n - 1; ++j, --c) {
      while (cross(t[j], t[k + 1]) >= 0 && c < n - 1) {
        ++c;
        if (++k == n - 1) k = 0;
      }
      ans += (c - 1) * (c - 2) * (n - c - 1) * (n - c - 2);
    }
  }
  printf("%lld\n", ans / 8);
  return 0;
}
