#include <bits/stdc++.h>
using namespace std;
unsigned long long mask[300][300][5];
inline long long popcount64c(uint64_t first) {
  const uint64_t m1 = 0x5555555555555555;
  const uint64_t m2 = 0x3333333333333333;
  const uint64_t m4 = 0x0f0f0f0f0f0f0f0f;
  const uint64_t m8 = 0x00ff00ff00ff00ff;
  const uint64_t m16 = 0x0000ffff0000ffff;
  const uint64_t m32 = 0x00000000ffffffff;
  const uint64_t h01 = 0x0101010101010101;
  first -= (first >> 1) & m1;
  first = (first & m2) + ((first >> 2) & m2);
  first = (first + (first >> 4)) & m4;
  return (first * h01) >> 56;
}
pair<long long, long long> p[300];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) cin >> p[i].first >> p[i].second;
  long long triples = 0;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      long long nx = -(p[j].second - p[i].second);
      long long ny = p[j].first - p[i].first;
      long long right = 0;
      for (int k = 0; k < n; k++) {
        unsigned long long ok =
            nx * (p[k].first - p[i].first) + ny * (p[k].second - p[i].second) >
            0;
        mask[i][j][k >> 6] |= ok << (k & 63);
        right += ok;
      }
      triples += right * (right - 1) * (right - 2) / 6;
    }
  }
  long long z = 0;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      for (int k = 0; k < i && k < j; k++) {
        if (!(mask[i][j][k >> 6] >> (k & 63) & 1)) continue;
        long long insides = 0;
        for (int l = 0; l < 5; l++) {
          unsigned long long inside =
              mask[i][j][l] & mask[j][k][l] & ~mask[i][k][l];
          insides += popcount64c(inside);
        }
        z += insides * (insides - 1) / 2;
      }
    }
  }
  long long tot = 1ll * n * (n - 1) * (n - 2) * (n - 3) * (n - 4) / 120;
  cout << triples - tot * 4 + z << endl;
}
