欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1011A.Stages
Stages
题目描述
Natasha 即将飞往火星。她需要组装一枚火箭,火箭由若干级按某种顺序组成。每一级由一个小写拉丁字母表示。因此,火箭可以用一个字符串描述——即这些字母的拼接,代表各级。
现有 个可用的级。火箭必须恰好包含 级。火箭中的各级应按其重量顺序排列。因此,在某个字母后面只能接字母表中至少相隔两个位置的字母(即中间至少跳过一个字母,或更多)。例如,在字母 'c' 后面不能接 'a'、'b'、'c' 和 'd',但可以接 'e'、'f'、……、'z'。
为了让火箭飞得尽可能远,其总重量应最小。火箭的重量等于各级重量之和。每一级的重量等于其字母在字母表中的序号。例如,'a' 的重量为 1 吨,'b' 的重量为 2 吨,'z' 的重量为 26 吨。
请构造一枚总重量最小的火箭,或判断无法组装出符合要求的火箭。每个级最多只能使用一次。
输入格式
输入的第一行包含两个整数 和 (),分别表示可用级的数量和火箭需用的级数。
第二行包含一个长度为 的字符串 ,由小写拉丁字母组成。每个字母代表一种可用的级。每个级最多只能使用一次。
输出格式
输出一个整数,表示火箭的最小总重量。如果无法组装出符合要求的火箭,则输出 。
说明/提示
在第一个样例中,以下火箭满足条件:
- "adx"(重量为 );
- "ady"(重量为 );
- "bdx"(重量为 );
- "bdy"(重量为 )。
"adx" 火箭的重量最小,因此答案为 。
在第二个样例中,目标火箭为 "belo",其重量为 。
在第三个样例中,,因此火箭必须包含 'a' 和 'b' 两级。但这两级在字母表中相邻,不满足条件。答案为 。
由 ChatGPT 4.1 翻译
样例
5 3
xyabd
29
7 4
problem
34
2 2
ab
-1
12 1
abaabbaaabbb
1
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |