CF1248A.Integer Points

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Integer Points

题目描述

DLS 和 JLS 在数学课上感到无聊。为了自娱自乐,DLS 拿出一张纸,画了 nn 条不同的直线,这些直线的方程为 y=x+piy = x + p_i,其中 p1,p2,,pnp_1, p_2, \ldots, p_n 是互不相同的整数。

随后,JLS 在同一张纸上画了 mm 条不同的直线,这些直线的方程为 y=x+qiy = -x + q_i,其中 q1,q2,,qmq_1, q_2, \ldots, q_m 也是互不相同的整数。

DLS 和 JLS 想知道,有多少对直线的交点坐标都是整数(即横纵坐标均为整数)。可惜课程很快就要结束了,所以他们请求你帮忙计算。

输入格式

第一行包含一个整数 tt1t10001 \le t \le 1000),表示测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn1n1051 \le n \le 10^5),表示 DLS 画的直线数量。

第二行包含 nn 个互不相同的整数 pip_i0pi1090 \le p_i \le 10^9),每个 pip_i 描述一条方程为 y=x+piy = x + p_i 的直线。

第三行包含一个整数 mm1m1051 \le m \le 10^5),表示 JLS 画的直线数量。

第四行包含 mm 个互不相同的整数 qiq_i0qi1090 \le q_i \le 10^9),每个 qiq_i 描述一条方程为 y=x+qiy = -x + q_i 的直线。

所有测试用例中 nn 的总和不超过 10510^5,所有测试用例中 mm 的总和也不超过 10510^5

在 hack 数据中,只允许输入一个测试用例,即 t=1t=1

输出格式

对于每个测试用例,输出一个整数,表示具有整数交点的直线对的数量。

说明/提示

下图展示了样例第一个测试用例中的直线。黑色圆点表示坐标均为整数的交点。

由 ChatGPT 4.1 翻译

样例

3
3
1 3 2
2
0 3
1
1
1
1
1
2
1
1
3
1
0

在线编程 IDE

建议全屏模式获得最佳体验