AT_abc312_f [ABC312F] Cans and Openers

题目描述

有 $N$ 个物品。 这些物品分别属于以下三类之一:不需要开罐器的罐头、需要开罐器的罐头、开罐器。 第 $i$ 个物品由整数对 $(T_i, X_i)$ 表示,具体如下: - 如果 $T_i = 0$,则第 $i$ 个物品是不需要开罐器的罐头,获得它可以获得 $X_i$ 的满足度。 - 如果 $T_i = 1$,则第 $i$ 个物品是需要开罐器的罐头,获得它并使用开罐器后可以获得 $X_i$ 的满足度。 - 如果 $T_i = 2$,则第 $i$ 个物品是开罐器,可以用于开启最多 $X_i$ 个罐头。 请你从 $N$ 个物品中选出 $M$ 个,求能够获得的满足度总和的最大值。

输入格式

输入按以下格式从标准输入给出。 > $N$ $M$ > $T_1$ $X_1$ > $T_2$ $X_2$ > $\vdots$ > $T_N$ $X_N$

输出格式

请输出一个整数,表示最大可能获得的满足度总和。

说明/提示

## 限制条件 - $1 \leq M \leq N \leq 2 \times 10^5$ - $T_i$ 取 $0, 1, 2$ 中的一个 - $1 \leq X_i \leq 10^9$ - 输入的所有值均为整数 ## 样例解释 1 选择第 $1, 2, 5, 7$ 个物品,并用第 $7$ 个物品(开罐器)开启第 $5$ 个物品,可以获得满足度 $6 + 6 + 15 = 27$。不存在能获得满足度 $28$ 或以上的选法,在上述例子中,即使用第 $6$ 个物品或第 $8$ 个物品代替第 $7$ 个物品,也可以获得满足度 $27$。 由 ChatGPT 4.1 翻译