AT_maximum_cup_2023_g イノシシ対策
题目描述
S君决定在 $xy$ 平面上的 $(X,Y)$ 开始农业种植。
然而,平面上有 $N$ 头野猪正打算破坏他的农田。第 $i$ 头野猪居住在 $(x_i,y_i)$。
S君向当地政府咨询解决方案,得到了 $M$ 个提案。
第 $i$ 个提案是在直线 $y=a_i x + b_i$ 上建立一条围栏。如果实施该提案,需花费 $2^{i-1}$ 日元。
要保护农田,必须对所有 $i=1,2,\ldots,N$,使得连结 $(X,Y)$ 和 $(x_i,y_i)$ 的线段(含端点)与某个围栏对应的直线有交点。
你可以选择执行 $0$ 个或多个提案。如果保护农田所需的最小金额为 $C$ 日元,请输出 $C$ 除以 $10^9+7$ 取余的结果。
如果无论如何选择都无法保护农田,请输出 `-1`。
输入格式
输入按以下格式从标准输入给出。
> $N$ $M$ $X$ $Y$
> $x_1$ $y_1$
> $\vdots$
> $x_N$ $y_N$
> $a_1$ $b_1$
> $\vdots$
> $a_M$ $b_M$
输出格式
请输出答案。
说明/提示
### 样例解释 1
选择第 $1,3$ 个提案并实施是最优的,因此 $C=2^{1-1}+2^{3-1}=5$,$5$ 除以 $10^9+7$ 取余结果为 $5$,这是期望的输出。
### 样例解释 2
同一坐标上可能有多头野猪,或者可能存在(除了所需金钱以外)相同的提案。
### 数据范围
- $1 \leq N, M \leq 2 \times 10^5$
- $-10^9 \leq X, Y, x_i, y_i, a_i, b_i \leq 10^9$
- $(X,Y) \neq (x_i, y_i)$
- 所有输入均为整数。
由 ChatGPT 5 翻译