题目描述
给定一个长度为 n 的正整数数组 a1,a2,…,an。
你可以执行以下操作任意次(包括 0 次):
- 选择一个满足 1≤i<n 且 ai>1 的下标 i;
- 将 ai 的值减 1(即 ai:=ai−1);
- 将 ai+1 的值加 1(即 ai+1:=ai+1+1)。
请判断是否能够通过上述操作,使得数组 a 变成严格递增的序列。
换句话说,要求操作后的数组满足:对于所有的 1≤i<n,都有 ai<ai+1。
输入格式
第一行包含一个整数 t(1≤t≤104)—— 测试用例的数量。
对于每个测试用例:
- 第一行包含一个整数 n(1≤n≤2×105)—— 数组的长度。
- 第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109)—— 数组的初始元素。
输出格式
对于每个测试用例,如果能够使数组变成严格递增序列,输出 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
说明
数据范围
- 对于所有测试点,保证 1≤t≤104。
- 对于每个测试用例,保证 1≤n≤2×105。
- 对于每个测试用例,保证 1≤ai≤109。
- 保证同一测试点内所有测试用例的 n 之和不超过 2×105。
- 保证所有的输入数值均为整数。