#include <bits/stdc++.h>
using namespace std;
int points;
int at;
pair<int, int> point[2000];
long double angle[2000];
int idx[2000];
long long crossProduct(long long ax, long long ay, long long bx, long long by) {
  return ax * by - ay * bx;
}
bool byAngle(int a, int b) {
  if (a == at) return false;
  if (b == at) return true;
  return angle[a] > angle[b];
}
bool ccw(int a, int p, int b) {
  return crossProduct(point[a].first - point[p].first,
                      point[a].second - point[p].second,
                      point[b].first - point[p].first,
                      point[b].second - point[p].second) > 0;
}
int main() {
  cin >> points;
  for (int i = 0; i < points; i++) {
    cin >> point[i].first >> point[i].second;
    idx[i] = i;
  }
  long long ans = 0ll;
  for (at = 0; at < points; at++) {
    for (int i = 0; i < points; i++) {
      angle[i] = atan2(point[i].second - point[at].second,
                       point[i].first - point[at].first);
    }
    sort(idx, idx + points, byAngle);
    int right = 1;
    long long nIn = 1;
    for (int i = 0; i < points - 1; i++) {
    }
    for (int left = 0; left < points - 1; left++) {
      bool done = false;
      while (ccw(idx[(right + 1) % (points - 1)], at, idx[left])) {
        right = (right + 1) % (points - 1);
        nIn++;
      }
      if (left > 0 && ccw(idx[left - 1], at, idx[left])) {
        right = left - 1;
        nIn = points - 2;
      }
      ans += (nIn - 1) * nIn * (points - nIn - 2) * (points - nIn - 3) / 4;
      nIn--;
    }
  }
  cout << ans / 2 << endl;
}
