P15452 [JOI 2026 SemiFinal] 宝石商 / Jeweler

题目描述

JOI 君经营着一家宝石店。有 $N$ 位顾客想要购买宝石,这些顾客被编号为 $1$ 到 $N$。顾客 $i$ ($1 \le i \le N$) 可以在时刻 $L_i$ 到时刻 $R_i$ 之间的任意时刻到访店铺,并打算购买 $C_i$ 个宝石。 JOI 君很忙,无法一直开店。因此,他考虑了 $M$ 个开店时间的方案。方案被编号为 $1$ 到 $M$,方案 $j$ ($1 \le j \le M$) 是指在时刻 $S_j - 0.1$ 到时刻 $T_j + 0.1$ 之间开店。对于每个方案,顾客 $i$ ($1 \le i \le N$) 如果在其可到访的时间段内存在店铺开门的时刻,则会到访店铺并购买 $C_i$ 个宝石。反之,如果不存在这样的时刻,顾客 $i$ 则不会到访,也不会购买宝石。但是,JOI 君的店铺里有充足的宝石,不会出现售罄的情况。 给定 JOI 君店铺的顾客信息以及开店时间的各个方案,请编写一个程序,针对每个方案求出总共能卖出多少个宝石。

输入格式

输入从标准输入中以以下格式给出: $N$ $L_1\ R_1\ C_1$ $L_2\ R_2\ C_2$ $\vdots$ $L_N\ R_N\ C_N$ $M$ $S_1\ T_1$ $S_2\ T_2$ $\vdots$ $S_M\ T_M$

输出格式

向标准输出输出 $M$ 行。第 $j$ 行 ($1 \le j \le M$) 输出方案 $j$ 中总共能卖出的宝石个数。

说明/提示

#### 样例解释 1 方案 1 中,从时刻 $3.9$ 到时刻 $6.1$ 开店。顾客 1 可在时刻 $4$,顾客 2 可在时刻 $5$,顾客 3 可在时刻 $6$ 到店铺购买宝石,总共卖出 $10 + 20 + 30 = 60$ 个宝石。 方案 2 中,从时刻 $0.9$ 到时刻 $2.1$ 开店。任何顾客都无法在开店时刻到访,因此总共卖出 $0$ 个宝石。 方案 3 中,从时刻 $5.9$ 到时刻 $8.1$ 开店。顾客 2 和顾客 3 均可在时刻 $7$ 到店铺购买宝石,总共卖出 $20 + 30 = 50$ 个宝石。 该输入样例满足子任务 1、5 的数据范围。 #### 样例解释 2 方案 1 中,顾客 1 和顾客 3 可以到店铺购买宝石,总共卖出 $1 + 4 = 5$ 个宝石。 方案 2 中,顾客 1、顾客 2、顾客 3 可以到店铺购买宝石,总共卖出 $1 + 2 + 4 = 7$ 个宝石。 方案 3 中,所有顾客都可以到店铺购买宝石,总共卖出 $1 + 2 + 4 + 8 = 15$ 个宝石。 该输入样例满足子任务 1、3、4、5 的数据范围。 ### 数据范围 - $1 \le N \le 300\,000$ - $1 \le L_i < R_i \le 1\,000\,000$ ($1 \le i \le N$) - $1 \le C_i \le 10^9$ ($1 \le i \le N$) - $1 \le M \le 300\,000$ - $1 \le S_j \le T_j \le 1\,000\,000$ ($1 \le j \le M$) - 输入的所有值均为整数。 ### 子任务 1. (12 分) $N \le 1000,\ M \le 1000$ 2. (17 分) $S_j = T_j$ ($1 \le j \le M$) 3. (21 分) $S_j = 1$ ($1 \le j \le M$) 4. (23 分) $S_j \le S_{j+1},\ T_j \le T_{j+1}$ ($1 \le j < M$) 5. (27 分) 无额外限制。 翻译由 DeepSeek 完成