欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF794A.Bank Robbery
Bank Robbery
题目描述
一名劫匪试图抢劫银行但未能得手。不过,他成功打开了所有的保险箱。
银行客户 Oleg 非常喜欢钱(谁不喜欢呢),于是决定趁这次未遂抢劫的机会,从保险箱中偷些钞票。有很多保险箱排成一排,从左至右第 个保险箱称为保险箱 。所有保险箱里一共剩下了 张钞票,第 张钞票在保险箱 中。当前 Oleg 站在保险箱 处。有两名保安,其中一人在保险箱 处,满足 ,也就是说,第一个保安在 Oleg 的左边;另一个在保险箱 处,满足 ,即在 Oleg 的右边。
这两名保安非常懒惰,不会移动。每一秒,Oleg 可以选择拿走当前位置保险箱内的所有钞票,或者移动到相邻的保险箱。但他不能在任何时候进入被保安守卫的保险箱,否则就会因盗窃而被抓。请问 Oleg 最多能拿到多少张钞票?
输入格式
输入的第一行包含三个用空格分隔的整数 、 和 (),表示 Oleg 所在的保险箱位置、第一名保安的位置和第二名保安的位置。
第二行输入一个整数 (),表示钞票的总数量。
第三行输入 个用空格分隔的整数 (),其中 表示第 张钞票所在的保险箱编号。注意, 可能不互不相同。
输出格式
输出一个整数,表示 Oleg 最多能拿到的钞票数量。
说明/提示
在第一个样例中,Oleg 可以拿到在位置 、、 的钞票(注意第 号位置有两张钞票)。Oleg 不能拿到 号和 号保险箱的钞票,因为不能越过第二名保安。同理,Oleg 也不能拿到 和 号保险箱的钞票,因为不能越过第一名保安。因此,他最多可以拿到 张钞票。
在第二个样例中,Oleg 无法不用经过保安而拿到任何一张钞票。
由 ChatGPT 5 翻译
样例
5 3 7
8
4 7 5 5 3 6 2 8
4
6 5 7
5
1 5 7 92 3
0
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |