在 $xy$ 平面上给定 $N$ 条直线。第 $i$ 条直线($1 \le i \le N$)经过两个不同的点 $(a_i, b_i)$ 和 $(c_i, d_i)$。特别地,$(a_1, b_1, c_1, d_1) = (0, 0, 1, 0)$ 且 $(a_2, b_2, c_2, d_1) = (0, 0, 0, 1)$。也就是说,第一条直线代表 $x$ 轴,第二条直线代表 $y$ 轴。
Alice 位于 $xy$ 平面上。她可以执行任意次数(包括零次)以下操作:
选择 $N$ 条给定直线中的一条。Alice 移动到她当前位置关于所选直线的对称点。
此外,我们定义:如果满足以下条件,则称点 $P$ 可从点 $S$ 到达:
对于任何实数 $\varepsilon > 0$,都存在一个点 $Q$,使得 $Q$ 与 $P$ 之间的欧几里得距离最多为 $\varepsilon$,且 Alice 可以通过有限次操作从 $S$ 移动到 $Q$。
回答 $Q$ 个询问。对于第 $i$ 个询问($1 \le i \le Q$),给定整数 $X_i, Y_i, Z_i, W_i$。如果 $(Z_i, W_i)$ 可从 $(X_i, Y_i)$ 到达,输出 Yes,否则输出 No。
给定 $T$ 组测试数据;请解决每一组数据。
输入格式
输入按以下格式给出:
$T$ $case_1$ $case_2$ $\vdots$ $case_T$
其中 $case_i$ 表示第 $i$ 组测试数据。每组测试数据按以下格式给出:
$N$ $a_1 \ b_1 \ c_1 \ d_1$ $a_2 \ b_2 \ c_2 \ d_2$ $\vdots$ $a_N \ b_N \ c_N \ d_N$ $Q$ $X_1 \ Y_1 \ Z_1 \ W_1$ $X_2 \ Y_2 \ Z_2 \ W_2$ $\vdots$ $X_Q \ Y_Q \ Z_Q \ W_Q$
- 所有输入值均为整数。
- $1 \le T \le 100$
- 对于每组测试数据:
- $2 \le N \le 2000$
- $1 \le Q \le 2000$
- $-10^8 \le a_i, b_i, c_i, d_i \le 10^8$ ($1 \le i \le N$)
- $(a_i, b_i) \neq (c_i, d_i)$
- $(a_1, b_1, c_1, d_1) = (0, 0, 1, 0)$
- $(a_2, b_2, c_2, d_2) = (0, 0, 0, 1)$
- 所有给定的直线互不相同。
- $-10^8 \le X_i, Y_i, Z_i, W_i \le 10^8$ ($1 \le i \le Q$)
输出格式
对于每组测试数据,输出 $Q$ 行。第 $i$ 行($1 \le i \le Q$)应包含第 $i$ 个询问的答案。如果 $(Z_i, W_i)$ 可从 $(X_i, Y_i)$ 到达,输出 Yes,否则输出 No。输出不区分大小写。
样例
样例输入 1
2 3 0 0 1 0 0 0 0 1 0 2 2 0 4 1 0 2 3 1 -2 -1 2 1 1 -1 0 3 3 3 3 3 0 0 1 0 0 0 0 1 -2 1 2 3 2 2 1 -1 5 -1 -1 3 3
样例输出 1
Yes Yes No Yes Yes Yes
说明
让我们解释第一组测试数据。对于第一个询问,Alice 可以依次使用第二条和第三条直线进行移动:$(1, 0) \to (-1, 0) \to (2, 3)$。因此,$(2, 3)$ 可从 $(1, 0)$ 到达。注意,对于第四个询问,如果 $(X_i, Y_i) = (Z_i, W_i)$,则目的地总是可达的。
现在让我们解释第二组测试数据。对于第一个询问,Alice 可以依次使用第一条和第三条直线进行移动:$(2, 1) \to (2, -1) \to (-\frac{6}{5}, \frac{27}{5})$。$(-1, 5)$ 与 $(-\frac{6}{5}, \frac{27}{5})$ 之间的距离为 $\sqrt{\frac{1}{5}}$。这意味着对于 $\varepsilon \ge \sqrt{\frac{1}{5}}$,Alice 可以找到一个满足“可达”条件的点 $Q$。此外,对于任何 $\varepsilon > 0$,Alice 都能找到这样的点 $Q$。因此,$(2, 1)$ 可从 $(-1, 5)$ 到达。