#include <bits/stdc++.h>
using namespace std;
const int N = 3005;
const long double pi = acos(-1);
const long double INF = 1e100;
struct point_t {
  int x, y, i;
  long double k;
} O, P[N];
int operator<(point_t a, point_t b) { return a.k < b.k; }
int n, cnt[N], bel[N];
long long res;
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) scanf("%d %d", &P[i].x, &P[i].y), P[i].i = i;
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j <= n; ++j)
      if (P[j].i == i) {
        O = P[j];
        break;
      }
    for (int j = 1; j <= n; ++j) {
      P[j].k = (P[j].i == i ? INF : atan2(P[j].y - O.y, P[j].x - O.x));
      if (P[j].k < 0) P[j].k += pi;
      if (P[j].k >= pi) P[j].k -= pi;
    }
    cnt[0] = cnt[1] = 0;
    sort(P + 1, P + n + 1);
    for (int j = 1; j < n; ++j)
      if (P[j].y < O.y || (P[j].y == O.y && P[j].x < O.x))
        ++cnt[bel[j] = 0];
      else
        ++cnt[bel[j] = 1];
    for (int j = 1; j < n; ++j) {
      --cnt[bel[j]];
      res += 1ll * cnt[0] * cnt[1] * (cnt[0] - 1) * (cnt[1] - 1) / 4;
      ++cnt[!bel[j]];
    }
  }
  printf("%lld\n", res >> 1);
}
