#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
int main() {
  int n;
  cin >> n;
  vector<pair<int, int> > vec(n);
  map<pair<int, int>, set<int> > mp;
  for (int i = 0; i < n; i++) {
    cin >> vec[i].first >> vec[i].second;
  }
  int x, y, x1, x2, y1, y2;
  long long cnt = 0, res = 0;
  for (int i = 0; i < n - 1; i++) {
    for (int j = i + 1; j < n; j++) {
      x1 = vec[i].first;
      x2 = vec[j].first;
      y1 = vec[i].second;
      y2 = vec[j].second;
      x = x1 - x2;
      y = y1 - y2;
      int temp = gcd(x, y);
      x = x / temp;
      y = y / temp;
      if (x < 0 || (x == 0 && y < 0)) {
        x = -x;
        y = -y;
      }
      long long c = 1LL * y * x1 - 1LL * x * y1;
      pair<int, int> pp(x, y);
      if (!mp[pp].count(c)) {
        cnt++;
        mp[pp].insert(c);
        res += cnt - mp[pp].size();
      }
    }
  }
  cout << res << endl;
  return 0;
}
