#include <bits/stdc++.h>
using namespace std;
long long int det(pair<long long int, long long int> a,
                  pair<long long int, long long int> b) {
  return a.first * b.second - a.second * b.first;
}
bool comp(pair<long long int, long long int> a,
          pair<long long int, long long int> b) {
  return det(a, b) > 0;
}
int main() {
  int n;
  cin >> n;
  long long int x[2600], y[2600];
  for (int i = 0; i < n; i++) {
    cin >> x[i] >> y[i];
  }
  long long int ans = 0;
  for (int i = 0; i < n; i++) {
    vector<pair<long long int, long long int> > v1, v2;
    pair<long long int, long long int> p1;
    if (i == 0)
      p1 = pair<long long int, long long int>(x[1] - x[0], y[1] - y[0]);
    else
      p1 = pair<long long int, long long int>(x[0] - x[i], y[0] - y[i]);
    for (int j = 0; j < n; j++) {
      if (j == i) continue;
      pair<long long int, long long int> p =
          pair<long long int, long long int>(x[j] - x[i], y[j] - y[i]);
      if (det(p1, p) > 0)
        v1.push_back(p);
      else
        v2.push_back(p);
    }
    sort(v1.begin(), v1.end(), comp);
    sort(v2.begin(), v2.end(), comp);
    int k = 0;
    for (int j = 0; j < v1.size(); j++) {
      while (k < v2.size() && det(v1[j], v2[k]) > 0) k++;
      long long int c = (long long int)v1.size() - j - 1 + k;
      ans += c * (c - 1) * (c - 2) / 6;
    }
    k = 0;
    for (int j = 0; j < v2.size(); j++) {
      while (k < v1.size() && det(v2[j], v1[k]) > 0) k++;
      long long int c = (long long int)v2.size() - j - 1 + k;
      ans += c * (c - 1) * (c - 2) / 6;
    }
  }
  long long int tot =
      (long long int)n * (n - 1) * (n - 2) * (n - 3) * (n - 4) / 24;
  ans = tot - ans;
  cout << ans << endl;
  return 0;
}
