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 翻译