#include <bits/stdc++.h>
using namespace std;
pair<int, int> p[2000];
bool comp(pair<int, int> a, pair<int, int> b) {
  if (a.second == b.second)
    return a.first < b.first;
  else
    return a.second < b.second;
}
int pos[2000];
vector<pair<int, int> > vv;
bool comp2(pair<int, int> a, pair<int, int> b) {
  return (long long int)(p[a.second].first - p[a.first].first) *
             (p[b.second].second - p[b.first].second) >
         (long long int)(p[a.second].second - p[a.first].second) *
             (p[b.second].first - p[b.first].first);
}
int main() {
  int i;
  int n;
  scanf("%d", &n);
  for (i = 0; i < n; i++) scanf("%d %d", &p[i].first, &p[i].second);
  sort(p, p + n, comp);
  int j;
  long long int ans = 0;
  for (i = 0; i < n; i++) pos[i] = i;
  for (i = 0; i < n; i++) {
    for (j = i + 1; j < n; j++) vv.push_back(make_pair(i, j));
  }
  sort(vv.begin(), vv.end(), comp2);
  for (i = 0; i < vv.size(); i++) {
    swap(pos[vv[i].first], pos[vv[i].second]);
    int a = min(pos[vv[i].first], pos[vv[i].second]);
    int b = n - max(pos[vv[i].first], pos[vv[i].second]) - 1;
    ans += (long long int)(a * (a - 1) / 2) * (b * (b - 1) / 2);
  }
  printf("%I64d\n", ans);
  return 0;
}
