#include <bits/stdc++.h>
using namespace std;
inline long long qr() {
  long long x = 0, f = 1;
  char ch;
  while (!isdigit(ch = getchar()))
    if (ch == '-') f = -1;
  for (; isdigit(ch); x = x * 10 + ch - 48, ch = getchar())
    ;
  return x * f;
}
const double eps = 1e-8;
struct P {
  double x, y;
  P(double x = 0, double y = 0) : x(x), y(y) {}
  P operator-(P b) { return P(x - b.x, y - b.y); }
  double operator^(P b) { return x * b.y - y * b.x; }
} p[110000], q;
int dcmp(double x) { return (x > eps) - (x < -eps); }
int main() {
  long long n = qr();
  int i, j;
  for (i = 0; i < n; ++i) cin >> p[i].x >> p[i].y;
  p[n] = p[0];
  int kase = qr();
  while (kase--) {
    cin >> q.x >> q.y;
    int f = 0;
    for (i = 0; i < n; ++i)
      if (dcmp((p[i] - q) ^ (p[i + 1] - q)) <= 0) f++;
    if (f != n) {
      puts("0");
      continue;
    }
    long long num = 0, s = n * (n - 1) * (n - 2) / 6;
    j = 0;
    for (i = 0; i < n; ++i) {
      if (i) num--;
      while (dcmp((p[i] - q) ^ (p[j] - q)) <= 0) {
        if (j != i) num++;
        j = (j + 1) % n;
      }
      s -= num * (num - 1) / 2;
    }
    cout << s << endl;
  }
  return 0;
}
