欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1354A.Alarm Clock
Alarm Clock
题目描述
Polycarp 花了一整天为你准备题目。现在他需要至少睡 分钟才能恢复精力。
Polycarp 只能通过闹钟的声音醒来。所以他刚刚入睡,第一次闹钟将在 分钟后响起。
每次 Polycarp 醒来时,他会决定是否要继续睡觉。如果他总共睡眠的时间少于 分钟,那么他会将闹钟重新设定为 分钟后响起,并花费 分钟再次入睡。否则,他会起床开始新的一天。
如果闹钟在 Polycarp 入睡过程中响起,他会再次将闹钟设定为 分钟后响起,并再次尝试花 分钟入睡。
你需要判断 Polycarp 什么时候能起床,或者报告他永远无法起床。
请参考样例说明部分以获得更详细的解释。
输入格式
第一行包含一个整数 (),表示测试用例的数量。
每个测试用例包含一行,包含四个整数 (),分别表示 Polycarp 需要睡眠的时间、第一次闹钟响起的时间、每次之后闹钟响起的时间以及 Polycarp 入睡所需的时间。
输出格式
对于每个测试用例,输出一个整数。如果 Polycarp 永远无法起床,则输出 。否则,输出 Polycarp 起床所需的总时间。
说明/提示
在第一个测试用例中,Polycarp 在 分钟后醒来。他只休息了 分钟,而他需要 分钟。因此,他将闹钟重新设定为 分钟后响起,并花 分钟入睡。这样,他又休息了 分钟,总共睡了 分钟。然后他重复这个过程三次,最终总共睡了 分钟。最后,他起床了。他在第一次闹钟响起前花了 分钟,然后又重设了闹钟四次。答案是 。
第二个样例与第一个几乎相同,只是 Polycarp 需要 分钟的睡眠而不是 分钟。然而,这并没有改变结果,因为他用这些闹钟参数同样可以获得 分钟的睡眠。
在第三个测试用例中,Polycarp 在第一次闹钟响起后就已经休息够了。因此,答案是 。
在第四个测试用例中,Polycarp 在 分钟后醒来。不幸的是,他会无限次地重设闹钟,甚至无法休息一分钟 :(
由 ChatGPT 4.1 翻译
样例
7
10 3 6 4
11 3 6 4
5 9 4 10
6 5 2 3
1 1 1 1
3947465 47342 338129 123123
234123843 13 361451236 361451000
27
27
9
-1
1
6471793
358578060125049
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |