#include <bits/stdc++.h>
using namespace std;
map<pair<long long int, long long int>, long long int> mp;
set<pair<pair<long long int, long long int>,
         pair<long long int, long long int> > >
    st;
int n;
long long int lis[1010][2];
long long int gcd(long long int a, long long int b) {
  if (a == 0) return b;
  return gcd(b % a, a);
}
int main() {
  int i, j;
  scanf("%d", &n);
  for (i = 0; i < n; i++) {
    scanf("%lld%lld", &lis[i][0], &lis[i][1]);
  }
  long long int num = 0, ans = 0;
  for (i = 0; i < n; i++)
    for (j = i + 1; j < n; j++) {
      long long int p = lis[i][1] - lis[j][1], q = lis[i][0] - lis[j][0];
      long long int d = gcd(p, q);
      p /= d;
      q /= d;
      long long int b;
      if (q == 0)
        b = lis[i][0];
      else
        b = q * lis[i][1] - p * lis[i][0];
      pair<long long int, long long int> t1 = make_pair(p, q),
                                         t2 = make_pair(b, q);
      if (st.find(make_pair(t1, t2)) != st.end()) continue;
      st.insert(make_pair(t1, t2));
      if (mp.find(t1) == mp.end()) mp[t1] = 0;
      ans += (num - mp[t1]);
      mp[t1]++;
      num++;
    }
  printf("%lld\n", ans);
  return 0;
}
