P13848 [CERC 2023] Drying Laundry
题目描述
海狸哈利经营着一家旅馆,在接下来的 $Q$ 周内,他必须在每个星期天晚上清洗床单,直到旅游季结束。在第 $j$ 周,他需要晾干 $N$ 条刚洗好的床单,他会把它们挂在两根平行的、长度均为 $L_j$ 的晾衣绳上。床单可以相邻悬挂,但不能重叠。每条床单的宽度为 $d_i$ 个单位,并且因为床单非常长,所以它总是会以宽度 $d_i$ 的方式占据晾衣绳的空间。床单的晾干时间与大小无关,而是由材质决定的。具体来说,第 $i$ 条床单如果只挂在一根绳子上需要 $t_i^{\text{slow}}$ 分钟才能晾干;如果同时横跨两根绳子,则可以更快地晾干,仅需 $t_i^{\text{fast}}$ 分钟,但这会同时占用两根绳子上的空间。为了避免床单发霉,哈利必须在洗完后立即把所有床单挂起来,也就是说,所有床单必须同时挂上去。
哈利想在周日尽快睡觉,因此他希望你帮忙确定在每一周 $j$ 中完成晾干所需的最短时间,或者告诉他该周无法完成晾干。
输入格式
第一行包含两个整数 $N$ 和 $Q$,分别表示床单数量和直到旅游季结束的周数。
接下来的 $N$ 行中,每行包含三个整数 $d_i, t_i^{\text{fast}}, t_i^{\text{slow}}$,分别表示第 $i$ 条床单的宽度、较快的晾干时间和较慢的晾干时间。
最后的 $Q$ 行,每行包含一个整数 $L_j$,表示第 $j$ 周每根晾衣绳的长度。
输出格式
输出 $Q$ 行,其中第 $j$ 行表示第 $j$ 周完成晾干所需的最短时间。如果无法在该周晾干所有床单,则输出 `-1`。
说明/提示
### 输入限制
- $1 \leq N \leq 3 \cdot 10^4$
- $1 \leq Q \leq 3 \cdot 10^5$
- 对所有 $1 \leq i \leq N$,有 $1 \leq d_i \leq 3 \cdot 10^5$
- 对所有 $1 \leq i \leq N$,有 $1 \leq t_i^{\text{fast}} \leq t_i^{\text{slow}} \leq 10^9$
- 对所有 $1 \leq j \leq Q$,有 $1 \leq L_j \leq 3 \cdot 10^5$
---
翻译由 ChatGPT-5 完成