CF2244B Nikita and Books

题目描述

众所周知,Nikita 喜欢读书。今天,他在自己的房间里弄得一团糟,把自己的书按顺序堆成了 $n$ 堆,编号从 $1$ 到 $n$,从左到右。第 $i$ 堆有 $a_i$ 本书。如果每一堆(除了最右边一堆)的书的数量都严格小于右边那一堆的数量,即数组 $a$ 严格递增,那么这种排列称为整齐。 Yura 想要通过如下操作任意多次,将书本堆成整齐的排列: 1. 选择一个满足 $1 \le i < n$ 且 $a_i > 1$ 的堆 $i$。 2. 从第 $i$ 堆顶部取出 1 本书,使 $a_i$ 减少 $1$。 3. 把这本书放到第 $i+1$ 堆的顶部,使 $a_{i+1}$ 增加 $1$。 请判断 Yura 能否通过上述操作将书堆变得整齐。

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。 每个测试用例的第一行包含一个整数 $n$($1 \le n \le 2 \times 10^5$),表示书堆的数量。 每个测试用例的第二行包含 $n$ 个整数 $a_i$($1 \le a_i \le 10^9$),表示每一堆书的初始数量。 保证所有测试用例中 $n$ 的总和不超过 $2 \times 10^5$。

输出格式

对于每个测试用例,如果 Yura 可以将书堆变得整齐,输出 "YES";否则输出 "NO"。 输出的字母大小写任意。例如,"yEs"、"yes"、"Yes" 和 "YES" 都是可以被接受的。

说明/提示

由 ChatGPT 5 翻译