E. Очень простая задача
ограничение по времени на тест
3 seconds
ограничение по памяти на тест
256 megabytes
ввод
stdin
вывод
stdout

Дан выпуклый многоугольник на плоскости. Посчитайте, пожалуйста, количество треугольников, образованных его вершинами, которые содержат данную точку на плоскости. Гарантируется, что точка не лежит на сторонах и диагоналях многоугольника.

Входные данные

В первой строке содержится число n — количество вершин многоугольника (3 ≤ n ≤ 100000). Далее идет описание многоугольника: n строк с координатами очередной вершины в порядке обхода по часовой стрелке (целые числа x, y, по модулю не превосходящие 109). Гарантируется, что данный многоугольник невырожденный и выпуклый (никакие три точки не лежат на одной прямой).

Следующая строка содержит число t (1 ≤ t ≤ 20) — количество точек, для которых нужно посчитать ответ. Далее идут описания точек: t строк с координатами очередной точки (целые числа x, y, по модулю не превосходящие 109).

Выходные данные

Выходной файл должен содержать t чисел, каждое на отдельной строке, i-е число — ответ для i-й точки.

Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битовых чисел на С++. Рекомендуется использовать поток cin (также вы можете использовать спецификатор %I64d).

Примеры
Входные данные
4
5 0
0 0
0 5
5 5
1
1 3
Выходные данные
2
Входные данные
3
0 0
0 5
5 0
2
1 1
10 10
Выходные данные
1
0
Входные данные
5
7 6
6 3
4 1
1 2
2 4
4
3 3
2 3
5 5
4 2
Выходные данные
5
3
3
4