P14024 [ICPC 2024 Nanjing R] 纸条
题目描述
有 $w$ 个格子排成一行,从左到右编号从 $1$ 到 $w$。这些格子中,有 $n$ 个是红色的,$m$ 个是黑色的,剩下的 $(w - n - m)$ 个是白色的。
您需要用一些纸条覆盖所有红色格子。每张纸条必须覆盖 $k$ 个连续的格子。找到覆盖所有红色格子的方式,同时还要满足以下所有限制:
- 每个红色格子都被纸条覆盖。
- 没有黑色格子被纸条覆盖。
- 没有两张纸条覆盖了同一个格子。也就是说,每个格子最多被一张纸条覆盖。
- 使用的纸条数尽可能小。
输入格式
有多组测试数据。第一行输入一个整数 $T$ 表示测试数据组数。对于每组测试数据:
第一行输入四个整数 $n$,$m$,$k$ 和 $w$($1 \le n, m \le 10^5$,$1 \le k \le w \le 10^9$,$n + m \le w$),表示红色格子的数量,黑色格子的数量,每张纸条的长度和格子的总数。
第二行输入 $n$ 个整数 $a_1, a_2, \cdots, a_n$($1 \le a_i \le w$),表示格子 $a_i$ 是红色的。
第三行输入 $m$ 个整数 $b_1, b_2, \cdots, b_m$($1 \le b_i \le w$),表示格子 $b_i$ 是黑色的。
保证所有给定的 $(n + m)$ 个格子互不相同。同时保证所有数据 $n$ 之和与 $m$ 之和均不超过 $2 \times 10^5$。
输出格式
对于每组数据:
如果可以覆盖所有红色格子,同时满足所有限制,首先输出一行一个整数 $c$ 表示最少使用几张纸条。接下来输出一行 $c$ 个由单个空格分隔的整数 $l_1, l_2, \cdots, l_c$($1 \le l_i \le w - k + 1$),其中 $l_i$ 表示第 $i$ 张纸条覆盖的最左边的格子。如果有多种合法答案,您可以输出任意一种。
如果无法完成要求,只要输出一行 $\texttt{-1}$。