#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
struct point {
  long long x, y;
  point() {}
  point(long double x, long double y) : x(x), y(y) {}
  long double kampas() {
    long double alfa = atan2(y, x);
    if (y < 0) alfa += 10;
    return alfa;
  }
};
point operator!(const point &a) { return point(a.x, -a.y); }
point operator+(const point &a, const point &b) {
  return point(a.x + b.x, a.y + b.y);
}
point operator-(const point &a, const point &b) {
  return point(a.x - b.x, a.y - b.y);
}
point operator*(const point &a, const point &b) {
  return point(a.x * b.x - a.y * b.y, a.x * b.y + a.y * b.x);
}
point operator*(point a, long double k) { return point(a.x * k, a.y * k); }
long long dot(const point &a, const point &b) { return a.x * b.x + a.y * b.y; }
long long cross(const point &a, const point &b) {
  return a.x * b.y - a.y * b.x;
}
long long sgn(long long x) {
  if (x < 0) return -1;
  if (x > 0) return 1;
  return 0;
}
bool x(point a, point b, point c, point d) {
  return sgn(cross(b - a, c - a)) * sgn(cross(b - a, d - a)) == -1 &&
         sgn(cross(d - c, a - c)) * sgn(cross(d - c, b - c)) == -1;
}
long long dp[300][6][300];
long long fast(long long n, point A[]) {
  vector<pair<long double, pair<int, int>>> x;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (i == j) continue;
      x.push_back({(A[j] - A[i]).kampas(), {i, j}});
    }
  }
  sort(x.begin(), x.end());
  for (int i = 0; i < n; i++) {
    dp[i][0][i] = 1;
  }
  for (auto c : x) {
    int i = c.second.first;
    int j = c.second.second;
    for (int k = 0; k < n; k++) dp[j][1][k] += dp[i][0][k];
    for (int k = 0; k < n; k++) dp[j][2][k] += dp[i][1][k];
    for (int k = 0; k < n; k++) dp[j][3][k] += dp[i][2][k];
    for (int k = 0; k < n; k++) dp[j][4][k] += dp[i][3][k];
    for (int k = 0; k < n; k++) dp[j][5][k] += dp[i][4][k];
  }
  long long ans = 0;
  for (int i = 0; i < n; i++) {
    ans += dp[i][5][i];
  }
  return ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  long long n;
  cin >> n;
  point A[n];
  for (long long i = 0; i < n; i++) cin >> A[i].x >> A[i].y;
  cout << fast(n, A) << "\n";
}
