#include <bits/stdc++.h>
using namespace std;
void doRoutine() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
}
template <class T1, class T2>
ostream &operator<<(ostream &out, pair<T1, T2> a) {
  out << "{ " << a.first << ", " << a.second << " }";
  return out;
}
template <class T>
ostream &operator<<(ostream &out, vector<T> a) {
  out << "[ ";
  for (int i = 0; i < a.size(); ++i) {
    out << a[i];
    if (i + 1 < a.size()) {
      out << ", ";
    }
  }
  out << " ]";
  return out;
}
const long long MAXN = 305;
pair<long long, long long> arr[MAXN];
vector<pair<long long, long long> > lines;
pair<long long, long long> vec(pair<long long, long long> p1,
                               pair<long long, long long> p2) {
  return {p2.first - p1.first, p2.second - p1.second};
}
long long part(pair<long long, long long> v) {
  if (v.second == 0) {
    if (v.first > 0) {
      return 0;
    } else {
      return 1;
    }
  } else {
    if (v.second > 0) {
      return 0;
    } else {
      return 1;
    }
  }
}
long long cp(pair<long long, long long> v1, pair<long long, long long> v2) {
  return v1.first * v2.second - v2.first * v1.second;
}
bool cmp(pair<long long, long long> t1, pair<long long, long long> t2) {
  pair<long long, long long> v1 = vec(arr[t1.first], arr[t1.second]);
  pair<long long, long long> v2 = vec(arr[t2.first], arr[t2.second]);
  long long p1 = part(v1), p2 = part(v2);
  if (p1 != p2) {
    return p1 < p2;
  } else {
    return cp(v1, v2) > 0;
  }
}
long long dp[MAXN][MAXN][6];
signed main() {
  doRoutine();
  long long n;
  cin >> n;
  for (long long i = 0; i < n; ++i) {
    cin >> arr[i].first >> arr[i].second;
  }
  for (long long i = 0; i < n; ++i) {
    for (long long j = 0; j < n; ++j) {
      if (i != j) {
        lines.push_back({i, j});
      }
    }
  }
  sort(lines.begin(), lines.end(), cmp);
  for (long long i = 0; i < n; ++i) {
    dp[i][i][0] = 1;
  }
  for (auto l : lines) {
    long long from = l.first, to = l.second;
    for (long long i = 0; i < n; ++i) {
      for (long long k = 1; k <= 5; ++k) {
        dp[i][to][k] += dp[i][from][k - 1];
      }
    }
  }
  long long ans = 0;
  for (long long i = 0; i < n; ++i) {
    ans += dp[i][i][5];
  }
  cout << ans << endl;
  return 0;
}
