#include <bits/stdc++.h>
using namespace std;
const int N = 2002;
int n;
pair<long long, long long> p[N];
long long crossProd(pair<long long, long long> a,
                    pair<long long, long long> b) {
  return a.first * b.second - a.second * b.first;
}
long long nC2(long long n) { return n * (n - 1) / 2; }
long long solve(int i) {
  vector<pair<long double, pair<long long, long long> > > a;
  for (int(j) = (1); (j) <= (int)(n); (j)++)
    if (j != i) {
      pair<long long, long long> v(p[j].first - p[i].first,
                                   p[j].second - p[i].second);
      long double theta = atan2(v.second, v.first);
      a.push_back({theta, v});
    }
  sort(a.begin(), a.end());
  long long ret = 0;
  int j = 0, x = 0;
  for (int(i) = (0); (i) <= (int)((int)(a).size() - 1); (i)++) {
    while (crossProd(a[i].second, a[j].second) >= 0) {
      j = (j + 1) % ((int)(a).size()), ++x;
      if (j == i) break;
    }
    ret += (long long)nC2(x - 1) * nC2((int)(a).size() - x);
    --x;
  }
  return ret;
}
int main() {
  scanf("%d", &n);
  for (int(i) = (1); (i) <= (int)(n); (i)++) {
    int x, y;
    scanf("%d%d", &x, &y);
    p[i] = pair<long long, long long>(x, y);
  }
  long long ans = 0;
  for (int(i) = (1); (i) <= (int)(n); (i)++) ans += solve(i);
  printf("%lld\n", ans / 2);
  return 0;
}
