CF818C Sofa Thief
题目描述
又一场 DecoForces 比赛即将来临!爷爷 Maks 想要参加比赛,但他心爱的沙发被人偷走了!如此重大的损失,他怎能好好比赛呢?
幸运的是,小偷给爷爷 Maks 留下了一张纸条。纸条将 Maks 指引到了沙发仓库。但所有沙发看起来都一样,他还是不知道哪一张是自己的!
仓库被表示为一个 $n\times m$ 的矩阵。每张沙发占据两个相邻(有公共边)的格子。每个格子不会被多于一张沙发覆盖。如果有些格子为空也没关系。
如果存在两个格子 $a$ 和 $b$,$x_a < x_b$,$a$ 被沙发 $A$ 覆盖,$b$ 被沙发 $B$ 覆盖,则沙发 $A$ 处于沙发 $B$ 的左侧。如果存在两个格子 $a$ 和 $b$,$y_a < y_b$,$a$ 被沙发 $A$ 覆盖,$b$ 被沙发 $B$ 覆盖,则沙发 $A$ 处于沙发 $B$ 的上方。同理可以定义右方和下方。
注意所有上述条件中,$A \neq B$。同一张沙发 $A$ 可以同时在另一张沙发 $B$ 的上方和下方。左右也是同理。
纸条上还写着,爷爷 Maks 的沙发左边有 $cnt_l$ 张沙发,右边有 $cnt_r$ 张沙发,上方有 $cnt_t$ 张沙发,下方有 $cnt_b$ 张沙发。
爷爷 Maks 请求你帮他辨认出属于他的那张沙发。保证满足这些条件的沙发最多只有一张。
输出爷爷 Maks 的沙发编号。如果没有符合条件的沙发,输出 -1。
输入格式
第一行包含一个整数 $d$,表示仓库内的沙发数量,$1 \leq d \leq 10^{5}$。
第二行包含两个整数 $n, m$,表示仓库的大小,$1 \leq n, m \leq 10^{5}$。
接下来的 $d$ 行,每行包含四个整数 $x_1, y_1, x_2, y_2$,表示第 $i$ 张沙发占据的位置。保证 $(x_1, y_1)$ 和 $(x_2, y_2)$ 是有公共边的相邻格子,$(x_1, y_1) \neq (x_2, y_2)$,并且没有格子会被多于一张沙发覆盖。
最后一行包含四个整数 $cnt_l, cnt_r, cnt_t, cnt_b$,分别表示爷爷 Maks 的沙发左、右、上、下共有多少张沙发,$0 \leq cnt_l, cnt_r, cnt_t, cnt_b \leq d-1$。
输出格式
输出满足所有条件的沙发编号。沙发编号按输入顺序从 $1$ 到 $d$。如果没有满足条件的沙发,输出 $-1$。
说明/提示
以第二个样例为例:
- 第一张沙发左侧有 $0$ 张沙发,右侧有 $2$ 张沙发($(1,1)$ 都在 $(5,5)$ 和 $(5,4)$ 的左侧),上面有 $0$ 张沙发,下面有 $2$ 张沙发(第 2、3 张沙发都在其下方)。
- 第二张沙发左侧有 $2$ 张,右侧有 $1$ 张,上面有 $2$ 张,下面有 $0$ 张。
- 第三张沙发左侧有 $2$ 张,右侧有 $1$ 张,上面有 $1$ 张,下面有 $1$ 张。
因此第二张满足条件。
在第三个样例中:
- 第一张沙发左侧有 $1$ 张,右侧有 $1$ 张,上面有 $0$ 张,下面有 $1$ 张。
- 第二张沙发左侧有 $1$ 张,右侧有 $1$ 张,上面有 $1$ 张,下面有 $0$ 张。
没有满足 $(1,0,0,0)$ 这个条件的沙发,所以输出 $-1$。
由 ChatGPT 5 翻译