欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1902B.Getting Points
Getting Points
题目描述
Monocarp 是 Berland 州立大学的一名学生。由于 Berland 教育体系的最新变动,Monocarp 现在只需要学习一门课程——编程。
一个学期共有 天。为了不被开除,Monocarp 必须在这 天内至少获得 分。获得分数有两种方式:完成实践任务和参加课程。每完成一个实践任务可以获得 分,每参加一次课程可以获得 分。
实践任务会按“每周”逐步解锁:第一个任务在第 天解锁(可以在第 天到第 天中的任意一天完成),第二个任务在第 天解锁(可以在第 天到第 天中的任意一天完成),第三个任务在第 天解锁,依此类推。
从第 天到第 天,每天都有一节课,Monocarp 都可以选择参加。每天,Monocarp 可以选择学习或休息一天。如果他选择学习,则当天会参加一节课,并且可以完成不超过 个已经解锁且尚未完成的任务。如果选择休息,则当天既不参加课程,也不完成任务。
Monocarp 希望尽可能多地休息,也就是说,他想最大化休息天数。请你帮他计算,在不被开除的前提下,他最多可以休息多少天?
输入格式
第一行包含一个整数 (),表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例包含一行,包含四个整数 、、 和 (;),分别表示天数、Monocarp 需要获得的最少总分、每次上课获得的分数和每完成一个任务获得的分数。
保证对于每个测试用例,如果 Monocarp 每天都学习并完成所有任务,则一定可以获得足够的分数,不会被开除。
输出格式
对于每个测试用例,输出一个整数,表示 Monocarp 最多可以休息多少天而不会被开除。
说明/提示
在第一个测试用例中,学期只有 天,所以 Monocarp 只能在第 天学习。仅仅参加一次课程就能获得 分(),所以是否完成任务无关紧要。
在第二个测试用例中,Monocarp 可以在第 天和第 天学习:第 天参加一次课程获得 分,并完成两个任务各获得 分。第 天只需参加课程再获得 分。
在第三个测试用例中,Monocarp 可以在第 天学习:参加一次课程获得 分,完成 个任务中的 个再获得 分。
在第四个测试用例中,Monocarp 必须参加所有课程并完成所有任务,才能获得 分。
在第五个测试用例中,Monocarp 可以在以下几天学习:第 天——参加一次课程并完成第一个和第二个任务;第 天——参加一次课程并完成第三个任务;第 天——参加一次课程并完成第四个任务;第 天——参加一次课程并完成第五个任务;第 天——参加一次课程并完成第六个任务。
由 ChatGPT 4.1 翻译
样例
5
1 5 5 2
14 3000000000 1000000000 500000000
100 20 1 10
8 120 10 20
42 280 13 37
0
12
99
0
37
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |