CF1713B.Optimal Reduction

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Optimal Reduction

题目描述

给定一个长度为 nn 的正整数数组 aa

你可以进行如下操作:

  • 选择两个下标 llrr1lrn1 \leq l \leq r \leq n),然后
  • 将所有元素 al,al+1,,ara_l, a_{l + 1}, \dots, a_r 都减去 11

我们定义 f(a)f(a) 为将数组 aa 变为全 00 所需的最少操作次数。

请判断,对于数组 aa 的所有排列 bb,是否都有 f(a)f(b)f(a) \leq f(b) 成立。

^\dagger 如果数组 bb 由数组 aa 的元素任意重排得到,则称 bbaa 的一个排列。例如,[4,2,3,4][4,2,3,4][3,2,4,4][3,2,4,4] 的一个排列,而 [1,2,2][1,2,2] 不是 [1,2,3][1,2,3] 的排列。

输入格式

第一行包含一个整数 tt1t1041 \leq t \leq 10^4),表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn1n1051 \leq n \leq 10^5),表示数组 aa 的长度。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1091 \leq a_i \leq 10^9),表示数组 aa

保证所有测试用例中 nn 的总和不超过 10510^5

输出格式

对于每个测试用例,如果对于 aa 的所有排列 bb 都有 f(a)f(b)f(a) \leq f(b),输出 "YES"(不含引号);否则输出 "NO"(不含引号)。

你可以用任意大小写输出 "YES" 和 "NO"(例如 "yEs"、"yes"、"Yes" 都会被识别为正答)。

说明/提示

在第一个测试用例中,我们可以用 55 次操作将所有元素变为 00。可以证明,[2,3,5,4][2, 3, 5, 4] 的任意排列都需要不少于 55 次操作才能将所有元素变为 00

在第三个测试用例中,我们需要 55 次操作才能将所有元素变为 00,而 [2,3,3,1][2, 3, 3, 1] 只需要 33 次操作。

由 ChatGPT 4.1 翻译

样例

3
4
2 3 5 4
3
1 2 3
4
3 1 3 2
YES
YES
NO

在线编程 IDE

建议全屏模式获得最佳体验