#include <bits/stdc++.h>
using namespace std;
const int N = 4e2 + 5;
const int z = 1e9;
int n;
double x[N], y[N];
std::map<pair<double, double>, int> m;
vector<pair<double, double>> v;
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%lf%lf", &x[i], &y[i]);
  }
  int ans = 0, cnt = 0;
  double xx = 0, yy = 0;
  for (int i = 0; i < n; i++) {
    for (int j = i + 1; j < n; j++) {
      if (x[i] == x[j]) {
        if (!m[pair<double, double>(z, x[i])]) {
          v.push_back(pair<double, double>(z, x[i]));
          m[pair<double, double>(z, x[i])] = 1;
        }
      } else {
        xx = (y[i] - y[j]) / (x[i] - x[j]);
        yy = y[i] - xx * x[i];
        if (!m[pair<double, double>(xx, yy)]) {
          v.push_back(pair<double, double>(xx, yy));
          m[pair<double, double>(xx, yy)] = 1;
        }
      }
    }
  }
  for (int i = 0; i < v.size(); i++) {
    for (int j = i + 1; j < v.size(); j++) {
      if (v[i].first == v[j].first && v[i].second != v[j].second) {
        continue;
      } else
        ans++;
    }
  }
  printf("%d\n", ans);
  return 0;
}
