CF2062B.Clockwork

入门

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

你有一排 nn 个计时钟,其中第 ii 个时钟的初始时间为 aia_i。每秒中,以下事件按顺序发生:

  • 每个时钟的时间减少 11。如果任意时钟的时间变为 00,你将立即失败。
  • 你可以选择移动到相邻的时钟或停留在当前时钟。
  • 你可以将当前所在时钟的时间重置为其初始值 aia_i。

注意上述事件按顺序执行。如果某个时钟的时间在某一秒变为 00,即使你可以在该秒移动到这个时钟并重置其时间,你仍会失败。

你可以从任意时钟开始。请判断是否能够无限持续这个过程而不失败。

输入格式

第一行输入包含一个整数 tt(1≤t≤1041 \leq t \leq 10^4)——测试用例的数量。

对于每个测试用例:

  • 第一行包含一个整数 nn(2≤n≤5⋅1052 \leq n \leq 5 \cdot 10^5)——计时钟的数量。
  • 第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤1091 \leq a_i \leq 10^9)——各个时钟的初始时间。

保证所有测试用例的 nn 之和不超过 5⋅1055 \cdot 10^5。

输出格式

对于每个测试用例,如果能够无限持续该过程,输出 "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

说明/提示

第一个测试用例中,你可以在两个时钟之间来回移动并反复重置它们的时间。

第三个测试用例中,假设你从时钟 11 开始并采用以下策略:

初始时 a=[4,10,5]a = [4, 10, 5]:

  1. aa 变为 [3,9,4][3, 9, 4]。你移动到时钟 22 并重置其时间,得到 a=[3,10,4]a = [3, 10, 4]。
  2. aa 变为 [2,9,3][2, 9, 3]。你移动到时钟 33 并重置其时间,得到 a=[2,9,5]a = [2, 9, 5]。
  3. aa 变为 [1,8,4][1, 8, 4]。你移动到时钟 22 并重置其时间,得到 a=[1,10,4]a = [1, 10, 4]。
  4. aa 变为 [0,9,3][0, 9, 3]。你试图移动到时钟 11,但由于 a1a_1 变为 00 而失败。

可以证明不存在其他策略能够无限持续该过程。

翻译由 DeepSeek R1 完成

输入解题思路,AI测评打分。不知道怎么写?

首页