CF1702D.Not a Cheap String

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Not a Cheap String

题目描述

给定一个由小写拉丁字母组成的字符串 ss。它的“价格”定义为其中所有字母对应的字母表序号之和(即 112626 之间的整数)。例如,字符串 abca 的价格为 1+2+3+1=71+2+3+1=7

现在给定字符串 ww 和整数 pp。请你从 ww 中删除最少数量的字母,使得其价格不超过 pp,并输出最终得到的字符串。注意,最终得到的字符串可以为空。你可以删除任意位置的字母,不要求连续。如果原始字符串 ww 的价格已经不超过 pp,则无需删除任何字母,直接输出 ww

删除字母时,剩余字母的顺序必须保持不变。例如,从字符串 test 删除字母 e 后得到 tst。

输入格式

输入的第一行为一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。接下来是 tt 组测试用例的描述。

每组测试用例包含两行。

第一行为字符串 ww,非空且只包含小写拉丁字母,长度不超过 21052 \cdot 10^5

第二行为一个整数 pp1p52000001 \le p \le 5\,200\,000)。

保证所有测试用例中字符串 ww 的总长度不超过 21052 \cdot 10^5

输出格式

输出恰好 tt 行,第 ii 行为第 ii 个测试用例的答案。请输出通过删除若干字母(可以为零)得到的、价格不超过 pp 的最长字符串。如果有多种答案,输出任意一种均可。

注意,空字符串也是一种可能的答案。在这种情况下,直接输出空行即可。

说明/提示

由 ChatGPT 4.1 翻译

样例

5
abca
2
abca
6
codeforces
1
codeforces
10
codeforces
100
aa
abc

cdc
codeforces

在线编程 IDE

建议全屏模式获得最佳体验