#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2507;
const double PI = acos(-1);
pair<int, int> a[MAXN], root;
int n;
bool ccw(pair<int, int> a, pair<int, int> b, pair<int, int> c) {
  return 1LL * (b.first - a.first) * (c.second - b.second) -
             1LL * (c.first - b.first) * (b.second - a.second) >
         0;
}
bool cw(pair<int, int> a, pair<int, int> b, pair<int, int> c) {
  return 1LL * (b.first - a.first) * (c.second - b.second) -
             1LL * (c.first - b.first) * (b.second - a.second) <
         0;
}
bool cmp(const pair<int, int> &a, const pair<int, int> &b) {
  bool aorig = a < root;
  bool borig = b < root;
  if (aorig != borig) return aorig > borig;
  return ccw(root, a, b);
}
long long calc(pair<int, int> p) {
  root = p;
  vector<pair<int, int> > V;
  for (int i = 1; i <= n; ++i)
    if (a[i] != p) V.push_back(a[i]);
  sort(V.begin(), V.end(), cmp);
  int sz = V.size(), j = 0;
  long long ans = 0;
  for (int i = 0; i < sz; ++i) {
    j = max(j, i + 1);
    while (cw(V[i], p, V[j % sz]) && j < sz + sz) ++j;
    --j;
    ans += 1LL * (j - i) * (j - i - 1) / 2;
  }
  return 1LL * (n - 1) * (n - 2) * (n - 3) / 6 - ans;
}
int main() {
  if (fopen("tst.inp", "r")) {
    freopen("tst.inp", "r", stdin);
    freopen("tst.out", "w", stdout);
  }
  ios_base::sync_with_stdio(0);
  cin.tie(0), cout.tie(0);
  cin >> n;
  for (int i = 1; i <= n; ++i) cin >> a[i].first >> a[i].second;
  long long sum = 0;
  for (int i = 1; i <= n; ++i) sum += calc(a[i]);
  cout << sum * (n - 4) / 2;
  return 0;
}
