#include <bits/stdc++.h>
using namespace std;
pair<double, double> form_line(pair<int, int> pt1, pair<int, int> pt2) {
  double x1 = pt1.first, y1 = pt1.second, x2 = pt2.first, y2 = pt2.second;
  double slope = (x1 == x2 ? INT_MAX : (y1 - y2) / (x1 - x2));
  double y_int = (slope != INT_MAX ? y1 - x1 * slope : x1);
  pair<double, double> ans;
  ans.first = slope;
  ans.second = y_int;
  return ans;
}
int main() {
  cin.tie(0);
  cout.tie(0);
  ios_base::sync_with_stdio(0);
  int n, ans = 0;
  cin >> n;
  vector<pair<int, int> > pt;
  for (int i = 0; i < n; i++) {
    int x, y;
    cin >> x >> y;
    pt.push_back({x, y});
  }
  map<pair<double, double>, bool> vis;
  map<double, int> cnt;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < i; j++) {
      pair<double, double> line = form_line(pt[i], pt[j]);
      if (vis[line]) continue;
      vis[line] = true;
      cnt[line.first]++;
      ans += vis.size() - cnt[line.first];
    }
  cout << ans << endl;
  return 0;
}
