欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF2117A.False Alarm
False Alarm
题目描述
Yousef 正在一个走廊的入口,这个走廊上排列有 个门,顺序编号为 。他需要按顺序依次通过从 到 的所有门来抵达出口(即通过第 扇门)。
每扇门初始可能开着或者关着。如果一扇门开着,那么 Yousef 可以花费 秒通过这扇门。如果一扇门关着,Yousef 无法通过这扇门。
不过,Yousef 可以在任意时刻使用一个特别的按钮,但最多只能使用一次。这个按钮可以令所有关闭的门开启,持续 秒。
你的任务是判断 Yousef 能否在只使用一次按钮的限制下通过所有门。
输入格式
输入数据包含多个测试用例。输入数据的第一行包含一个整数 (),表示测试用例的个数。
对于每个测试用例:
- 第一行包含两个整数 和 (),分别表示门的数量和按钮效果持续的秒数。
- 第二行包含 个整数 (),表示每扇门初始的状态。开启的门用 来表示,关闭的门用 来表示。
- 输入数据保证存在至少一个关闭的门。
输出格式
对于每个测试用例,如果 Yousef 可以抵达出口,输出 YES,否则输出 NO。
你可以以任意大小写输出答案。例如,yEs,yes,Yes,YES 都会被视为肯定回答。
说明/提示
对于第一个测试用例,最佳的策略如下:
- 在第 秒,第 扇门是开着的,所以 Yousef 可以通过这扇门。
- 在第 秒,第 扇门是关着的,所以 Yousef 使用按钮并通过这扇门。
- 在第 秒,按钮的效果仍然持续,所以 Yousef 可以通过第 扇门。
- 在第 秒,按钮的效果消失,但第 扇门本来就是开着的,所以 Yousef 可以通过这扇门。
对于第二个测试用例,Yousef 的按钮只持续 秒,但他需要一个持续至少 秒的按钮才能到达出口。因此,答案是 NO。
对于第三个测试用例,在 Yousef 开始移动之前,他就可以使用按钮。在 Yousef 抵达出口之前,所有的门均会保持开启。
样例
7
4 2
0 1 1 0
6 3
1 0 1 1 0 0
8 8
1 1 1 0 0 1 1 1
1 2
1
5 1
1 0 1 0 1
7 4
0 0 0 1 1 0 1
10 3
0 1 0 0 1 0 0 1 0 0
YES
NO
YES
YES
NO
YES
NO
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |