#1153. 变成递增

变成递增

题目描述

给定一个长度为 nn 的正整数数组 a1,a2,,ana_1, a_2, \dots, a_n

你可以执行以下操作任意次(包括 00 次):

  • 选择一个满足 1i<n1 \le i < nai>1a_i > 1 的下标 ii
  • aia_i 的值减 11(即 ai:=ai1a_i := a_i - 1);
  • ai+1a_{i+1} 的值加 11(即 ai+1:=ai+1+1a_{i+1} := a_{i+1} + 1)。

请判断是否能够通过上述操作,使得数组 aa 变成严格递增的序列。 换句话说,要求操作后的数组满足:对于所有的 1i<n1 \le i < n,都有 ai<ai+1a_i < a_{i+1}

输入格式

第一行包含一个整数 tt1t1041 \le t \le 10^4)—— 测试用例的数量。

对于每个测试用例:

  • 第一行包含一个整数 nn1n2×1051 \le n \le 2 \times 10^5)—— 数组的长度。
  • 第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1091 \le a_i \le 10^9)—— 数组的初始元素。

输出格式

对于每个测试用例,如果能够使数组变成严格递增序列,输出 YES;否则输出 NO

样例输入 1

7
3
1 2 3
3
1 1 2
3
10 1 1
3
2 2 2
4
1 4 2 2
5
8 2 8 1 8
4
1 1 3 5

样例输出 1

YES
NO
YES
YES
NO
YES
NO

说明

数据范围

  • 对于所有测试点,保证 1t1041 \le t \le 10^4
  • 对于每个测试用例,保证 1n2×1051 \le n \le 2 \times 10^5
  • 对于每个测试用例,保证 1ai1091 \le a_i \le 10^9
  • 保证同一测试点内所有测试用例的 nn 之和不超过 2×1052 \times 10^5
  • 保证所有的输入数值均为整数。