#include <bits/stdc++.h>
using ll = long long;
using ld = long double;
using ull = unsigned long long;
using namespace std;
const int N = 2502;
int n;
ll operator^(const pair<int, int> &A, const pair<int, int> &B) {
  return A.first * 1LL * B.second - A.second * 1LL * B.first;
}
pair<int, int> operator-(const pair<int, int> &A, const pair<int, int> &B) {
  return pair<int, int>(A.first - B.first, A.second - B.second);
}
bool ccw(const pair<int, int> &A, const pair<int, int> &B,
         const pair<int, int> &C) {
  return ((B - A) ^ (C - A)) > 0;
}
pair<int, int> p[N << 1];
ll res = 0;
void solve(const pair<int, int> &O) {
  sort(p + 1, p + n, [&](const pair<int, int> &A, const pair<int, int> &B) {
    if (A.second >= O.second && B.second < O.second) return 1;
    if (B.second >= O.second && A.second < O.second) return 0;
    return (ccw(O, A, B) ? 1 : 0);
  });
  for (int i = (n); i <= (2 * n - 2); ++i) p[i] = p[i - n + 1];
  ll num = 0;
  for (int i = 1, j = 1; i < n; i++) {
    if (j < i) j = i;
    while (j < 2 * n - 2 && ccw(O, p[i], p[j + 1])) j++;
    num += (j - i) * (j - i - 1) / 2;
  }
  res += (n - 1) * 1LL * (n - 2) * (n - 3) / 6 - num;
}
pair<int, int> po[N];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cin >> n;
  for (int i = (1); i <= (n); ++i) cin >> po[i].first >> po[i].second;
  for (int i = (1); i <= (n); ++i) {
    int np = 0;
    for (int j = (1); j <= (n); ++j)
      if (i != j) p[++np] = po[j];
    solve(po[i]);
  }
  cout << res * (n - 4) / 2;
  return 0;
}
