AT_abc155_f [ABC155F] Perils in Parallel

题目描述

由于 AlDebaran 王国的入侵,AtCoder 王国各地被安放了炸弹。 幸运的是,得益于 AtCoder 王国 ABC 队的英勇奋战,部分控制装置被夺回,你决定利用这些装置尝试解除炸弹。 共有 $N$ 个炸弹,编号为 $1$ 到 $N$。第 $i$ 个炸弹位于坐标 $A_i$,当 $B_i=1$ 时其电源为开启,$B_i=0$ 时为关闭。 控制装置上有 $M$ 根导线,编号为 $1$ 到 $M$。切断第 $j$ 根导线时,所有坐标在 $L_j$ 到 $R_j$ 之间(包含端点)的炸弹,其电源状态会被切换(开变关,关变开)。 请判断是否存在一种切断导线的方式,使得所有炸弹的电源都关闭。如果存在,请输出一种可行的导线组合。

输入格式

输入以如下格式从标准输入给出。 > $N$ $M$ $A_1$ $B_1$ : $A_N$ $B_N$ $L_1$ $R_1$ : $L_M$ $R_M$

输出格式

如果无法使所有炸弹的电源都关闭,输出 `-1`。 如果可以,请输出一组可行的导线组合,格式如下: > $k$ $c_1$ $c_2$ $\dots$ $c_k$ 其中,$k$ 表示需要切断的导线数量(可以为 $0$),$c_1,\ c_2,\ \dots,\ c_k$ 表示切断的导线编号,需满足 $1\leq c_1 < c_2 < \dots < c_k \leq M$。

说明/提示

### 限制条件 - 所有输入均为整数。 - $1\leq N\leq 10^5$ - $1\leq A_i\leq 10^9\ (1\leq i\leq N)$ - $A_i$ 互不相同 - $B_i$ 仅为 $0$ 或 $1\ (1\leq i\leq N)$ - $1\leq M\leq 2\times 10^5$ - $1\leq L_j\leq R_j\leq 10^9\ (1\leq j\leq M)$ ### 样例解释 1 坐标 $5,\ 10$ 的炸弹电源为开启,坐标 $8$ 的炸弹电源为关闭。切断导线 $1$ 时,坐标在 $1$ 到 $10$ 之间的所有炸弹(即全部炸弹)电源会切换。切断导线 $4$ 时,坐标在 $8$ 到 $9$ 之间的炸弹(即炸弹 $3$)电源会切换。因此,切断导线 $1$ 和 $4$ 共 $2$ 根,可以使所有炸弹电源关闭。 ### 样例解释 2 无论如何选择切断的导线,都无法使所有炸弹电源关闭。 ### 样例解释 3 一开始所有炸弹电源均为关闭,因此无需切断任何导线。 ### 样例解释 4 如果存在多组满足条件的导线组合,输出任意一组均可。 由 ChatGPT 4.1 翻译