#include <bits/stdc++.h>
using namespace std;
const double PI = atan2(0, -1);
int n, q;
int x[100001], y[100001];
int xx, yy;
double ang[200000];
bool cw(int x, int y, int xx, int yy) {
  return (long long)x * yy - (long long)xx * y < 0;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < (int)(n); ++i) scanf("%d%d", x + i, y + i);
  reverse(x, x + n);
  reverse(y, y + n);
  x[n] = x[0], y[n] = y[0];
  scanf("%d", &q);
  for (int i = 0; i < (int)(q); ++i) {
    int xx, yy;
    scanf("%d%d", &xx, &yy);
    bool ok = true;
    for (int i = 0; i < (int)(n); ++i)
      if (cw(x[i] - xx, y[i] - yy, x[i + 1] - xx, y[i + 1] - yy)) {
        ok = false;
        break;
      }
    if (!ok) {
      printf("0\n");
      continue;
    }
    for (int i = 0; i < (int)(n); ++i) ang[i] = atan2(y[i] - yy, x[i] - xx);
    for (int i = 1; i < n; ++i)
      if (ang[i] < ang[i - 1]) {
        ang[i] += 2 * PI;
      }
    for (int i = 0; i < (int)(n); ++i) ang[n + i] = ang[i] + 2 * PI;
    int j = 0;
    long long ans = (long long)n * (n - 1) * (n - 2) / 6;
    for (int i = 0; i < (int)(n); ++i) {
      if (j < i) ++j;
      while (ang[j] - ang[i] < PI) ++j;
      int cnt = j - i - 1;
      if (cnt < 2) continue;
      ans -= (long long)cnt * (cnt - 1) / 2;
    }
    printf("%I64d\n", ans);
  }
  return 0;
}
