CF155B Combination
题目描述
Ilya 玩一种卡牌游戏,规则如下。
玩家拥有若干张卡牌,每张卡牌的顶部和底部分别写有两个非负整数。每轮游戏开始时,玩家选择自己的一张卡牌来出牌。如果一张卡牌的顶部数字为 $a_{i}$,底部数字为 $b_{i}$,那么出这张牌时,玩家可以获得 $a_{i}$ 分,并且可以额外出 $b_{i}$ 张牌。打出的卡牌会被弃掉。
更正式地说:设有一个可以出牌的计数器。每轮开始计数器为 1。每出一张卡,计数器会因打出一张牌减 1,并根据该牌底部数字 $b_{i}$ 增加 $b_{i}$,然后该牌被移除。如果此后计数器不为零,玩家可以继续从剩下的牌中选择一张牌打出。回合在计数器为零或无牌可选时结束。
当然,Ilya 想获得尽可能多的分数。已知他拥有的所有牌,请你计算出他一轮最多能得到多少分。
输入格式
第一行包含一个整数 $n$($1 \leq n \leq 1000$),表示 Ilya 拥有的牌数。
接下来 $n$ 行,每行两个用空格分隔的非负整数,分别表示第 $i$ 张牌顶部的数字 $a_{i}$ 和底部的数字 $b_{i}$($0 \leq a_{i},b_{i} \leq 10^{4}$)。
输出格式
输出一个整数,表示按照上述规则一轮游戏最多可以获得的分数。
说明/提示
在第一个样例中,两张牌都不能带来额外的出牌次数,因此应该选择分值较高的那一张作为出牌。
在第二个样例中,应首先打第三张牌,即便它不带来分数,但是它可以让你再出两张剩下的牌。
由 ChatGPT 5 翻译