#include <bits/stdc++.h>
using namespace std;
const int N = 2505;
int n;
long long X, Y;
complex<long long> p[N];
vector<complex<long long> > v;
bool upper(const complex<long long> &a) {
  return a.imag() > 0 || (a.imag() == 0 && a.real() > 0);
}
bool cmp(const complex<long long> &a, const complex<long long> &b) {
  return upper(a) != upper(b) ? upper(a) : (conj(a) * (b)).imag() > 0;
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> X >> Y;
    p[i] = {X, Y};
  }
  long long cnt = 1LL * n * (n - 1) * (n - 2) * (n - 3) * (n - 4) / 24;
  for (int k = 0; k < n; k++) {
    v.clear();
    for (int j = 0; j < n; j++)
      if (k != j) v.push_back(p[j] - p[k]);
    sort(v.begin(), v.end(), cmp);
    for (int i = 0, j = 1; i < n - 1; i++) {
      while ((conj(v[i]) * (v[j])).imag() > 0) j = (j + 1) % (n - 1);
      long long amt = (i - j + n - 1) % (n - 1);
      cnt -= 1LL * amt * (amt - 1) * (amt - 2) / 6;
    }
  }
  cout << cnt << endl;
}
