#P15504. [ICPC 2025 APC] Can You Reach There?

[ICPC 2025 APC] Can You Reach There?

说明

在二维平面上给定 nn 个互不相同的标记点,编号为 11nn。标记点 ii 的坐标为 (xi,yi)(x_i, y_i)。在本问题中,你会得到 qq 个场景,编号为 11qq。在每个场景 kk 中,给定四个整数 aka_kbkb_kckc_kdkd_k,表示你初始位于 (ak,bk)(a_k, b_k),旨在通过任意次重复下述步骤到达 (ck,dk)(c_k, d_k)

在单步操作中,你选择两个标记点 PPQQ,它们可以相同。设 SS 表示你当前所在点,定义点 TT 使得

PT=SQ\overrightarrow{PT} = \overrightarrow{SQ}

换言之,TT 的选取使得从 PPTT 的向量与从 SSQQ 的向量具有相同的方向和长度。然后你可以移动到线段 STST 上的任意点,包括点 TT 本身,并且你将站立在那个新点上。

对于每个场景,判断是否可以通过所描述的步骤实现目标。注意所有场景彼此独立。

输入格式

输入的第一行包含两个整数 nnqq1n1000001\le n\le 100\,0001q1000001\le q\le 100\,000)。接下来的 nn 行中的第 ii 行包含两个整数 xix_iyiy_i0xi,yi1090\le x_i,y_i\le 10^9)。输入保证没有两个标记点具有相同的坐标。

接下来的 qq 行表示场景。其中第 kk 行包含四个整数 aka_kbkb_kckc_kdkd_k0ak,bk,ck,dk1090\le a_k,b_k,c_k,d_k\le 10^9(ak,bk)(ck,dk)(a_k,b_k)\neq(c_k,d_k))。

输出格式

输出 qq 行。第 kk 行应包含 yes(如果场景 kk 的目标可实现),否则输出 no

2 4
10 0
0 10
3 4 6 5
4 0 7 0
4 0 16 0
123 456 789 0
yes
yes
yes
no

提示

样例输入/输出 #1 的解释

有两个标记点 (10,0)(10, 0)(0,10)(0, 10)。在场景 1 中,从点 S=(a1,b1)=(3,4)S = (a_1, b_1) = (3, 4) 出发,目标实现过程如下:

  • 第一步,选择 (10,0)(10, 0) 作为 PP(0,10)(0, 10) 作为 QQ。确定点 TT 的坐标为 (7,6)(7, 6)。移动到点 (40/7,75/14)(40/7, 75/14),该点位于线段 STST 上。(图 M.1 (a))
  • 下一步,选择 (10,0)(10,0) 同时作为 PPQQ。确定点 TT 的坐标为 (100/7,75/14)(100/7, -75/14)。从那里可以到达点 (c1,d1)=(6,5)(c_1, d_1) = (6, 5)。(图 M.1 (b))

在场景 2 中,从 S=(a2,b2)=(4,0)S = (a_2, b_2) = (4, 0) 出发。选择 (10,0)(10,0) 同时作为 PPQQ。确定点 TT 的坐标为 (16,0)(16, 0)。点 (c2,d2)=(7,0)(c_2, d_2) = (7, 0) 在线段 STST 上,因此一步即可到达。(图 M.1 (c))

在场景 3 中,目标同样可实现。

在场景 4 中,可以证明从 (a4,b4)=(123,456)(a_4, b_4) = (123, 456) 到达点 (c4,d4)=(789,0)(c_4, d_4) = (789, 0) 是不可能的。

:::align{center}

图 M.1:样例输入 #1 中场景的图示。 :::

翻译由 DeepSeek 完成