CF2062B.Clockwork
入门
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
你有一排 n 个计时钟,其中第 i 个时钟的初始时间为 ai。每秒中,以下事件按顺序发生:
- 每个时钟的时间减少 1。如果任意时钟的时间变为 0,你将立即失败。
- 你可以选择移动到相邻的时钟或停留在当前时钟。
- 你可以将当前所在时钟的时间重置为其初始值 ai。
注意上述事件按顺序执行。如果某个时钟的时间在某一秒变为 0,即使你可以在该秒移动到这个时钟并重置其时间,你仍会失败。
你可以从任意时钟开始。请判断是否能够无限持续这个过程而不失败。
输入格式
第一行输入包含一个整数 t(1≤t≤104)——测试用例的数量。
对于每个测试用例:
- 第一行包含一个整数 n(2≤n≤5⋅105)——计时钟的数量。
- 第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109)——各个时钟的初始时间。
保证所有测试用例的 n 之和不超过 5⋅105。
输出格式
对于每个测试用例,如果能够无限持续该过程,输出 "YES"(不带引号),否则输出 "NO"(不带引号)。
你可以输出任意大小写的答案(例如 "yEs", "yes", "Yes" 都会被识别为肯定回答)。
输入输出样例
输入#1
5 2 4 10 2 2 2 3 4 10 5 3 5 3 5 5 12 13 25 17 30
输出#1
YES NO NO YES YES
说明/提示
第一个测试用例中,你可以在两个时钟之间来回移动并反复重置它们的时间。
第三个测试用例中,假设你从时钟 1 开始并采用以下策略:
初始时 a=[4,10,5]:
- a 变为 [3,9,4]。你移动到时钟 2 并重置其时间,得到 a=[3,10,4]。
- a 变为 [2,9,3]。你移动到时钟 3 并重置其时间,得到 a=[2,9,5]。
- a 变为 [1,8,4]。你移动到时钟 2 并重置其时间,得到 a=[1,10,4]。
- a 变为 [0,9,3]。你试图移动到时钟 1,但由于 a1 变为 0 而失败。
可以证明不存在其他策略能够无限持续该过程。
翻译由 DeepSeek R1 完成
输入解题思路,AI测评打分。不知道怎么写?