数格点
题号:NC19773
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

明明和白白是好朋友,他们最近在学习皮克定理。
在一个二维的平面中,有一个格点多边形。根据皮克定理,这个多边形的面积A 和内部格点数i、边上格点数目b 有如下关系:

明明不满足于数格点,而是希望知道这个多边形内满足 的点有多少个。
明明明明明白白白不擅长数数,却偏要让白白算出多边形内满足要求的点的个数。无助的白白只好求助于聪明的你了。为了简化问题,数据保证多边形是个凸包,相邻的三个点不会共线。

输入描述:

输入文件包含多组数据,第一行一个整数 T 表示数据组数。
每组数据第一行有五个整数 u, v, a, b, n, 其中 n 表示多边形中顶点个数。
接下来 n 行每行两个整数 x, y,表示多边形顶点的坐标。顶点按照顺时针或者逆时针给出。

输出描述:

一个整数,多边形内满足要求的点的个数。
示例1

输入

复制
1
2 2 1 1 4
0 0
0 2
2 2
2 0

输出

复制
1

备注:

3 ≤ n ≤ 100, 0 ≤ a < u ≤ 109, 0 ≤ b < v ≤ 108,  0 ≤ |x|, |y| ≤ 108
所有多边形的节点数之和不超过 104.