问题 5465 --积木游戏

5465: 积木游戏★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 80  解决: 24
[提交][状态][命题人:]

题目描述

小小同学共有n堆积木,第i堆中有hi块积木。小小同学喜欢搭高楼,所以他会将每堆积木都垒在一起搭高楼(每层都只有一块积木),所以每堆积木垒成的高楼的高度都是该堆中积木块的数量,即第i堆垒成的高楼的高度为hi。在一次移动中,小小同学可以从第i堆中取出一块积木(前提是该堆中至少有一个块),并把它放到第i+1堆中。显然,这样操作后,第i堆积木对应的高楼的高度就减1,第i+1堆垒成的高楼的高度加1

请问,经过若干次操作后,小小同学能使n堆积木垒成的高楼的高度序列严格递增吗?

特别提醒:积木堆的数量始终为n,也就是说,当堆中有0个积木块时,该堆不会消失,此时高楼的高度为0。严格递增是指第i+1个高楼的高度一定大于第i个高楼的高度。

输入

第一行包含一个整数t(1≤t≤104):测试用例的数量。

每个测试用例共两行:第一行包含一个整数n(1≤n≤100),为积木堆的数量。第二行包含n个整数hi(0≤hi≤109),表示每堆积木中积木的数量,即垒成的高楼的起始高度。

    测试数据保证所有n的和不超过104

输出

对于每个测试用例,如果您能使高度序列严格递增,则输出YES,否则输出NO

样例输入
Copy
6
2
1 2
2
1 0
3
4 4 4
2
0 0
3
0 1 0
4
1000000000 1000000000 1000000000 1000000000
样例输出
Copy
YES
YES
YES
NO
NO
YES

提示

来源

[提交][状态]