#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000 + 10;
int x[maxn], y[maxn];
map<pair<int, int>, set<int>> mp;
int gcd(int a, int b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
int ans, tot;
int main() {
  int n;
  cin >> n;
  int A = 0, B = 0;
  for (int i = 1; i <= n; i++) scanf("%d%d", &x[i], &y[i]);
  for (int i = 1; i <= n; i++) {
    for (int j = i + 1; j <= n; j++) {
      int x1 = x[i], y1 = y[i];
      int x2 = x[j], y2 = y[j];
      int x = x1 - x2, y = y1 - y2;
      if (x && y) {
        int k = gcd(x, y);
        A = y / k, B = x / k;
      } else if (y == 0 && x != 0) {
        A = 0, B = 1;
      } else if (y != 0 && x == 0) {
        A = 1;
        B = 0;
      } else
        A = B = 0;
      int C = A * x1 - B * y1;
      pair<int, int> tmp(A, B);
      if (!mp[tmp].count(C)) {
        tot++;
        mp[tmp].insert(C);
        ans += (tot - mp[tmp].size());
      }
    }
  }
  cout << ans << endl;
  return 0;
}
