欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1895A.Treasure Chest
Treasure Chest
题目描述
给你一个数轴,一开始你的位置为 ,箱子在 处,钥匙在 处,。你需要通过一些操作打开宝箱。
当位置为 时,你能执行以下操作:
- 花费 秒,走向 或 ;
- 花费 秒,拿起 处的钥匙或箱子,如果此处有的话;
- 花费 秒,在 处放下箱子;
- 花费 秒,打开宝箱,如果箱子在 处且你拿着钥匙的话。
另外给出限制:因为箱子很重,所以在整个过程中,扛着箱子的时间不得超过 秒(放下再拿起箱子不会使其重置)。
现在给定 ,请问你打开箱子的最短用时为多少? 每个测试点采用多组数据测试。
输入格式
第一行一个整数 ,表示数据组数。
对于每组数据:唯一一行三个整数 ,分别表示初始时箱子的位置,钥匙的位置和你扛着箱子的最大时长。
输出格式
共 行,第 行一个整数表示第 组数据的答案。
说明/提示
数据范围与约定
$1\le t\le 100;\\1\le x,y\le 100,x\neq y;\\1\le k\le 100.$
样例解释
对于样例的第 组数据,可以通过以下一系列动作在第 秒打开箱子。
- 花费 秒走到 ,
- 花费 秒拿起箱子,
- 花费 秒走到 ,
- 拿起钥匙、放下箱子并打开箱子,共花费 秒。
全过程共花费 秒,拿着箱子的时间仅有 秒,不超过给定的限制 。可以证明不存在更优解。
对于样例的第 组数据,你可以花费 秒走到 并捡起钥匙,再花费 秒走到 并打开箱子。共花费 秒,其中没有扛过箱子,不超过给定的限制 。可以证明不存在更优解。
对于样例的第 组数据,你无法像数据 那样将箱子直接搬到钥匙处,而必须:
- 花费 秒走到 并扛起箱子;
- 花费 秒走到 ;
- 此时你已经力竭,达到了限制 ,所以必须花费 秒在 处放下箱子;
- 花费 秒走到 并捡起钥匙;
- 花费 秒再走到 并打开箱子。
全过程共花费 秒且刚好没有超过限制。可以证明不存在更优解。
样例
3
5 7 2
10 5 0
5 8 2
7
10
9
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |