#include <bits/stdc++.h>   using namespace std;   const long long N = 300;   inline long long read() {     long long s = 0, ww = 1;     char ch = getchar();     while (ch <  0  || ch >  9 ) {       if (ch ==  - ) ww = -1;       ch = getchar();     }     while ( 0  <= ch && ch <=  9 ) {       s = 10 * s + ch -  0 ;       ch = getchar();     }     return s * ww;   }   struct vec {     long long x, y;     vec() {}     vec(long long _x, long long _y) { x = _x, y = _y; }     inline friend vec operator-(vec a, vec b) {       return vec(a.x - b.x, a.y - b.y);     }     inline friend long long Cross(vec a, vec b) { return a.x * b.y - a.y * b.x; }     inline friend bool InUpper(vec a) { return a.y > 0 || (a.y == 0 && a.x > 0); }   } p[N + 5];   inline bool cmp(pair<long long, long long> i, pair<long long, long long> j) {     vec a = p[i.second] - p[i.first], b = p[j.second] - p[j.first];     bool k1 = InUpper(a), k2 = InUpper(b);     if (k1 != k2) return k1 < k2;     return Cross(a, b) > 0;   }   long long f[N + 5][N + 5][7];   long long n;   pair<long long, long long> seg[N * N + 5];   int main() {     n = read();     for (register int i = 1; i <= n; i++) {       long long x = read(), y = read();       p[i] = vec(x, y);     }     int cnt = 0;     for (register int i = 1; i <= n; i++)       for (register int j = 1; j <= n; j++)         if (i != j) seg[++cnt] = make_pair(i, j);     sort(seg + 1, seg + cnt + 1, cmp);     for (register int i = 1; i <= n; i++) f[i][i][1] = 1;     for (register int k = 1; k <= cnt; k++) {       int u = seg[k].first, v = seg[k].second;       for (register int i = 1; i <= n; i++)         for (register int j = 1; j <= 5; j++) f[i][v][j + 1] += f[i][u][j];     }     long long ans = 0;     for (register int i = 1; i <= n; i++) ans += f[i][i][6];     cout << ans << endl;     return 0;   }   