func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T>   T abs(T x) {     return x > 0 ? x : -x;   }   int n;   int m;   int mask[500][500][17];   int x[500], y[500], X[500], Y[500];   double xx[500], yy[500], XX[500], YY[500];   double vect(double x1, double y8687969, double x2, double y2) {     return x1 * y2 - x2 * y8687969;   }   int main() {     int n, m;     scanf( %d%d , &n, &m);     for (int i = 0; i < n; i++) scanf( %d%d , &x[i], &y[i]);     for (int i = 0; i < m; i++) scanf( %d%d , &X[i], &Y[i]);     double *cx, *cy, *CX, *CY;     for (int i = 0; i < n; i++) {       for (int j = i + 1; j < n; j++) {         xx[j] = x[j] - x[i], yy[j] = y[j] - y[i];       }       for (int j = 0; j < m; j++) {         XX[j] = X[j] - x[i];         YY[j] = Y[j] - y[i];       }       cx = xx + i;       cy = yy + i;       for (int j = i + 1; j < n; j++) {         cx++;         cy++;         CX = XX;         CY = YY;         int *ap = mask[i][j], *ar = mask[j][i];         int b = 0;         for (int k = 0; k < m; k++, CX++, CY++) {           if ((*cx) * (*CY) - (*cy) * (*CX) > 0)             (*ap) |= (1 << b);           else             (*ar) |= (1 << b);           b++;           if (b == 30) {             ap++;             ar++;             b = 0;           }         }       }     }     int ans = 0;     double *jx, *jy, *kx, *ky;     for (int i = 0; i < n; i++) {       for (int j = i + 1; j < n; j++) {         xx[j] = x[j] - x[i];         yy[j] = y[j] - y[i];       }       jx = xx + i;       jy = yy + i;       for (int j = i + 1; j < n; j++) {         jx++;         jy++;         kx = jx;         ky = jy;         for (int k = j + 1; k < n; k++) {           kx++;           ky++;           if ((*jx) * (*ky) - (*jy) * (*kx) > 0) {             ans++;             for (int l = 0; l < 17; l++)               if (mask[i][j][l] & mask[j][k][l] & mask[k][i][l]) {                 ans--;                 break;               }           } else {             ans++;             for (int l = 0; l < 17; l++)               if (mask[i][k][l] & mask[k][j][l] & mask[j][i][l]) {                 ans--;                 break;               }           }         }       }     }     printf( %d n , ans);     return 0;   }   