#include <bits/stdc++.h>
using namespace std;
struct node {
  int x, y;
} a[100010];
int n, m;
long long cj(node x1, node x2, node x3) {
  long long a1 = x2.x - x1.x, b1 = x2.y - x1.y, a2 = x3.x - x1.x,
            b2 = x3.y - x1.y;
  return a1 * b2 - a2 * b1;
}
long long qiu() {
  long long s = 0;
  for (int j = n - 1; j >= 2; j--) s += abs(cj(a[n], a[j], a[j - 1]));
  return s;
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d%d", &a[i].x, &a[i].y);
  long long ans = qiu();
  scanf("%d", &m);
  long long s2;
  node p;
  for (int i = 1; i <= m; i++) {
    scanf("%d%d", &p.x, &p.y);
    s2 = 0;
    s2 += abs(cj(p, a[1], a[n]));
    for (int i = 1; i <= n - 1; i++) {
      s2 += abs(cj(p, a[i], a[i + 1]));
      if (s2 > ans) break;
    }
    if (s2 != ans)
      printf("0\n");
    else {
      long long tot = (long long)n * (n - 1) * (n - 2) / 6;
      int i, j;
      for (i = 1, j = 1; i <= n; i++) {
        while (j + 1 != i + n && cj(a[i], p, a[j % n + 1]) > 0) j++;
        tot -= (long long)(j - i) * (j - i - 1) / 2;
      }
      printf("%I64d\n", tot);
    }
  }
}
