#include <bits/stdc++.h>
using namespace std;
const long long MAX = 2505;
long long n, rs = 0, x[MAX], y[MAX];
pair<long long, long long> a[MAX];
vector<pair<long long, long long> > V;
long long ccw(long long u1, long long v1, long long u2, long long v2,
              long long u3, long long v3) {
  return (u2 - u1) * (v2 + v1) + (u3 - u2) * (v3 + v2) + (u1 - u3) * (v1 + v3);
}
bool cmp(pair<long long, long long> x1, pair<long long, long long> x2) {
  if (x1 == pair<long long, long long>(0, 0)) return true;
  return ccw(0, 0, x1.first, x1.second, x2.first, x2.second) < 0;
}
long long C(long long n, long long k) {
  long long rs = 1, cnt = 1, fact = 1;
  while (k--) {
    rs *= n--;
    fact *= cnt++;
  }
  return rs / fact;
}
void calculate(long long id) {
  vector<pair<long long, long long> > V1, V2;
  for (long long i = 1; i <= n; i++) {
    pair<long long, long long> tmp =
        pair<long long, long long>(x[i] - x[id], y[i] - y[id]);
    if (tmp.second >= 0)
      V1.push_back(tmp);
    else
      V2.push_back(tmp);
  }
  sort(V1.begin(), V1.end(), cmp);
  sort(V2.begin(), V2.end(), cmp);
  V.clear();
  for (pair<long long, long long> tmp : V1) V.push_back(tmp);
  for (pair<long long, long long> tmp : V2) V.push_back(tmp);
  long long pivot = V.size();
  long long p = 1;
  for (long long i = 1; i < pivot; i++) {
    while (p < V.size() && ccw(V[0].first, V[0].second, V[i].first, V[i].second,
                               V[p].first, V[p].second) <= 0)
      p++;
    rs += C(p - i - 1, 3);
    V.push_back(V[i]);
  }
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin >> n;
  for (long long i = 1; i <= n; i++) cin >> x[i] >> y[i];
  for (long long i = 1; i <= n; i++) calculate(i);
  cout << 5 * C(n, 5) - rs;
}
