# 703A思路:可以考虑构建一个0,1,2,3.。。。。。的一个数组,从第一个到最后一个的前一个的往后扫,如果可以构建那么则🆗,否则就无法构建;#include<stdio.h>long long ai[30010];int main(){ int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); long long res=0; for(int i=1;i<=n;i++) { scanf("%d",&ai[i]); } for(int i=1;i<=n-1;i++) { if(ai[i]!=0&&ai[i]>=i-1) { long long x=ai[i]; ai[i]=i-1; ai[i+1]+=x-i+1; } } int flag=1; for(int i=1;i<=n-1;i++) { if(ai[i]>=ai[i+1]) { flag=0; break; } } if(flag)printf("YES\n"); else printf("NO\n"); } return 0;}