#include <bits/stdc++.h>
using namespace std;
template <typename T, typename U>
inline ostream &operator<<(ostream &_out, const pair<T, U> &_p) {
  _out << _p.first << ' ' << _p.second;
  return _out;
}
template <typename T, typename U>
inline istream &operator>>(istream &_in, pair<T, U> &_p) {
  _in >> _p.first >> _p.second;
  return _in;
}
template <typename T>
inline ostream &operator<<(ostream &_out, const vector<T> &_v) {
  if (_v.empty()) {
    return _out;
  }
  _out << _v.front();
  for (auto _it = ++_v.begin(); _it != _v.end(); ++_it) {
    _out << ' ' << *_it;
  }
  return _out;
}
template <typename T>
inline istream &operator>>(istream &_in, vector<T> &_v) {
  for (auto &_i : _v) {
    _in >> _i;
  }
  return _in;
}
const long long MAXN = 3e5;
const long long INF = 1e9;
const long long MOD = 1e9 + 7;
long double get_angle(long double x, long double y) {
  long double res = atan2(y, x);
  if (res < 0) {
    res += 2 * acos(-1.0);
  }
  return res;
}
long long pw(pair<long long, long long> a, pair<long long, long long> b) {
  return a.first * b.second - a.second * b.first;
}
long long getc(long long v) { return v * (v - 1) * (v - 2) / (3 * 2 * 1); }
long long solves(pair<long long, long long> a,
                 vector<pair<long long, long long>> b) {
  vector<pair<long double, long long>> ans;
  long long i = 0;
  for (auto &v : b) {
    v.first -= a.first;
    v.second -= a.second;
    ans.push_back({get_angle(v.first, v.second), i});
    i++;
  }
  sort(ans.begin(), ans.end());
  long long tek = 0;
  long long n = ((long long)b.size());
  long long ansss = 0;
  for (long long i = 0; i < n; i++) {
    tek = max(0ll, tek - 1);
    while (tek + 1 < n &&
           pw(b[ans[i].second], b[ans[(i + tek + 1) % n].second]) > 0) {
      tek++;
    }
    ansss += getc(tek);
  }
  return ansss;
}
class ENoviiGodIStroitelstvoZamkom {
 public:
  void solve(std::istream &in, std::ostream &out) {
    long long n;
    in >> n;
    vector<pair<long long, long long>> a(n);
    in >> a;
    long long ans = 0;
    for (long long i = 0; i < n; i++) {
      vector<pair<long long, long long>> b;
      for (auto v : a) {
        if (a[i] != v) {
          b.push_back(v);
        }
      }
      ans += ((n - 1) * (n - 2) * (n - 3) * (n - 4) / (4 * 3 * 2 * 1)) -
             solves(a[i], b);
    }
    out << ans;
  }
};
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  ENoviiGodIStroitelstvoZamkom solver;
  std::istream &in(std::cin);
  std::ostream &out(std::cout);
  solver.solve(in, out);
  return 0;
}
