CF2036B Startup

题目描述

Arseniy 想出了一个新的商业计划——通过自动售货机出售汽水!为此,他购买了一台有 $n$ 层货架的机器,以及 $k$ 瓶汽水,其中第 $i$ 瓶汽水有品牌编号 $b_i$ 和售价 $c_i$。 你可以在每个货架上放任意数量的汽水瓶,但同一货架上的所有汽水瓶必须属于同一品牌。 Arseniy 知道他放在机器货架上的所有汽水瓶最终都会被卖出。因此,他请你帮忙计算他最多能赚多少钱。

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。 每个测试用例的第一行包含两个整数 $n$ 和 $k$($1 \le n, k \le 2 \cdot 10^5$),其中 $n$ 表示机器的货架数,$k$ 表示 Arseniy 拥有的汽水瓶数。 接下来的 $k$ 行,每行包含两个整数 $b_i$ 和 $c_i$($1 \le b_i \le k, 1 \le c_i \le 1000$),分别表示第 $i$ 瓶汽水的品牌编号和售价。 保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$,$k$ 的总和也不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出一个整数,表示 Arseniy 能赚到的最大金额。

说明/提示

在第一个测试用例中,Arseniy 有 $3$ 个货架。他可以例如将两个品牌为 $2$ 的汽水瓶放在第一个货架,将一个品牌为 $1$ 的汽水瓶放在第二个货架。这样所有汽水瓶的总售价为 $6 + 7 + 15 = 28$。 在第二个测试用例中,他只有一个货架。不难发现最优方案是将品牌为 $1$ 的汽水瓶放在上面。这样总售价为 $15$。 在第三个测试用例中,他有 $6$ 个货架,因此可以放下所有汽水瓶,总售价为 $7 + 5 = 12$。 由 ChatGPT 4.1 翻译