func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, m;   long long f[305][305][5];   struct point {     int x, y;     point(int x = 0, int y = 0) : x(x), y(y) {}   } a[305];   struct edge {     int u, v;     double w;     edge(int u = 0, int v = 0, double w = 0) : u(u), v(v), w(w) {}     bool operator<(const edge b) const { return w < b.w; }   } s[305 * 305];   int read() {     char c = getchar();     int x = 0, s = 1;     while (!isdigit(c)) {       if (c ==  - ) s = -1;       c = getchar();     }     while (isdigit(c)) {       x = (x << 3) + (x << 1) + c -  0 ;       c = getchar();     }     return x * s;   }   int main() {     n = read();     for (int i = 1; i <= n; ++i) {       a[i].x = read();       a[i].y = read();     }     for (int i = 1; i <= n; ++i)       for (int j = 1; j <= n; ++j)         if (i != j) s[++m] = edge(i, j, atan2(a[i].y - a[j].y, a[i].x - a[j].x));     sort(s + 1, s + m + 1);     for (int i = 1; i <= m; ++i) {       int u = s[i].u, v = s[i].v;       f[u][v][0] = 1;       for (int k = 1; k <= 4; ++k)         for (int j = 1; j <= n; ++j) f[j][v][k] += f[j][u][k - 1];     }     long long ans = 0;     for (int i = 1; i <= n; ++i) ans += f[i][i][4];     printf( %I64d n , ans);   }   