#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
const long long mod = 1e9 + 7;
const int N = 2e3 + 5, M = 1e5 + 5;
const long long INF = 1e18;
const int inf = 0x3f3f3f3f;
const double eps = 1e-8;
int x[N], y[N];
long long C(long long n, int m) {
  long long fz = 1, fm = 1;
  for (int i = 1; i <= m; i++) {
    fz *= (n - i + 1);
    fm *= i;
  }
  return fz / fm;
}
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    int a, b;
    scanf("%d%d", &a, &b);
    x[i] = a, y[i] = b;
  }
  long long ans = C(n, 3);
  for (int i = 0; i < n; i++) {
    map<double, int> mp;
    for (int j = i + 1; j < n; j++) {
      if (x[j] == x[i])
        mp[1000]++;
      else {
        mp[(y[j] - y[i]) * 1.0 / (x[j] - x[i])]++;
      }
    }
    for (auto j : mp) {
      ans -= C(j.second, 2);
    }
  }
  cout << ans << endl;
  return 0;
}
